Commit e1f64eaad2415a54a9c008838b8b6cdca936880f
1 parent
be27ba3a
fix:【框架】支持自定义过期时间的缓存 key,不能忽略租户问题,对应 https://gitee.com/zhijiantianya/ruoyi-vue-pro/pulls/1474
Showing
1 changed file
with
7 additions
and
3 deletions
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/redis/TenantRedisCacheManager.java
| 1 | 1 | package cn.iocoder.yudao.framework.tenant.core.redis; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | +import cn.hutool.core.util.StrUtil; | |
| 4 | 5 | import cn.iocoder.yudao.framework.redis.core.TimeoutRedisCacheManager; |
| 5 | 6 | import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; |
| 6 | 7 | import lombok.extern.slf4j.Slf4j; |
| ... | ... | @@ -21,6 +22,8 @@ import java.util.Set; |
| 21 | 22 | @Slf4j |
| 22 | 23 | public class TenantRedisCacheManager extends TimeoutRedisCacheManager { |
| 23 | 24 | |
| 25 | + private static final String SPLIT = "#"; | |
| 26 | + | |
| 24 | 27 | private final Set<String> ignoreCaches; |
| 25 | 28 | |
| 26 | 29 | public TenantRedisCacheManager(RedisCacheWriter cacheWriter, |
| ... | ... | @@ -32,10 +35,11 @@ public class TenantRedisCacheManager extends TimeoutRedisCacheManager { |
| 32 | 35 | |
| 33 | 36 | @Override |
| 34 | 37 | public Cache getCache(String name) { |
| 38 | + String[] names = StrUtil.splitToArray(name, SPLIT); | |
| 35 | 39 | // 如果开启多租户,则 name 拼接租户后缀 |
| 36 | 40 | if (!TenantContextHolder.isIgnore() |
| 37 | - && TenantContextHolder.getTenantId() != null | |
| 38 | - && !CollUtil.contains(ignoreCaches, name)) { | |
| 41 | + && TenantContextHolder.getTenantId() != null | |
| 42 | + && !CollUtil.contains(ignoreCaches, names[0])) { | |
| 39 | 43 | name = name + ":" + TenantContextHolder.getTenantId(); |
| 40 | 44 | } |
| 41 | 45 | |
| ... | ... | @@ -43,4 +47,4 @@ public class TenantRedisCacheManager extends TimeoutRedisCacheManager { |
| 43 | 47 | return super.getCache(name); |
| 44 | 48 | } |
| 45 | 49 | |
| 46 | 50 | -} |
| 51 | +} | |
| 47 | 52 | \ No newline at end of file | ... | ... |