1.修改判断用户退出状态逻辑
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user