From bc09bc87234065abe7130b84c92f81f143f5f3e7 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 09 十月 2025 16:25:06 +0800
Subject: [PATCH] 最新版本541200007
---
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 78 ++++++++++++++++++++++++++++++++++++---
1 files changed, 72 insertions(+), 6 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index 980f2c7..24784ff 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -1,24 +1,28 @@
package com.doumee.biz.system.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.system.SystemUserBiz;
+import com.doumee.config.jwt.JwtProperties;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.model.LoginUserInfo;
+import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.PwdCheckUtil;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.system.SystemDepartmentUserMapper;
import com.doumee.dao.system.dto.*;
import com.doumee.dao.system.dto.UpdatePwdDto;
import com.doumee.dao.system.model.*;
import com.doumee.service.system.*;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -27,13 +31,18 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
+@Slf4j
public class SystemUserBizImpl implements SystemUserBiz {
-
+ @Autowired
+ private RedisTemplate<String,Object> redisTemplate;
@Autowired
private SystemUserService systemUserService;
+ @Autowired
+ private JwtProperties jwtProperties;
@Autowired
private SystemUserRoleService systemUserRoleService;
@@ -81,6 +90,13 @@
@Override
public void updatePwd(UpdatePwdDto dto) {
+ //鐧诲綍瀵嗙爜澶嶆潅搴︽牎楠岋細6-20涓瓧绗︼紝鑷冲皯鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃2绉�
+ if(StringUtils.isBlank(dto.getNewPwd())
+ ||dto.getNewPwd().length()>20
+ ||dto.getNewPwd().length()<6
+ ||!PwdCheckUtil.checkPassword(dto.getNewPwd())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝瀵嗙爜澶嶆潅搴︿笉婊¤冻瑕佹眰锛�6-20涓瓧绗︼紝鑷冲皯鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃2绉�");
+ }
SystemUser user = systemUserService.findById(dto.getUserId());
if (user.getDeleted()) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鐢ㄦ埛涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎");
@@ -93,7 +109,21 @@
SystemUser newUser = new SystemUser();
newUser.setId(dto.getUserId());
newUser.setPassword(Utils.Secure.encryptPassword(dto.getNewPwd(), user.getSalt()));
+ newUser.setNeedChangePwd(Constants.ONE);
systemUserService.updateById(newUser);
+
+ log.info("===================鏇存柊淇℃伅");
+ try {
+// log.error("redisTemplate:["+redisTemplate+"]\njwtProperties=:["+jwtProperties+"]\n"+"token:["+dto.getToken()+"]\nuser:"+dto.getLoginUserInfo());
+ if(redisTemplate!=null&&dto.getToken() !=null &&dto.getLoginUserInfo()!=null && jwtProperties!=null){
+ dto.getLoginUserInfo().setNeedChangePwd(Constants.ONE);
+ redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+dto.getToken(),JSONObject.toJSONString(dto.getLoginUserInfo()),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+ }
+ }catch (Exception e){
+// log.error("redisTemplate:["+redisTemplate+"]\njwtProperties=:["+jwtProperties+"]\n"+"token:["+dto.getToken()+"]\nuser:"+dto.getLoginUserInfo());
+ e.printStackTrace();
+ }
+
}
@Override
@@ -106,7 +136,9 @@
// 淇敼瀵嗙爜
SystemUser updateUserDto = new SystemUser();
updateUserDto.setId(dto.getId());
+ updateUserDto.setUpdateUser(dto.getOperaUserId());
updateUserDto.setPassword(Utils.Secure.encryptPassword(dto.getPassword(), systemUser.getSalt()));
+ updateUserDto.setNeedChangePwd(dto.getNeedChangePwd());
systemUserService.updateById(updateUserDto);
}
@@ -131,11 +163,23 @@
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿銆�"+systemUser.getEmpNo()+"銆戝凡瀛樺湪");
}
}
+ //楠岃瘉鎵嬫満鍙�
+ if (StringUtils.isNotBlank(systemUser.getMobile())) {
+ queryUserDto = new SystemUser();
+ queryUserDto.setDeleted(Boolean.FALSE);
+ queryUserDto.setMobile(systemUser.getMobile());
+ user = systemUserService.findOne(queryUserDto);
+ if (user != null) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+systemUser.getMobile()+"銆戝凡瀛樺湪");
+ }
+ }
// 鐢熸垚瀵嗙爜鐩�
String salt = RandomStringUtils.randomAlphabetic(6);
// 鐢熸垚瀵嗙爜
systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
systemUser.setSalt(salt);
+ systemUser.setSource(Constants.ZERO);
+ systemUser.setNeedChangePwd(Constants.ZERO);
// 鍒涘缓鐢ㄦ埛璁板綍
systemUser.setType(Constants.ZERO);
@@ -197,6 +241,16 @@
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿銆�"+systemUser.getEmpNo()+"銆戝凡瀛樺湪");
}
}
+ //楠岃瘉鎵嬫満鍙�
+ if (StringUtils.isNotBlank(systemUser.getMobile())) {
+ queryUserDto = new SystemUser();
+ queryUserDto.setMobile(systemUser.getMobile());
+ queryUserDto.setDeleted(Boolean.FALSE);
+ user = systemUserService.findOne(queryUserDto);
+ if (user != null && !user.getId().equals(systemUser.getId())) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+systemUser.getMobile()+"銆戝凡瀛樺湪");
+ }
+ }
// 淇敼鐢ㄦ埛
systemUserService.updateById(systemUser);
// 璁剧疆閮ㄩ棬
@@ -240,6 +294,7 @@
SystemUserRole newUserRole = new SystemUserRole();
newUserRole.setUserId(dto.getUserId());
newUserRole.setRoleId(roleId);
+ newUserRole.setCreateUser(dto.getCreateUser());
systemUserRoleService.create(newUserRole);
}
}
@@ -260,20 +315,27 @@
.filter(s->StringUtils.isNotBlank(s))
.distinct()
.collect(Collectors.toList());
+ String pwd =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode();
if (!CollectionUtils.isEmpty(collect)){
QueryWrapper<SystemDepartment> wrapper = new QueryWrapper<>();
wrapper.lambda().in(SystemDepartment::getName,collect);
List<SystemDepartment> systemDepartments = systemDepartmentService.findList(wrapper);
Map<Integer, String> collect1 = systemDepartments.stream().collect(Collectors.toMap(s -> s.getId(), s -> s.getName()));
-
+ // 鐢熸垚瀵嗙爜鐩�
dataList.forEach(s->{
+
CreateSystemUserDTO systemUser = new CreateSystemUserDTO();
systemUser.setDepartmentId(getKey(collect1,s.getDepartmentName()));
systemUser.setUsername(s.getUsername());
systemUser.setRealname(s.getUsername());
systemUser.setEmpNo(s.getEmpNo());
systemUser.setMobile(s.getMobile());
- systemUser.setPassword(s.getMobile());
+ String salt = RandomStringUtils.randomAlphabetic(6);
+// systemUser.setPassword(s.getMobile());
+ // 鐢熸垚瀵嗙爜 String pwd =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode();
+ systemUser.setPassword(Utils.Secure.encryptPassword(pwd, salt));
+ systemUser.setNeedChangePwd(Constants.ZERO);
+ systemUser.setSalt(salt);
systemUser.setCreateUser(loginUserInfo.getId());
systemUser.setUpdateUser(loginUserInfo.getId());
systemUser.setType(Constants.ZERO);
@@ -294,7 +356,11 @@
systemUser.setRealname(s.getUsername());
systemUser.setEmpNo(s.getEmpNo());
systemUser.setMobile(s.getMobile());
- systemUser.setPassword(s.getMobile());
+ // 鐢熸垚瀵嗙爜 String pwd =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode();
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ systemUser.setPassword(Utils.Secure.encryptPassword(pwd, salt));
+ systemUser.setNeedChangePwd(Constants.ZERO);
+// systemUser.setPassword(s.getMobile());
systemUser.setCreateUser(loginUserInfo.getId());
systemUser.setUpdateUser(loginUserInfo.getId());
systemUser.setType(Constants.ZERO);
--
Gitblit v1.9.3