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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}
}