From a44651dd2f0b7f5ab2bc6f7e4cf4b0188a65e5be Mon Sep 17 00:00:00 2001 From: Ziin Date: Wed, 27 Aug 2025 21:39:56 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=88=A4=E6=96=AD=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=80=80=E5=87=BA=E7=8A=B6=E6=80=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springbootinit/service/impl/LoginService.java | 2 +- .../com/yupi/springbootinit/utils/RedisUtils.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java b/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java index 1d7f878..4158885 100644 --- a/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java +++ b/src/main/java/com/yupi/springbootinit/service/impl/LoginService.java @@ -96,7 +96,7 @@ public class LoginService { Boolean delete = redisTemplate.delete("ai_login:"+usersDTO.getTenantId()+":"+usersDTO.getUserId()); StpUtil.logout(usersDTO.getUserId()); log.info("删除租户:{}登录状态:{}",usersDTO.getTenantId(),delete); - if (!redisUtils.hasAiLoginKeys("ai_login:" + usersDTO.getTenantId()+":*")) { + if (!redisUtils.hasKeyByPrefix("ai_login:" + usersDTO.getTenantId())) { created.remove(String.valueOf(usersDTO.getTenantId())); boolean b = rabbitAdmin.deleteQueue("q.tenant." + usersDTO.getTenantId()); log.info("删除租户:{}队列删除状态:{}",usersDTO.getTenantId(),b); diff --git a/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java b/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java index 1d9b5bf..ae98b44 100644 --- a/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java +++ b/src/main/java/com/yupi/springbootinit/utils/RedisUtils.java @@ -23,4 +23,18 @@ public class RedisUtils { Set keys = redisTemplate.keys(prefix); // 获取匹配的键集合 return !keys.isEmpty(); // 如果有键匹配,返回true,否则返回false } + + public boolean hasKeyByPrefix(String prefix) { + return Boolean.TRUE.equals( + redisTemplate.execute((RedisCallback) conn -> { + try (Cursor cursor = conn.scan( + ScanOptions.scanOptions() + .match(prefix + ":*") + .count(100) // 每次返回条数,可调整 + .build())) { + return cursor.hasNext(); // 只要存在一条就返回 true + } + }) + ); + } }