1.修改判断用户退出状态逻辑

This commit is contained in:
2025-08-27 21:39:56 +08:00
parent 43cbd262ea
commit a44651dd2f
2 changed files with 15 additions and 1 deletions

View File

@@ -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);

View File

@@ -23,4 +23,18 @@ public class RedisUtils {
Set<String> keys = redisTemplate.keys(prefix); // 获取匹配的键集合
return !keys.isEmpty(); // 如果有键匹配返回true否则返回false
}
public boolean hasKeyByPrefix(String prefix) {
return Boolean.TRUE.equals(
redisTemplate.execute((RedisCallback<Boolean>) conn -> {
try (Cursor<byte[]> cursor = conn.scan(
ScanOptions.scanOptions()
.match(prefix + ":*")
.count(100) // 每次返回条数,可调整
.build())) {
return cursor.hasNext(); // 只要存在一条就返回 true
}
})
);
}
}