|
@@ -2,11 +2,13 @@ package com.abi.qms.platform.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.abi.qms.platform.dao.entity.UserInfo;
|
|
|
+import com.abi.qms.platform.dao.entity.UserMappingInfoRole;
|
|
|
import com.abi.qms.platform.dao.entity.UserRole;
|
|
|
import com.abi.qms.platform.dao.enums.BaseFinal;
|
|
|
import com.abi.qms.platform.dao.enums.ErrorCodeEnum;
|
|
|
import com.abi.qms.platform.dao.enums.RedisKey;
|
|
|
import com.abi.qms.platform.dao.mapper.UserInfoMapper;
|
|
|
+import com.abi.qms.platform.dao.mapper.UserMappingInfoRoleMapper;
|
|
|
import com.abi.qms.platform.dao.mapper.UserRoleMapper;
|
|
|
import com.abi.qms.platform.dto.req.*;
|
|
|
import com.abi.qms.platform.dto.res.GetUserInfoRes;
|
|
@@ -53,6 +55,8 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
|
|
|
@Resource
|
|
|
private RedisUtils redisUtil;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserMappingInfoRoleMapper userMappingInfoRoleMapper;
|
|
|
|
|
|
@Override
|
|
|
public BaseResponse login(LoginReq req) {
|
|
@@ -101,6 +105,13 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
|
|
|
public BaseResponse createUser(CreateUserReq createUserReq) {
|
|
|
UserInfo userInfo = new UserInfo();
|
|
|
BeanUtils.copyProperties(createUserReq, userInfo);
|
|
|
+ QueryWrapper<UserRole> roleQueryWrapper = new QueryWrapper<>();
|
|
|
+ roleQueryWrapper.eq("role_code", userInfo.getRoleCode());
|
|
|
+ roleQueryWrapper.eq("is_delete", 0);
|
|
|
+ UserRole userRole = userRoleMapper.selectOne(roleQueryWrapper);
|
|
|
+ if (Objects.isNull(userRole)) {
|
|
|
+ return BaseResponse.createFail(null, ErrorCodeEnum.USER_ROLE_NOT_EXISTED.getCode(), ErrorCodeEnum.USER_ROLE_NOT_EXISTED.getMessage());
|
|
|
+ }
|
|
|
if (lambdaQuery().eq(UserInfo::getEmployeeNo, userInfo.getEmployeeNo().trim()).count() > 0) {
|
|
|
log.info("工号" + userInfo.getEmployeeNo() + "已存在,请勿重复创建。");
|
|
|
return BaseResponse.create(null, ErrorCodeEnum.EMPLOYEE_NO_DUPLICATE.getCode(), "工号" + userInfo.getEmployeeNo() + "已存在,请勿重复创建。");
|
|
@@ -113,7 +124,22 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
|
|
|
userInfo.setCreateBy(userInfo1.getId());
|
|
|
// userInfo.setCreateTime(LocalDateTime.now());
|
|
|
save(userInfo);
|
|
|
-
|
|
|
+ //添加用户和角色的映射关系
|
|
|
+ QueryWrapper<UserMappingInfoRole> qwUR = new QueryWrapper<>();
|
|
|
+ qwUR.eq("user_id", userInfo.getId());
|
|
|
+ qwUR.eq("is_delete", 0);
|
|
|
+ UserMappingInfoRole userMappingInfoRole = userMappingInfoRoleMapper.selectOne(qwUR);
|
|
|
+ if(Objects.nonNull(userMappingInfoRole)){
|
|
|
+ userMappingInfoRole.setRoleCode(userRole.getRoleCode());
|
|
|
+ userMappingInfoRole.setRoleName(userRole.getRoleName());
|
|
|
+ userMappingInfoRoleMapper.updateById(userMappingInfoRole);
|
|
|
+ }else{
|
|
|
+ userMappingInfoRole = new UserMappingInfoRole();
|
|
|
+ userMappingInfoRole.setUserId(userInfo.getId());
|
|
|
+ userMappingInfoRole.setRoleCode(userRole.getRoleCode());
|
|
|
+ userMappingInfoRole.setRoleName(userRole.getRoleName());
|
|
|
+ userMappingInfoRoleMapper.insert(userMappingInfoRole);
|
|
|
+ }
|
|
|
return BaseResponse.create();
|
|
|
}
|
|
|
|
|
@@ -122,10 +148,34 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
|
|
|
**/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateUser(UpdateUserReq updateUserReq) {
|
|
|
+ public BaseResponse updateUser(UpdateUserReq updateUserReq) {
|
|
|
UserInfo userInfo = new UserInfo();
|
|
|
BeanUtils.copyProperties(updateUserReq, userInfo);
|
|
|
+ QueryWrapper<UserRole> roleQueryWrapper = new QueryWrapper<>();
|
|
|
+ roleQueryWrapper.eq("role_code", userInfo.getRoleCode());
|
|
|
+ roleQueryWrapper.eq("is_delete", 0);
|
|
|
+ UserRole userRole = userRoleMapper.selectOne(roleQueryWrapper);
|
|
|
+ if (Objects.isNull(userRole)) {
|
|
|
+ return BaseResponse.createFail(null, ErrorCodeEnum.USER_ROLE_NOT_EXISTED.getCode(), ErrorCodeEnum.USER_ROLE_NOT_EXISTED.getMessage());
|
|
|
+ }
|
|
|
userInfoMapper.updateById(userInfo);
|
|
|
+ //添加用户和角色的映射关系
|
|
|
+ QueryWrapper<UserMappingInfoRole> qwUR = new QueryWrapper<>();
|
|
|
+ qwUR.eq("user_id", userInfo.getId());
|
|
|
+ qwUR.eq("is_delete", 0);
|
|
|
+ UserMappingInfoRole userMappingInfoRole = userMappingInfoRoleMapper.selectOne(qwUR);
|
|
|
+ if(Objects.nonNull(userMappingInfoRole)){
|
|
|
+ userMappingInfoRole.setRoleCode(userRole.getRoleCode());
|
|
|
+ userMappingInfoRole.setRoleName(userRole.getRoleName());
|
|
|
+ userMappingInfoRoleMapper.updateById(userMappingInfoRole);
|
|
|
+ }else{
|
|
|
+ userMappingInfoRole = new UserMappingInfoRole();
|
|
|
+ userMappingInfoRole.setUserId(userInfo.getId());
|
|
|
+ userMappingInfoRole.setRoleCode(userRole.getRoleCode());
|
|
|
+ userMappingInfoRole.setRoleName(userRole.getRoleName());
|
|
|
+ userMappingInfoRoleMapper.insert(userMappingInfoRole);
|
|
|
+ }
|
|
|
+ return BaseResponse.create();
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -179,7 +229,15 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
|
|
|
userInfo.setPassword(req.getPassword());
|
|
|
userInfoMapper.updateById(userInfo);
|
|
|
UserUtil.releaseUser();
|
|
|
-
|
|
|
+ //删除redis用户token信息
|
|
|
+ if (redisUtil.exists(RedisKey.USER_ID_TOKEN + ":" + req.getId())) {
|
|
|
+ //有key,value为null的情况;就把key删掉
|
|
|
+ Object loginkey = redisUtil.get(RedisKey.USER_ID_TOKEN + ":" + req.getId());
|
|
|
+ if (Objects.nonNull(loginkey)) {
|
|
|
+ redisUtil.del(RedisKey.USER_TOKEN_ID + ":" + loginkey.toString());
|
|
|
+ }
|
|
|
+ redisUtil.del(RedisKey.USER_ID_TOKEN + ":" + req.getId());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -190,6 +248,15 @@ public class UserManagerServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo
|
|
|
if (oldPassword.equals(req.getOldPassword())) {
|
|
|
userInfo.setPassword(req.getNewPassword());
|
|
|
userInfoMapper.updateById(userInfo);
|
|
|
+ //删除redis用户token信息
|
|
|
+ if (redisUtil.exists(RedisKey.USER_ID_TOKEN + ":" + req.getId())) {
|
|
|
+ //有key,value为null的情况;就把key删掉
|
|
|
+ Object loginkey = redisUtil.get(RedisKey.USER_ID_TOKEN + ":" + req.getId());
|
|
|
+ if (Objects.nonNull(loginkey)) {
|
|
|
+ redisUtil.del(RedisKey.USER_TOKEN_ID + ":" + loginkey.toString());
|
|
|
+ }
|
|
|
+ redisUtil.del(RedisKey.USER_ID_TOKEN + ":" + req.getId());
|
|
|
+ }
|
|
|
} else {
|
|
|
log.info("请输入正确的密码");
|
|
|
return BaseResponse.create(null, ErrorCodeEnum.PASSWORD_ERROR.getCode(), ErrorCodeEnum.PASSWORD_ERROR.getMessage());
|