Explorar el Código

修改用户个人资料/密码同步缓存信息

RuoYi hace 5 años
padre
commit
c2bd0ace6e

+ 2 - 1
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java

@@ -58,7 +58,8 @@ public class TokenController
58
         if (StringUtils.isNotNull(loginUser))
58
         if (StringUtils.isNotNull(loginUser))
59
         {
59
         {
60
             // 刷新令牌有效期
60
             // 刷新令牌有效期
61
-            return R.ok(tokenService.refreshToken(loginUser));
61
+            tokenService.refreshToken(loginUser);
62
+            return R.ok();
62
         }
63
         }
63
         return R.ok();
64
         return R.ok();
64
     }
65
     }

+ 13 - 3
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java

@@ -4,13 +4,13 @@ import java.util.HashMap;
4
 import java.util.Map;
4
 import java.util.Map;
5
 import java.util.concurrent.TimeUnit;
5
 import java.util.concurrent.TimeUnit;
6
 import javax.servlet.http.HttpServletRequest;
6
 import javax.servlet.http.HttpServletRequest;
7
-import org.apache.commons.lang3.StringUtils;
8
 import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.beans.factory.annotation.Autowired;
9
 import org.springframework.stereotype.Component;
8
 import org.springframework.stereotype.Component;
10
 import com.ruoyi.common.core.constant.CacheConstants;
9
 import com.ruoyi.common.core.constant.CacheConstants;
11
 import com.ruoyi.common.core.constant.Constants;
10
 import com.ruoyi.common.core.constant.Constants;
12
 import com.ruoyi.common.core.utils.IdUtils;
11
 import com.ruoyi.common.core.utils.IdUtils;
13
 import com.ruoyi.common.core.utils.ServletUtils;
12
 import com.ruoyi.common.core.utils.ServletUtils;
13
+import com.ruoyi.common.core.utils.StringUtils;
14
 import com.ruoyi.common.core.utils.ip.IpUtils;
14
 import com.ruoyi.common.core.utils.ip.IpUtils;
15
 import com.ruoyi.common.redis.service.RedisService;
15
 import com.ruoyi.common.redis.service.RedisService;
16
 import com.ruoyi.system.api.model.LoginUser;
16
 import com.ruoyi.system.api.model.LoginUser;
@@ -81,6 +81,17 @@ public class TokenService
81
         return null;
81
         return null;
82
     }
82
     }
83
 
83
 
84
+    /**
85
+     * 设置用户身份信息
86
+     */
87
+    public void setLoginUser(LoginUser loginUser)
88
+    {
89
+        if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken()))
90
+        {
91
+            refreshToken(loginUser);
92
+        }
93
+    }
94
+
84
     public void delLoginUser(String token)
95
     public void delLoginUser(String token)
85
     {
96
     {
86
         if (StringUtils.isNotEmpty(token))
97
         if (StringUtils.isNotEmpty(token))
@@ -95,14 +106,13 @@ public class TokenService
95
      *
106
      *
96
      * @param loginUser 登录信息
107
      * @param loginUser 登录信息
97
      */
108
      */
98
-    public Long refreshToken(LoginUser loginUser)
109
+    public void refreshToken(LoginUser loginUser)
99
     {
110
     {
100
         loginUser.setLoginTime(System.currentTimeMillis());
111
         loginUser.setLoginTime(System.currentTimeMillis());
101
         loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_SECOND);
112
         loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_SECOND);
102
         // 根据uuid将loginUser缓存
113
         // 根据uuid将loginUser缓存
103
         String userKey = getTokenKey(loginUser.getToken());
114
         String userKey = getTokenKey(loginUser.getToken());
104
         redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
115
         redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
105
-        return EXPIRE_TIME;
106
     }
116
     }
107
 
117
 
108
     private String getTokenKey(String token)
118
     private String getTokenKey(String token)

+ 4 - 4
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysLogininforController.java

@@ -45,18 +45,18 @@ public class SysLogininforController extends BaseController
45
         return getDataTable(list);
45
         return getDataTable(list);
46
     }
46
     }
47
 
47
 
48
-    @Log(title = "登日志", businessType = BusinessType.EXPORT)
48
+    @Log(title = "登日志", businessType = BusinessType.EXPORT)
49
     @PreAuthorize(hasPermi = "system:logininfor:export")
49
     @PreAuthorize(hasPermi = "system:logininfor:export")
50
     @PostMapping("/export")
50
     @PostMapping("/export")
51
     public void export(HttpServletResponse response, SysLogininfor logininfor) throws IOException
51
     public void export(HttpServletResponse response, SysLogininfor logininfor) throws IOException
