From 8546b3d285af4235a0ef615a0c6e89486ae2c806 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 17 十月 2024 21:01:37 +0800
Subject: [PATCH] 达梦不支持value改为values

---
 src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java |   46 +++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java b/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java
index 7c2a229..7cae4c2 100644
--- a/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java
+++ b/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java
@@ -1,21 +1,34 @@
 package com.ycl.jxkg.config.spring.security;
 
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.ycl.jxkg.base.SystemCode;
+import com.ycl.jxkg.constants.CaffeineConstant;
+import com.ycl.jxkg.domain.entity.SysConfig;
 import com.ycl.jxkg.domain.entity.UserEventLog;
+import com.ycl.jxkg.domain.vo.student.user.UserLoginVO;
+import com.ycl.jxkg.enums.general.YesOrNoEnum;
 import com.ycl.jxkg.event.UserEvent;
+import com.ycl.jxkg.mapper.ClassesUserMapper;
+import com.ycl.jxkg.mapper.SysConfigMapper;
 import com.ycl.jxkg.service.UserService;
+import com.ycl.jxkg.utils.CaffeineUtil;
+import com.ycl.jxkg.utils.DateTimeUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.userdetails.User;
 import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
 import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -29,6 +42,10 @@
 
     private final ApplicationEventPublisher eventPublisher;
     private final UserService userService;
+    private final CaffeineUtil caffeineUtil;
+    private final SysConfigMapper sysConfigMapper;
+    @Autowired
+    private ClassesUserMapper classesUserMapper;
 
     /**
      * Instantiates a new Rest authentication success handler.
@@ -37,9 +54,11 @@
      * @param userService    the user service
      */
     @Autowired
-    public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService) {
+    public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService, CaffeineUtil caffeineUtil, SysConfigMapper sysConfigMapper) {
         this.eventPublisher = eventPublisher;
         this.userService = userService;
+        this.caffeineUtil = caffeineUtil;
+        this.sysConfigMapper = sysConfigMapper;
     }
 
     @Override
@@ -47,15 +66,32 @@
         Object object = authentication.getPrincipal();
         if (null != object) {
             User springUser = (User) object;
+            // 鐧诲綍涔嬪悗淇濆瓨鎴栨洿鏂� 鐢ㄦ埛鍚嶄笌session鐨勫叧绯�
+            String sessionId = request.getSession().getId();
+            caffeineUtil.put(CaffeineConstant.AUTH, springUser.getUsername(), sessionId);
             com.ycl.jxkg.domain.entity.User user = userService.getUserByUserName(springUser.getUsername());
             if (null != user) {
+                List<SysConfig> configList = new LambdaQueryChainWrapper<>(sysConfigMapper)
+                        .list();
+                Integer passwordExpireDays = 30;
+                if (configList.size() == 1) {
+                    passwordExpireDays = configList.get(0).getPasswordExpireTime();
+                }
+                Date now = new Date();
+                // 瀵嗙爜杩囨湡杩斿洖寮哄埗淇敼瀵嗙爜鏍囪瘑
+                if (DateTimeUtil.getTwoTimeDiffDay(now, user.getLastUpdatePasswordTime()) > passwordExpireDays) {
+                    RestUtil.response(response, 205, "瀵嗙爜杩囨湡锛岃淇敼瀵嗙爜", user.getId());
+                    return;
+                }
+
                 UserEventLog userEventLog = new UserEventLog(user.getId(), user.getUserName(), user.getRealName(), new Date());
                 userEventLog.setContent(user.getUserName() + " 鐧诲綍浜嗘睙瑗胯闊宠棰戝煿璁郴缁�");
                 eventPublisher.publishEvent(new UserEvent(userEventLog));
-                com.ycl.jxkg.domain.entity.User newUser = new com.ycl.jxkg.domain.entity.User();
-                newUser.setUserName(user.getUserName());
-                newUser.setImagePath(user.getImagePath());
-                RestUtil.response(response, SystemCode.OK.getCode(), SystemCode.OK.getMessage(), newUser);
+                UserLoginVO userLoginVO = new UserLoginVO();
+                BeanUtils.copyProperties(user,userLoginVO);
+                List<String> classesNames = classesUserMapper.getClassesNameByUserId(user.getId());
+                userLoginVO.setClassName(classesNames);
+                RestUtil.response(response, SystemCode.OK.getCode(), SystemCode.OK.getMessage(), userLoginVO);
             }
         } else {
             RestUtil.response(response, SystemCode.UNAUTHORIZED.getCode(), SystemCode.UNAUTHORIZED.getMessage());

--
Gitblit v1.8.0