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 + } + }) + ); + } }