fix:【框架】支持自定义过期时间的缓存 key,不能忽略租户问题,对应 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1474

This commit is contained in:
YunaiV 2025-12-13 09:43:48 +08:00
parent be27ba3aa6
commit e1f64eaad2

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.framework.tenant.core.redis; package cn.iocoder.yudao.framework.tenant.core.redis;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.redis.core.TimeoutRedisCacheManager; import cn.iocoder.yudao.framework.redis.core.TimeoutRedisCacheManager;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -21,6 +22,8 @@ import java.util.Set;
@Slf4j @Slf4j
public class TenantRedisCacheManager extends TimeoutRedisCacheManager { public class TenantRedisCacheManager extends TimeoutRedisCacheManager {
private static final String SPLIT = "#";
private final Set<String> ignoreCaches; private final Set<String> ignoreCaches;
public TenantRedisCacheManager(RedisCacheWriter cacheWriter, public TenantRedisCacheManager(RedisCacheWriter cacheWriter,
@ -32,10 +35,11 @@ public class TenantRedisCacheManager extends TimeoutRedisCacheManager {
@Override @Override
public Cache getCache(String name) { public Cache getCache(String name) {
String[] names = StrUtil.splitToArray(name, SPLIT);
// 如果开启多租户 name 拼接租户后缀 // 如果开启多租户 name 拼接租户后缀
if (!TenantContextHolder.isIgnore() if (!TenantContextHolder.isIgnore()
&& TenantContextHolder.getTenantId() != null && TenantContextHolder.getTenantId() != null
&& !CollUtil.contains(ignoreCaches, name)) { && !CollUtil.contains(ignoreCaches, names[0])) {
name = name + ":" + TenantContextHolder.getTenantId(); name = name + ":" + TenantContextHolder.getTenantId();
} }
@ -43,4 +47,4 @@ public class TenantRedisCacheManager extends TimeoutRedisCacheManager {
return super.getCache(name); return super.getCache(name);
} }
} }