From 624fd877511d04a776e35a0198d2d416ce6ddfdb Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: 星期四, 16 五月 2024 17:52:16 +0800 Subject: [PATCH] update 优化部门类别编码获取 --- ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java | 84 +++++++++++++++++++++++++++-------------- 1 files changed, 55 insertions(+), 29 deletions(-) diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index 97b7041..1e0d8a7 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -1,7 +1,5 @@ package org.dromara.common.satoken.utils; -import cn.dev33.satoken.context.SaHolder; -import cn.dev33.satoken.context.model.SaStorage; import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; @@ -34,7 +32,10 @@ public static final String LOGIN_USER_KEY = "loginUser"; public static final String TENANT_KEY = "tenantId"; public static final String USER_KEY = "userId"; + public static final String USER_NAME_KEY = "userName"; public static final String DEPT_KEY = "deptId"; + public static final String DEPT_NAME_KEY = "deptName"; + public static final String DEPT_CATEGORY_KEY = "deptCategory"; public static final String CLIENT_KEY = "clientid"; /** @@ -45,42 +46,34 @@ * @param model 閰嶇疆鍙傛暟 */ public static void login(LoginUser loginUser, SaLoginModel model) { - SaStorage storage = SaHolder.getStorage(); - storage.set(LOGIN_USER_KEY, loginUser); - storage.set(TENANT_KEY, loginUser.getTenantId()); - storage.set(USER_KEY, loginUser.getUserId()); - storage.set(DEPT_KEY, loginUser.getDeptId()); model = ObjectUtil.defaultIfNull(model, new SaLoginModel()); StpUtil.login(loginUser.getLoginId(), model.setExtra(TENANT_KEY, loginUser.getTenantId()) .setExtra(USER_KEY, loginUser.getUserId()) - .setExtra(DEPT_KEY, loginUser.getDeptId())); - StpUtil.getSession().set(LOGIN_USER_KEY, loginUser); + .setExtra(USER_NAME_KEY, loginUser.getUsername()) + .setExtra(DEPT_KEY, loginUser.getDeptId()) + .setExtra(DEPT_NAME_KEY, loginUser.getDeptName()) + .setExtra(DEPT_CATEGORY_KEY, loginUser.getDeptCategory()) + ); + StpUtil.getTokenSession().set(LOGIN_USER_KEY, loginUser); } /** * 鑾峰彇鐢ㄦ埛(澶氱骇缂撳瓨) */ public static LoginUser getLoginUser() { - LoginUser loginUser = (LoginUser) SaHolder.getStorage().get(LOGIN_USER_KEY); - if (loginUser != null) { - return loginUser; - } - SaSession session = StpUtil.getSession(); + SaSession session = StpUtil.getTokenSession(); if (ObjectUtil.isNull(session)) { return null; } - loginUser = (LoginUser) session.get(LOGIN_USER_KEY); - SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser); - return loginUser; + return (LoginUser) session.get(LOGIN_USER_KEY); } /** * 鑾峰彇鐢ㄦ埛鍩轰簬token */ public static LoginUser getLoginUser(String token) { - Object loginId = StpUtil.getLoginIdByToken(token); - SaSession session = StpUtil.getSessionByLoginId(loginId); + SaSession session = StpUtil.getTokenSessionByToken(token); if (ObjectUtil.isNull(session)) { return null; } @@ -91,7 +84,7 @@ * 鑾峰彇鐢ㄦ埛id */ public static Long getUserId() { - return Convert.toLong(getExtra(USER_KEY)); + return Convert.toLong(getExtra(USER_KEY)); } /** @@ -108,18 +101,32 @@ return Convert.toLong(getExtra(DEPT_KEY)); } + /** + * 鑾峰彇閮ㄩ棬鍚� + */ + public static String getDeptName() { + return Convert.toStr(getExtra(DEPT_NAME_KEY)); + } + + /** + * 鑾峰彇閮ㄩ棬绫诲埆缂栫爜 + */ + public static String getDeptCategory() { + return Convert.toStr(getExtra(DEPT_CATEGORY_KEY)); + } + + /** + * 鑾峰彇褰撳墠 Token 鐨勬墿灞曚俊鎭� + * + * @param key 閿�� + * @return 瀵瑰簲鐨勬墿灞曟暟鎹� + */ private static Object getExtra(String key) { - Object obj; try { - obj = SaHolder.getStorage().get(key); - if (ObjectUtil.isNull(obj)) { - obj = StpUtil.getExtra(key); - SaHolder.getStorage().set(key, obj); - } + return StpUtil.getExtra(key); } catch (Exception e) { return null; } - return obj; } /** @@ -147,12 +154,17 @@ return UserConstants.SUPER_ADMIN_ID.equals(userId); } + /** + * 鏄惁涓鸿秴绾х鐞嗗憳 + * + * @return 缁撴灉 + */ public static boolean isSuperAdmin() { return isSuperAdmin(getUserId()); } /** - * 鏄惁涓鸿秴绾х鐞嗗憳 + * 鏄惁涓虹鎴风鐞嗗憳 * * @param rolePermission 瑙掕壊鏉冮檺鏍囪瘑缁� * @return 缁撴灉 @@ -161,8 +173,22 @@ return rolePermission.contains(TenantConstants.TENANT_ADMIN_ROLE_KEY); } + /** + * 鏄惁涓虹鎴风鐞嗗憳 + * + * @return 缁撴灉 + */ public static boolean isTenantAdmin() { - return isTenantAdmin(getLoginUser().getRolePermission()); + return Convert.toBool(isTenantAdmin(getLoginUser().getRolePermission())); + } + + /** + * 妫�鏌ュ綋鍓嶇敤鎴锋槸鍚﹀凡鐧诲綍 + * + * @return 缁撴灉 + */ + public static boolean isLogin() { + return getLoginUser() != null; } } -- Gitblit v1.9.3