Jelajahi Sumber

调整sysUser接口

tsurumure 10 bulan lalu
induk
melakukan
5d5e870d90

+ 17 - 18
src/main/java/com/backendsys/service/v1/System/SysAuthServiceImpl.java

@@ -3,7 +3,9 @@ package com.backendsys.service.v1.System;
 import com.backendsys.config.Kaptcha.KaptchaUtil;
 import com.backendsys.config.Redis.RedisCache;
 import com.backendsys.config.Security.service.TokenService;
+import com.backendsys.dao.System.SysUserInfoDao;
 import com.backendsys.entity.v1.System.SysUserDTO;
+import com.backendsys.entity.v2.System.SysUserInfo;
 import com.backendsys.exception.CustomException;
 import com.backendsys.service.v1.SDKService.SDKTencent.SDKTencentSMSService;
 import com.backendsys.utils.CountUtil;
@@ -11,7 +13,9 @@ import com.backendsys.utils.UserUtils;
 import com.backendsys.utils.response.ResultEnum;
 import com.backendsys.mapper.System.SysUserMapper;
 import com.backendsys.config.Security.utils.JwtUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.code.kaptcha.Producer;
+import cn.hutool.core.date.DateUtil;
 import jakarta.servlet.ServletOutputStream;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
@@ -79,6 +83,9 @@ public class SysAuthServiceImpl implements SysAuthService {
     @Autowired
     private SDKTencentSMSService sdkTencentSMSService;
 
+    @Autowired
+    private SysUserInfoDao sysUserInfoDao;
+
     /**
      * 渲染 图形验证码
      */
@@ -136,20 +143,14 @@ public class SysAuthServiceImpl implements SysAuthService {
      */
     private Map<String, Object> loginSuccess(HttpServletRequest request, SysUserDTO sysUserDTO) {
 
-        Boolean isRemember = sysUserDTO.getIs_remember();
-
         String uuid = String.valueOf(UUID.randomUUID());
         Long userId = sysUserDTO.getUser_id();
         Map<String, Object> sysUserDetail = sysUserMapper.queryUserDetail(userId);
 
         // 判断用户是否已审核
         Integer auditStatus = (Integer) sysUserDetail.get("audit_status");
-        if (auditStatus == 1) {
-            throw new CustomException("请等待管理员审核");
-        }
-        if (auditStatus == -1) {
-            throw new CustomException("审核未通过,请联系客服获取详细信息");
-        }
+        if (auditStatus == 1) throw new CustomException("请等待管理员审核");
+        if (auditStatus == -1) throw new CustomException("审核未通过,请联系客服获取详细信息");
 
         // [Redis] 删除旧 Redis Key
         String old_uuid = (String) sysUserDetail.get("last_login_uuid");
@@ -180,6 +181,7 @@ public class SysAuthServiceImpl implements SysAuthService {
 
         // 5.生成 Token 并存入 Redis
         // 生成 Token 过期时间 (存入Token/带出Result返回值)
+        Boolean isRemember = sysUserDTO.getIs_remember();
         Long tokenDuration = (isRemember != null && isRemember) ? TOKEN_DURATION_SYSTEM * 7 : TOKEN_DURATION_SYSTEM;
         Date tokenExpiration = new Date((new Date()).getTime() + tokenDuration);
         sysUserDetail.put("token_expiration", tokenExpiration);
@@ -194,16 +196,13 @@ public class SysAuthServiceImpl implements SysAuthService {
         stringRedisTemplate.opsForValue().set(tokenRedisKey, token, tokenDuration, TimeUnit.MILLISECONDS);
 
         // 6.[更新] 用户最后登录时间、登录IP
-        SysUserDTO sysUserLastlogin = new SysUserDTO();
-        sysUserLastlogin.setUser_id(userId);
-        sysUserLastlogin.setLast_login_ip(request.getRemoteAddr());
-        sysUserLastlogin.setLast_login_uuid(uuid);
-
-        LocalDateTime now = LocalDateTime.now();
-        String formattedDateTime = now.toString();
-        sysUserLastlogin.setLast_login_time(formattedDateTime);
-
-        sysUserMapper.updateUserInfo(sysUserLastlogin);
+        SysUserInfo userInfo = new SysUserInfo();
+        userInfo.setLast_login_ip(request.getRemoteAddr());
+        userInfo.setLast_login_uuid(uuid);
+        userInfo.setLast_login_time(DateUtil.now());
+        QueryWrapper<SysUserInfo> wrapper = new QueryWrapper<>();
+        wrapper.eq("user_id", userId);
+        sysUserInfoDao.update(userInfo, wrapper);
 
         // 7.[格式化] 将 Token 拼接到输出结果
         Map<String, Object> result = new LinkedHashMap<>(sysUserDetail);