From 19321e1348baefa2a9f5211c42f8b797c0fcccd1 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 27 十月 2025 18:11:56 +0800
Subject: [PATCH] 登录验证
---
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 94 +++++++++++++++++++++++++++++++++++++++++------
1 files changed, 82 insertions(+), 12 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 071fe85..c3298bb 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,25 +1,26 @@
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.core.utils.Constants;
-import com.doumee.core.utils.PwdCheckUtil;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.system.SystemDepartmentUserMapper;
+import com.doumee.core.utils.*;
+import com.doumee.service.business.third.model.LoginUserInfo;
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;
@@ -28,13 +29,19 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
+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;
@@ -84,11 +91,17 @@
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绉�");
+// ||dto.getNewPwd().length()>20
+// ||dto.getNewPwd().length()<8
+ // ||!PwdCheckUtil.checkPassword(dto.getNewPwd())
+ ){
+ //throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝瀵嗙爜澶嶆潅搴︿笉婊¤冻瑕佹眰锛�6-20涓瓧绗︼紝鑷冲皯鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃2绉�");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
+
+ PasswordGenerator.getPasswordTypeCount(dto.getNewPwd());
+
+
SystemUser user = systemUserService.findById(dto.getUserId());
if (user.getDeleted()) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鐢ㄦ埛涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎");
@@ -103,6 +116,19 @@
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
@@ -112,12 +138,13 @@
if (systemUser == null || systemUser.getDeleted()) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鐢ㄦ埛涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎");
}
+ PasswordGenerator.getPasswordTypeCount(dto.getPassword());
// 淇敼瀵嗙爜
SystemUser updateUserDto = new SystemUser();
updateUserDto.setId(dto.getId());
updateUserDto.setUpdateUser(dto.getOperaUserId());
updateUserDto.setPassword(Utils.Secure.encryptPassword(dto.getPassword(), systemUser.getSalt()));
- updateUserDto.setNeedChangePwd(Constants.ZERO);
+ updateUserDto.setNeedChangePwd(dto.getNeedChangePwd());
systemUserService.updateById(updateUserDto);
}
@@ -142,11 +169,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 password = PasswordGenerator.generatePassword();
// 鐢熸垚瀵嗙爜鐩�
String salt = RandomStringUtils.randomAlphabetic(6);
// 鐢熸垚瀵嗙爜
- systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
+ systemUser.setPassword(Utils.Secure.encryptPassword(password, salt));
systemUser.setSalt(salt);
+ systemUser.setFirstPassword(password);
systemUser.setSource(Constants.ZERO);
systemUser.setNeedChangePwd(Constants.ZERO);
@@ -210,6 +249,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);
// 璁剧疆閮ㄩ棬
@@ -241,6 +290,27 @@
}*/
}
+
+
+ @Override
+ public void updUserProhibitStatus(SystemUser user,LoginUserInfo loginUserInfo) {
+ if(Objects.isNull(user)
+ || Objects.isNull(user.getId())
+ || Objects.isNull(user.getProhibitStatus())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ SystemUser updUser = new SystemUser();
+ updUser.setId(user.getId());
+ updUser.setProhibitStatus(user.getProhibitStatus());
+ updUser.setProhibitRemark(Constants.equalsInteger(user.getProhibitStatus(),Constants.ZERO)?
+ "浜�"+ DateUtil.getCurrDateTime()+"銆�"+loginUserInfo.getRealname()+"銆戞搷浣滄墜鍔ㄨВ闄ょ姝㈢櫥褰曪紒":
+ "浜�"+ DateUtil.getCurrDateTime()+"銆�"+loginUserInfo.getRealname()+"銆戞搷浣滄墜鍔ㄥ紑鍚姝㈢櫥褰曪紒");
+ systemUserService.updateById(updUser);
+ }
+
+
+
+
@Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void createUserRole(CreateUserRoleDTO dto) {
--
Gitblit v1.9.3