You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
7.3 KiB
Java

package com.nmgs.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nmgs.entity.ServiceAreaOperators;
import com.nmgs.mapperset.mysqlmapper.OperatorsMyMapper;
import com.nmgs.mapperset.oraclemapper.OperatorsMapper;
import com.nmgs.service.IOperatorsService;
import com.nmgs.util.PropertiesUtil;
import com.trkf.PasswordEncryption.PassWordUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
@Transactional(value = "transactionManager", timeout = 100)
public class OperatorsServiceImpl implements IOperatorsService {
@Autowired
private OperatorsMapper operatorsMapper;
@Autowired
private OperatorsMyMapper operatorsMyMapper;
/**
*
* @param params
* @return
*/
@Override
public Page<ServiceAreaOperators> getOperatorsList(Map<String, Object> params) {
//从配置文件中读取数据库连接类型
params.put("DBTYPE", PropertiesUtil.getValue("DBType"));
//设置分页
Integer pageNum = (Integer) params.get("pageNum");
Integer pageSize = (Integer) params.get("pageSize");
Page<ServiceAreaOperators> page = new Page<>(pageNum,pageSize);
page = operatorsMapper.getOperatorsList(page,params);
//给密码解密
List<ServiceAreaOperators> records = page.getRecords();
if (null != records && !records.isEmpty()) {
for (ServiceAreaOperators record : records) {
record.setPassWord(PassWordUtils.decrypt(record.getPassWord()));
}
page.setRecords(records);
}
return page;
}
/**
*
* @param operators
* @return
* @throws Exception
*/
@Override
public int addOperators(ServiceAreaOperators operators) throws Exception {
//如果数据为空,直接返回
if(null == operators){
return 0;
}
//判断传回的值中id是否有值没有就是新增
if(null == operators.getId()){
//先判断工号是否已经存在,存在不让保存数据
List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber(operators.getJobNumber());
if (null != operationByJobNumber && !operationByJobNumber.isEmpty()) {
return -2;
}
//查询当前数据中id的最大值,给id赋值
Integer maxId = operatorsMapper.getMaxId();
//如果为空则赋值成1
if(null == maxId){
maxId = 1;
}else{
maxId = maxId+1;
}
//给密码加密
operators.setPassWord(PassWordUtils.encrypt(operators.getPassWord()));
operators.setId(maxId);
operators.setCreateTime(new Date());
return operatorsMapper.insert(operators);
}else{
return 0;
}
}
@Override
public int updateOperators(ServiceAreaOperators operators) throws Exception {
//如果数据为空,直接返回
if(null == operators){
return 0;
}
//先判断工号是否已经存在,存在不让保存数据
List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber(operators.getJobNumber());
if (null != operationByJobNumber && !operationByJobNumber.isEmpty()) {
if(operationByJobNumber.get(0).getId() != operators.getId()){
return -2;
}
}
//判断传回的值中id是否有值,没有直接返回
if(null == operators.getId()){
return 0;
}else{
//给密码加密
operators.setPassWord(PassWordUtils.encrypt(operators.getPassWord()));
//设置修改条件根据id修改
LambdaQueryWrapper<ServiceAreaOperators> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(null != operators.getId(),
ServiceAreaOperators::getId,
operators.getId());
return operatorsMapper.update(operators,lambdaQueryWrapper);
}
}
/**
*
* @param operators
* @return
* @throws Exception
*/
@Override
public int deleteOperators(List<ServiceAreaOperators> operators)throws Exception {
//如果没有数据或数据为空直接返回0
if (null == operators || operators.isEmpty()) {
return 0;
}
//封装要删除的id集合
List<Integer> deleteBatchIds = new ArrayList<>();
//把要删除的id放在deleteBatchIds集合中
for (ServiceAreaOperators operator : operators) {
deleteBatchIds.add(operator.getId());
}
return operatorsMapper.deleteBatchIds(deleteBatchIds);
}
@Override
public Page<ServiceAreaOperators> getCollectionData(Map<String, Object> params) {
return null;
}
/**
*
* @param params
* @return
*/
@Override
public ServiceAreaOperators login(Map<String, Object> params) {
//先根据工号查询用户信息
List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber((String) params.get("jobNumber"));
//如果根据工号找到,再匹配密码是否正确
if(null != operationByJobNumber && operationByJobNumber.size() > 0){
String decryptPassWord = PassWordUtils.decrypt(operationByJobNumber.get(0).getPassWord());
if(decryptPassWord.equals(params.get("passWord"))){
return operationByJobNumber.get(0);
}else{
return null;
}
}else{
return null;
}
}
/**
*
* @param params
* @return
*/
@Override
public int updatePassword(Map<String, Object> params) {
//先根据工号查询用户信息
List<ServiceAreaOperators> operationByJobNumber = operatorsMapper.getOperationByJobNumber((String) params.get("jobNumber"));
//如果根据工号找到,再匹配密码是否正确
if (null != operationByJobNumber && !operationByJobNumber.isEmpty()) {
ServiceAreaOperators serviceAreaOper=operationByJobNumber.get(0);
//String decryptPassWord = PassWordUtils.decrypt(operationByJobNumber.get(0).getPassWord());
String enPassWord = PassWordUtils.encrypt((String)params.get("password"));
serviceAreaOper.setPassWord(enPassWord);
//设置修改条件根据id修改
LambdaQueryWrapper<ServiceAreaOperators> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(null != serviceAreaOper.getId(),
ServiceAreaOperators::getId,
serviceAreaOper.getId());
operatorsMapper.update(serviceAreaOper, lambdaQueryWrapper);
operatorsMyMapper.update(serviceAreaOper, lambdaQueryWrapper);
return 1;
}else{
return -1;
}
}
}