From c1036a3df288855348a0e9a085f269b3037d85f7 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期五, 17 二月 2023 22:45:08 +0800
Subject: [PATCH] fix 修复 TenantSaTokenDao 内部调用导致 key 错误问题
---
ruoyi-common/ruoyi-common-tenant/src/main/java/com/ruoyi/common/tenant/core/TenantSaTokenDao.java | 42 ++++++++++++++++++++++++++++++++++++++----
1 files changed, 38 insertions(+), 4 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-tenant/src/main/java/com/ruoyi/common/tenant/core/TenantSaTokenDao.java b/ruoyi-common/ruoyi-common-tenant/src/main/java/com/ruoyi/common/tenant/core/TenantSaTokenDao.java
index db9c025..a84bbbd 100644
--- a/ruoyi-common/ruoyi-common-tenant/src/main/java/com/ruoyi/common/tenant/core/TenantSaTokenDao.java
+++ b/ruoyi-common/ruoyi-common-tenant/src/main/java/com/ruoyi/common/tenant/core/TenantSaTokenDao.java
@@ -1,8 +1,10 @@
package com.ruoyi.common.tenant.core;
import com.ruoyi.common.core.constant.GlobalConstants;
+import com.ruoyi.common.redis.utils.RedisUtils;
import com.ruoyi.common.satoken.core.dao.PlusSaTokenDao;
+import java.time.Duration;
import java.util.List;
/**
@@ -27,7 +29,12 @@
*/
@Override
public void update(String key, String value) {
- super.update(GlobalConstants.GLOBAL_REDIS_KEY + key, value);
+ long expire = getTimeout(key);
+ // -2 = 鏃犳閿�
+ if (expire == NOT_VALUE_EXPIRE) {
+ return;
+ }
+ this.set(key, value, expire);
}
/**
@@ -51,7 +58,18 @@
*/
@Override
public void updateTimeout(String key, long timeout) {
- super.updateTimeout(GlobalConstants.GLOBAL_REDIS_KEY + key, timeout);
+ // 鍒ゆ柇鏄惁鎯宠璁剧疆涓烘案涔�
+ if (timeout == NEVER_EXPIRE) {
+ long expire = getTimeout(key);
+ if (expire == NEVER_EXPIRE) {
+ // 濡傛灉鍏跺凡缁忚璁剧疆涓烘案涔咃紝鍒欎笉浣滀换浣曞鐞�
+ } else {
+ // 濡傛灉灏氭湭琚缃负姘镐箙锛岄偅涔堝啀娆et涓�娆�
+ this.set(key, this.get(key), timeout);
+ }
+ return;
+ }
+ RedisUtils.expire(GlobalConstants.GLOBAL_REDIS_KEY + key, Duration.ofSeconds(timeout));
}
@@ -76,7 +94,12 @@
*/
@Override
public void updateObject(String key, Object object) {
- super.updateObject(GlobalConstants.GLOBAL_REDIS_KEY + key, object);
+ long expire = getObjectTimeout(key);
+ // -2 = 鏃犳閿�
+ if (expire == NOT_VALUE_EXPIRE) {
+ return;
+ }
+ this.setObject(key, object, expire);
}
/**
@@ -100,7 +123,18 @@
*/
@Override
public void updateObjectTimeout(String key, long timeout) {
- super.updateObjectTimeout(GlobalConstants.GLOBAL_REDIS_KEY + key, timeout);
+ // 鍒ゆ柇鏄惁鎯宠璁剧疆涓烘案涔�
+ if (timeout == NEVER_EXPIRE) {
+ long expire = getObjectTimeout(key);
+ if (expire == NEVER_EXPIRE) {
+ // 濡傛灉鍏跺凡缁忚璁剧疆涓烘案涔咃紝鍒欎笉浣滀换浣曞鐞�
+ } else {
+ // 濡傛灉灏氭湭琚缃负姘镐箙锛岄偅涔堝啀娆et涓�娆�
+ this.setObject(key, this.getObject(key), timeout);
+ }
+ return;
+ }
+ RedisUtils.expire(GlobalConstants.GLOBAL_REDIS_KEY + key, Duration.ofSeconds(timeout));
}
--
Gitblit v1.9.3