52
     {
52
     {
53
         List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
53
         List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
54
         ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
54
         ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
55
-        util.exportExcel(response, list, "登日志");
55
+        util.exportExcel(response, list, "登日志");
56
     }
56
     }
57
 
57
 
58
     @PreAuthorize(hasPermi = "system:logininfor:remove")
58
     @PreAuthorize(hasPermi = "system:logininfor:remove")
59
-    @Log(title = "登日志", businessType = BusinessType.DELETE)
59
+    @Log(title = "登日志", businessType = BusinessType.DELETE)
60
     @DeleteMapping("/{infoIds}")
60
     @DeleteMapping("/{infoIds}")
61
     public AjaxResult remove(@PathVariable Long[] infoIds)
61
     public AjaxResult remove(@PathVariable Long[] infoIds)
62
     {
62
     {
@@ -64,7 +64,7 @@ public class SysLogininforController extends BaseController
64
     }
64
     }
65
 
65
 
66
     @PreAuthorize(hasPermi = "system:logininfor:remove")
66
     @PreAuthorize(hasPermi = "system:logininfor:remove")
67
-    @Log(title = "登日志", businessType = BusinessType.DELETE)
67
+    @Log(title = "登日志", businessType = BusinessType.DELETE)
68
     @DeleteMapping("/clean")
68
     @DeleteMapping("/clean")
69
     public AjaxResult clean()
69
     public AjaxResult clean()
70
     {
70
     {

+ 16 - 0
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysProfileController.java

@@ -10,8 +10,10 @@ import com.ruoyi.common.core.web.controller.BaseController;
10
 import com.ruoyi.common.core.web.domain.AjaxResult;
10
 import com.ruoyi.common.core.web.domain.AjaxResult;
11
 import com.ruoyi.common.log.annotation.Log;
11
 import com.ruoyi.common.log.annotation.Log;
12
 import com.ruoyi.common.log.enums.BusinessType;
12
 import com.ruoyi.common.log.enums.BusinessType;
13
+import com.ruoyi.common.security.service.TokenService;
13
 import com.ruoyi.common.security.utils.SecurityUtils;
14
 import com.ruoyi.common.security.utils.SecurityUtils;
14
 import com.ruoyi.system.api.domain.SysUser;
15
 import com.ruoyi.system.api.domain.SysUser;
16
+import com.ruoyi.system.api.model.LoginUser;
15
 import com.ruoyi.system.service.ISysUserService;
17
 import com.ruoyi.system.service.ISysUserService;
16
 
18
 
17
 /**
19
 /**
@@ -25,6 +27,9 @@ public class SysProfileController extends BaseController
25
 {
27
 {
26
     @Autowired
28
     @Autowired
27
     private ISysUserService userService;
29
     private ISysUserService userService;
30
+    
31
+    @Autowired
32
+    private TokenService tokenService;
28
 
33
 
29
     /**
34
     /**
30
      * 个人信息
35
      * 个人信息
@@ -49,6 +54,13 @@ public class SysProfileController extends BaseController
49
     {
54
     {
50
         if (userService.updateUserProfile(user) > 0)
55
         if (userService.updateUserProfile(user) > 0)
51
         {
56
         {
57
+            LoginUser loginUser = tokenService.getLoginUser();
58
+            // 更新缓存用户信息
59
+            loginUser.getSysUser().setNickName(user.getNickName());
60
+            loginUser.getSysUser().setPhonenumber(user.getPhonenumber());
61
+            loginUser.getSysUser().setEmail(user.getEmail());
62
+            loginUser.getSysUser().setSex(user.getSex());
63
+            tokenService.setLoginUser(loginUser);
52
             return AjaxResult.success();
64
             return AjaxResult.success();
53
         }
65
         }
54
         return AjaxResult.error("修改个人信息异常,请联系管理员");
66
         return AjaxResult.error("修改个人信息异常,请联系管理员");
@@ -74,6 +86,10 @@ public class SysProfileController extends BaseController
74
         }
86
         }
75
         if (userService.resetUserPwd(username, SecurityUtils.encryptPassword(newPassword)) > 0)
87
         if (userService.resetUserPwd(username, SecurityUtils.encryptPassword(newPassword)) > 0)
76
         {
88
         {
89
+            // 更新缓存用户密码
90
+            LoginUser loginUser = tokenService.getLoginUser();
91
+            loginUser.getSysUser().setPassword(SecurityUtils.encryptPassword(newPassword));
92
+            tokenService.setLoginUser(loginUser);
77
             return AjaxResult.success();
93
             return AjaxResult.success();
78
         }
94
         }
79
         return AjaxResult.error("修改密码异常,请联系管理员");
95
         return AjaxResult.error("修改密码异常,请联系管理员");