From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java | 27 ++++++++++++++------------- 1 files changed, 14 insertions(+), 13 deletions(-) diff --git a/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java b/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java index b185612..4b6981a 100644 --- a/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java +++ b/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/helper/TenantHelper.java @@ -1,6 +1,7 @@ package org.dromara.common.tenant.helper; -import cn.dev33.satoken.stp.StpUtil; +import cn.dev33.satoken.context.SaHolder; +import cn.dev33.satoken.context.model.SaStorage; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ObjectUtil; @@ -130,12 +131,13 @@ if (!isEnable()) { return; } - if (!isLogin() || !global) { + if (!LoginHelper.isLogin() || !global) { TEMP_DYNAMIC_TENANT.set(tenantId); return; } String cacheKey = DYNAMIC_TENANT_KEY + ":" + LoginHelper.getUserId(); RedisUtils.setCacheObject(cacheKey, tenantId); + SaHolder.getStorage().set(cacheKey, tenantId); } /** @@ -147,7 +149,7 @@ if (!isEnable()) { return null; } - if (!isLogin()) { + if (!LoginHelper.isLogin()) { return TEMP_DYNAMIC_TENANT.get(); } // 濡傛灉绾跨▼鍐呮湁鍊� 浼樺厛杩斿洖 @@ -155,8 +157,15 @@ if (StringUtils.isNotBlank(tenantId)) { return tenantId; } + SaStorage storage = SaHolder.getStorage(); String cacheKey = DYNAMIC_TENANT_KEY + ":" + LoginHelper.getUserId(); + tenantId = storage.getString(cacheKey); + // 濡傛灉涓� -1 璇存槑宸茬粡鏌ヨ繃redis骞朵笖涓嶅瓨鍦ㄥ�� 鍒欑洿鎺ヨ繑鍥瀗ull + if (StringUtils.isNotBlank(tenantId)) { + return tenantId.equals("-1") ? null : tenantId; + } tenantId = RedisUtils.getCacheObject(cacheKey); + storage.set(cacheKey, StringUtils.isBlank(tenantId) ? "-1" : tenantId); return tenantId; } @@ -167,13 +176,14 @@ if (!isEnable()) { return; } - if (!isLogin()) { + if (!LoginHelper.isLogin()) { TEMP_DYNAMIC_TENANT.remove(); return; } TEMP_DYNAMIC_TENANT.remove(); String cacheKey = DYNAMIC_TENANT_KEY + ":" + LoginHelper.getUserId(); RedisUtils.deleteObject(cacheKey); + SaHolder.getStorage().delete(cacheKey); } /** @@ -216,15 +226,6 @@ tenantId = LoginHelper.getTenantId(); } return tenantId; - } - - private static boolean isLogin() { - try { - StpUtil.checkLogin(); - return true; - } catch (Exception e) { - return false; - } } } -- Gitblit v1.9.3