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 getOperatorsList(Map params) { //从配置文件中读取数据库连接类型 params.put("DBTYPE", PropertiesUtil.getValue("DBType")); //设置分页 Integer pageNum = (Integer) params.get("pageNum"); Integer pageSize = (Integer) params.get("pageSize"); Page page = new Page<>(pageNum,pageSize); page = operatorsMapper.getOperatorsList(page,params); //给密码解密 List 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 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 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 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 operators)throws Exception { //如果没有数据或数据为空,直接返回0 if (null == operators || operators.isEmpty()) { return 0; } //封装要删除的id集合 List deleteBatchIds = new ArrayList<>(); //把要删除的id放在deleteBatchIds集合中 for (ServiceAreaOperators operator : operators) { deleteBatchIds.add(operator.getId()); } return operatorsMapper.deleteBatchIds(deleteBatchIds); } @Override public Page getCollectionData(Map params) { return null; } /** * 前台登录 * @param params * @return */ @Override public ServiceAreaOperators login(Map params) { //先根据工号查询用户信息 List 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 params) { //先根据工号查询用户信息 List 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 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; } } }