From 545b0a4642fc7d56664978595473a4d536b6ff25 Mon Sep 17 00:00:00 2001 From: PIGCLOUD Date: Mon, 21 Sep 2026 14:32:50 +0800 Subject: [PATCH] =?UTF-8?q?refactor(pigx-upms-biz):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E8=8F=9C=E5=8D=95=E7=BC=93=E5=AD=98=E6=B8=85?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将缩进从4个空格统一替换为Tab,并调整链式调用换行格式 - 重构 updateTenant 方法中菜单缓存清理逻辑,移除 RedisUtils 依赖,改用 Spring Cache 的 Cache.evict 按角色ID清除缓存 - 移除未使用的 RedisUtils 导入,增加 Cache 导入 - 微调日志格式和数组字面量格式 (cherry picked from commit b368a80a83a7d7efb34a63cda26e4ad64e99dfd0) --- .../admin/service/impl/SysTenantServiceImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java index 9ffc6626c..f8f929f66 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysTenantServiceImpl.java @@ -35,7 +35,6 @@ import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.core.util.SpringContextHolder; -import com.pig4cloud.pigx.common.data.cache.RedisUtils; import com.pig4cloud.pigx.common.data.datascope.DataScopeTypeEnum; import com.pig4cloud.pigx.common.data.resolver.ParamResolver; import com.pig4cloud.pigx.common.data.tenant.TenantBroker; @@ -46,6 +45,7 @@ import lombok.Data; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; @@ -307,11 +307,12 @@ public class SysTenantServiceImpl extends ServiceImpl keys = RedisUtils.keys(String.format("%s:%s::*", tenantDTO.getId(), CacheConstants.MENU_DETAILS)); - if (CollUtil.isNotEmpty(keys)) { - RedisUtils.delete(keys.toArray(new String[0])); - } + // 菜单缓存按角色 ID 全局存储,仅清除目标租户的角色菜单缓存 + TenantBroker.runAs(tenantDTO.getId(), tenantId -> { + List roles = roleService.list(Wrappers.lambdaQuery().select(SysRole::getRoleId)); + Cache menuCache = Objects.requireNonNull(cacheManager.getCache(CacheConstants.MENU_DETAILS)); + roles.forEach(role -> menuCache.evict(role.getRoleId())); + }); return Boolean.TRUE; }