From e763381186c3a1f74ed416ea79767ac73b984745 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期五, 03 十二月 2021 18:46:49 +0800 Subject: [PATCH] update [重磅更新] 登录流程升级 支持缓存 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java | 63 +++++++++++++++++++++++-------- 1 files changed, 47 insertions(+), 16 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java index 9cd759f..2544fe8 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LoginUtils.java @@ -1,6 +1,8 @@ package com.ruoyi.common.utils; import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.ObjectUtil; +import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.DeviceType; import com.ruoyi.common.enums.UserType; import com.ruoyi.common.exception.UtilException; @@ -13,39 +15,68 @@ */ public class LoginUtils { + private final static String LOGIN_USER_KEY = "loginUser"; + /** * 鐧诲綍绯荤粺 * 閽堝涓ゅ鐢ㄦ埛浣撶郴 - * @param userId 鐢ㄦ埛id + * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅 */ - public static void login(Long userId, UserType userType) { - StpUtil.login(userType.getUserType() + userId); + public static void login(LoginUser loginUser, UserType userType) { + StpUtil.login(userType.getUserType() + loginUser.getUserId()); + StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); } /** * 鐧诲綍绯荤粺 鍩轰簬 璁惧绫诲瀷 * 閽堝涓�濂楃敤鎴蜂綋绯� - * @param userId 鐢ㄦ埛id + * @param loginUser 鐧诲綍鐢ㄦ埛淇℃伅 */ - public static void loginByDevice(Long userId, UserType userType, DeviceType deviceType) { - StpUtil.login(userType.getUserType() + userId, deviceType.getDevice()); + public static void loginByDevice(LoginUser loginUser, UserType userType, DeviceType deviceType) { + StpUtil.login(userType.getUserType() + loginUser.getUserId(), deviceType.getDevice()); + StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); + } + + /** + * 鑾峰彇鐢ㄦ埛 + **/ + public static LoginUser getLoginUser() { + return (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY); } /** * 鑾峰彇鐢ㄦ埛id */ public static Long getUserId() { - String loginId = StpUtil.getLoginIdAsString(); - String userId; - String replace = ""; - if (StringUtils.contains(loginId, UserType.SYS_USER.getUserType())) { - userId = StringUtils.replace(loginId, UserType.SYS_USER.getUserType(), replace); - } else if (StringUtils.contains(loginId, UserType.APP_USER.getUserType())){ - userId = StringUtils.replace(loginId, UserType.APP_USER.getUserType(), replace); - } else { - throw new UtilException("鐧诲綍鐢ㄦ埛: LoginId寮傚父 => " + loginId); + LoginUser loginUser = getLoginUser(); + if (ObjectUtil.isNull(loginUser)) { + String loginId = StpUtil.getLoginIdAsString(); + String userId; + String replace = ""; + if (StringUtils.contains(loginId, UserType.SYS_USER.getUserType())) { + userId = StringUtils.replace(loginId, UserType.SYS_USER.getUserType(), replace); + } else if (StringUtils.contains(loginId, UserType.APP_USER.getUserType())){ + userId = StringUtils.replace(loginId, UserType.APP_USER.getUserType(), replace); + } else { + throw new UtilException("鐧诲綍鐢ㄦ埛: LoginId寮傚父 => " + loginId); + } + return Long.parseLong(userId); } - return Long.parseLong(userId); + return loginUser.getUserId(); + } + + /** + * 鑾峰彇閮ㄩ棬ID + **/ + public static Long getDeptId() { + return getLoginUser().getDeptId(); + } + + /** + * 鑾峰彇鐢ㄦ埛璐︽埛 + **/ + public static String getUsername() { + return getLoginUser().getUsername(); } /** -- Gitblit v1.9.3