1.修改判断用户退出状态逻辑
This commit is contained in:
@@ -96,7 +96,7 @@ public class LoginService {
|
|||||||
Boolean delete = redisTemplate.delete("ai_login:"+usersDTO.getTenantId()+":"+usersDTO.getUserId());
|
Boolean delete = redisTemplate.delete("ai_login:"+usersDTO.getTenantId()+":"+usersDTO.getUserId());
|
||||||
StpUtil.logout(usersDTO.getUserId());
|
StpUtil.logout(usersDTO.getUserId());
|
||||||
log.info("删除租户:{}登录状态:{}",usersDTO.getTenantId(),delete);
|
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()));
|
created.remove(String.valueOf(usersDTO.getTenantId()));
|
||||||
boolean b = rabbitAdmin.deleteQueue("q.tenant." + usersDTO.getTenantId());
|
boolean b = rabbitAdmin.deleteQueue("q.tenant." + usersDTO.getTenantId());
|
||||||
log.info("删除租户:{}队列删除状态:{}",usersDTO.getTenantId(),b);
|
log.info("删除租户:{}队列删除状态:{}",usersDTO.getTenantId(),b);
|
||||||
|
|||||||
@@ -23,4 +23,18 @@ public class RedisUtils {
|
|||||||
Set<String> keys = redisTemplate.keys(prefix); // 获取匹配的键集合
|
Set<String> keys = redisTemplate.keys(prefix); // 获取匹配的键集合
|
||||||
return !keys.isEmpty(); // 如果有键匹配,返回true,否则返回false
|
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