From c563afed59b0313ce5509f94e8b1f0243e96f8df Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 14 十月 2024 00:38:07 +0800
Subject: [PATCH] fix 修复 EncryptorManager 缓存失效问题导致的内存膨胀

---
 ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java b/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java
index 4b31343..65f5233 100644
--- a/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java
+++ b/ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/handle/TenantKeyPrefixHandler.java
@@ -1,5 +1,6 @@
 package org.dromara.common.tenant.handle;
 
+import com.baomidou.mybatisplus.core.plugins.InterceptorIgnoreHelper;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.constant.GlobalConstants;
 import org.dromara.common.core.utils.StringUtils;
@@ -26,14 +27,18 @@
         if (StringUtils.isBlank(name)) {
             return null;
         }
+        if (InterceptorIgnoreHelper.willIgnoreTenantLine("")) {
+            return super.map(name);
+        }
         if (StringUtils.contains(name, GlobalConstants.GLOBAL_REDIS_KEY)) {
             return super.map(name);
         }
         String tenantId = TenantHelper.getTenantId();
         if (StringUtils.isBlank(tenantId)) {
-            log.error("鏃犳硶鑾峰彇鏈夋晥鐨勭鎴穒d -> Null");
+            log.debug("鏃犳硶鑾峰彇鏈夋晥鐨勭鎴穒d -> Null");
+            return super.map(name);
         }
-        if (StringUtils.startsWith(name, tenantId)) {
+        if (StringUtils.startsWith(name, tenantId + "")) {
             // 濡傛灉瀛樺湪鍒欑洿鎺ヨ繑鍥�
             return super.map(name);
         }
@@ -49,14 +54,18 @@
         if (StringUtils.isBlank(unmap)) {
             return null;
         }
+        if (InterceptorIgnoreHelper.willIgnoreTenantLine("")) {
+            return super.unmap(name);
+        }
         if (StringUtils.contains(name, GlobalConstants.GLOBAL_REDIS_KEY)) {
             return super.unmap(name);
         }
         String tenantId = TenantHelper.getTenantId();
         if (StringUtils.isBlank(tenantId)) {
-            log.error("鏃犳硶鑾峰彇鏈夋晥鐨勭鎴穒d -> Null");
+            log.debug("鏃犳硶鑾峰彇鏈夋晥鐨勭鎴穒d -> Null");
+            return super.unmap(name);
         }
-        if (StringUtils.startsWith(unmap, tenantId)) {
+        if (StringUtils.startsWith(unmap, tenantId + "")) {
             // 濡傛灉瀛樺湪鍒欏垹闄�
             return unmap.substring((tenantId + ":").length());
         }

--
Gitblit v1.9.3