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 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 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 4
 import java.util.Map;
5 5
 import java.util.concurrent.TimeUnit;
6 6
 import javax.servlet.http.HttpServletRequest;
7
-import org.apache.commons.lang3.StringUtils;
8 7
 import org.springframework.beans.factory.annotation.Autowired;
9 8
 import org.springframework.stereotype.Component;
10 9
 import com.ruoyi.common.core.constant.CacheConstants;
11 10
 import com.ruoyi.common.core.constant.Constants;
12 11
 import com.ruoyi.common.core.utils.IdUtils;
13 12
 import com.ruoyi.common.core.utils.ServletUtils;
13
+import com.ruoyi.common.core.utils.StringUtils;
14 14
 import com.ruoyi.common.core.utils.ip.IpUtils;
15 15
 import com.ruoyi.common.redis.service.RedisService;
16 16
 import com.ruoyi.system.api.model.LoginUser;
@@ -81,6 +81,17 @@ public class TokenService
81 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 95
     public void delLoginUser(String token)
85 96
     {
86 97
         if (StringUtils.isNotEmpty(token))
@@ -95,14 +106,13 @@ public class TokenService
95 106
      *
96 107
      * @param loginUser 登录信息
97 108
      */
98
-    public Long refreshToken(LoginUser loginUser)
109
+    public void refreshToken(LoginUser loginUser)
99 110
     {
100 111
         loginUser.setLoginTime(System.currentTimeMillis());
101 112
         loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_SECOND);
102 113
         // 根据uuid将loginUser缓存
103 114
         String userKey = getTokenKey(loginUser.getToken());
104 115
         redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
105
-        return EXPIRE_TIME;
106 116
     }
107 117
 
108 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 45
         return getDataTable(list);
46 46
     }
47 47
 
48
-    @Log(title = "登日志", businessType = BusinessType.EXPORT)
48
+    @Log(title = "登日志", businessType = BusinessType.EXPORT)
49 49
     @PreAuthorize(hasPermi = "system:logininfor:export")
50 50
     @PostMapping("/export")
51 51
     public void export(HttpServletResponse response, SysLogininfor logininfor) throws IOException
52 52
     {
53 53
         List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
54 54
         ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
55
-        util.exportExcel(response, list, "登日志");
55
+        util.exportExcel(response, list, "登日志");
56 56
     }
57 57
 
58 58
     @PreAuthorize(hasPermi = "system:logininfor:remove")
59
-    @Log(title = "登日志", businessType = BusinessType.DELETE)
59
+    @Log(title = "登日志", businessType = BusinessType.DELETE)
60 60
     @DeleteMapping("/{infoIds}")
61 61
     public AjaxResult remove(@PathVariable Long[] infoIds)
62 62
     {
@@ -64,7 +64,7 @@ public class SysLogininforController extends BaseController
64 64
     }
65 65
 
66 66
     @PreAuthorize(hasPermi = "system:logininfor:remove")
67
-    @Log(title = "登日志", businessType = BusinessType.DELETE)
67
+    @Log(title = "登日志", businessType = BusinessType.DELETE)
68 68
     @DeleteMapping("/clean")
69 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 10
 import com.ruoyi.common.core.web.domain.AjaxResult;
11 11
 import com.ruoyi.common.log.annotation.Log;
12 12
 import com.ruoyi.common.log.enums.BusinessType;
13
+import com.ruoyi.common.security.service.TokenService;
13 14
 import com.ruoyi.common.security.utils.SecurityUtils;
14 15
 import com.ruoyi.system.api.domain.SysUser;
16
+import com.ruoyi.system.api.model.LoginUser;
15 17
 import com.ruoyi.system.service.ISysUserService;
16 18
 
17 19
 /**
@@ -25,6 +27,9 @@ public class SysProfileController extends BaseController
25 27
 {
26 28
     @Autowired
27 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 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 64
             return AjaxResult.success();
53 65
         }
54 66
         return AjaxResult.error("修改个人信息异常,请联系管理员");
@@ -74,6 +86,10 @@ public class SysProfileController extends BaseController
74 86
         }
75 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 93
             return AjaxResult.success();
78 94
         }
79 95
         return AjaxResult.error("修改密码异常,请联系管理员");