From b7273d6fc94ae5e14f5a911d8b8b88cb7c848264 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 30 十月 2024 20:14:10 +0800
Subject: [PATCH] 学员bug
---
src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java | 35 ++++++++++++++++++++++++++++++-----
1 files changed, 30 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 58df9d5..a4f55de 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,12 +1,18 @@
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;
@@ -14,6 +20,7 @@
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;
@@ -21,6 +28,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
+import java.util.List;
/**
@@ -35,6 +43,9 @@
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.
@@ -43,10 +54,11 @@
* @param userService the user service
*/
@Autowired
- public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService, CaffeineUtil caffeineUtil) {
+ public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService, CaffeineUtil caffeineUtil, SysConfigMapper sysConfigMapper) {
this.eventPublisher = eventPublisher;
this.userService = userService;
this.caffeineUtil = caffeineUtil;
+ this.sysConfigMapper = sysConfigMapper;
}
@Override
@@ -59,17 +71,30 @@
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 (YesOrNoEnum.YES.equals(user.getNeedUpdatePassword())) {
+ 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();
- BeanUtils.copyProperties(user,newUser);
- RestUtil.response(response, SystemCode.OK.getCode(), SystemCode.OK.getMessage(), newUser);
+ // 淇敼鐢ㄦ埛鐨勬渶鍚庣櫥褰曟椂闂�
+ user.setLastActiveTime(new Date());
+ userService.updateUser(user);
+ 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