From 96ab48396cd167a0a86521b186934e2aa3fa21b5 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 29 十一月 2023 10:28:41 +0800
Subject: [PATCH] update 优化 重构 LoginHelper 将本地存储代码操作封装
---
ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java | 53 ++++++++++++++++++++++++++++++-----------------------
1 files changed, 30 insertions(+), 23 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..f20a505 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
@@ -15,6 +15,7 @@
import org.dromara.common.core.enums.UserType;
import java.util.Set;
+import java.util.function.Supplier;
/**
* 鐧诲綍閴存潈鍔╂墜
@@ -36,6 +37,7 @@
public static final String USER_KEY = "userId";
public static final String DEPT_KEY = "deptId";
public static final String CLIENT_KEY = "clientid";
+ public static final String TENANT_ADMIN_KEY = "isTenantAdmin";
/**
* 鐧诲綍绯荤粺 鍩轰簬 璁惧绫诲瀷
@@ -62,17 +64,13 @@
* 鑾峰彇鐢ㄦ埛(澶氱骇缂撳瓨)
*/
public static LoginUser getLoginUser() {
- LoginUser loginUser = (LoginUser) SaHolder.getStorage().get(LOGIN_USER_KEY);
- if (loginUser != null) {
- return loginUser;
- }
- SaSession session = StpUtil.getSession();
- if (ObjectUtil.isNull(session)) {
- return null;
- }
- loginUser = (LoginUser) session.get(LOGIN_USER_KEY);
- SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser);
- return loginUser;
+ return (LoginUser) getStorageIfAbsentSet(LOGIN_USER_KEY, () -> {
+ SaSession session = StpUtil.getSession();
+ if (ObjectUtil.isNull(session)) {
+ return null;
+ }
+ return session.get(LOGIN_USER_KEY);
+ });
}
/**
@@ -109,17 +107,7 @@
}
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);
- }
- } catch (Exception e) {
- return null;
- }
- return obj;
+ return getStorageIfAbsentSet(key, () -> StpUtil.getExtra(key));
}
/**
@@ -162,7 +150,26 @@
}
public static boolean isTenantAdmin() {
- return isTenantAdmin(getLoginUser().getRolePermission());
+ Object value = getStorageIfAbsentSet(TENANT_ADMIN_KEY, () -> {
+ return isTenantAdmin(getLoginUser().getRolePermission());
+ });
+ return Convert.toBool(value);
}
+ public static boolean isLogin() {
+ return getLoginUser() != null;
+ }
+
+ public static Object getStorageIfAbsentSet(String key, Supplier<Object> handle) {
+ try {
+ Object obj = SaHolder.getStorage().get(key);
+ if (ObjectUtil.isNull(obj)) {
+ obj = handle.get();
+ SaHolder.getStorage().set(key, obj);
+ }
+ return obj;
+ } catch (Exception e) {
+ return null;
+ }
+ }
}
--
Gitblit v1.9.3