From 931e45f5f78494c7af4cab75053da49b57f22fbe Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 13 十月 2025 14:31:43 +0800
Subject: [PATCH] 定时自动叫号 与 WMS获取车辆是否在园接口开发

---
 server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java |   76 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 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 5b6a153..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
@@ -108,6 +138,7 @@
         updateUserDto.setId(dto.getId());
         updateUserDto.setUpdateUser(dto.getOperaUserId());
         updateUserDto.setPassword(Utils.Secure.encryptPassword(dto.getPassword(), systemUser.getSalt()));
+        updateUserDto.setNeedChangePwd(dto.getNeedChangePwd());
         systemUserService.updateById(updateUserDto);
     }
 
@@ -132,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);
@@ -196,6 +239,16 @@
             user = systemUserService.findOne(queryUserDto);
             if (user != null && !user.getId().equals(systemUser.getId())) {
                 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()+"銆戝凡瀛樺湪");
             }
         }
         // 淇敼鐢ㄦ埛
@@ -262,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);
@@ -296,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