From 7f2d8fb39a05ef1107757692acafa650db531e00 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Mon, 22 Apr 2024 21:22:23 +0800 Subject: [PATCH] bugfix --- .../loginUser/service/LoginUserService.java | 51 ++++++++++--------- .../service/OrganizationService.java | 3 +- .../coal/session/service/SessionService.java | 4 +- .../coal/user/service/UserService.java | 1 + 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java b/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java index e0009355..2e0e6dfe 100644 --- a/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java +++ b/src/main/java/cn/lihongjie/coal/loginUser/service/LoginUserService.java @@ -180,14 +180,13 @@ public class LoginUserService extends BaseService entry : copy.entrySet()) { - int count = repository.updateLastActiveTimeByIdAndLastActiveTimeLessThan( - entry.getValue(), entry.getKey(), entry.getValue()); + int count = + repository.updateLastActiveTimeByIdAndLastActiveTimeLessThan( + entry.getValue(), entry.getKey(), entry.getValue()); log.info("更新会话最后活跃时间: {} to {}, count:{}", entry.getKey(), entry.getValue(), count); } - } public void touch(LoginUserDto loginDto) { @@ -250,25 +249,28 @@ public class LoginUserService extends BaseService() { - @Override - public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { - return criteriaBuilder.equal(root.get("user").get("id"), id); - } - })); - + return Math.toIntExact( + this.count( + new Specification() { + @Override + public Predicate toPredicate( + Root root, + CriteriaQuery query, + CriteriaBuilder criteriaBuilder) { + return criteriaBuilder.equal(root.get("user").get("id"), id); + } + })); } public void logout(IdRequest request) { diff --git a/src/main/java/cn/lihongjie/coal/organization/service/OrganizationService.java b/src/main/java/cn/lihongjie/coal/organization/service/OrganizationService.java index 0082c707..f94e34a1 100644 --- a/src/main/java/cn/lihongjie/coal/organization/service/OrganizationService.java +++ b/src/main/java/cn/lihongjie/coal/organization/service/OrganizationService.java @@ -20,6 +20,7 @@ import jakarta.annotation.PostConstruct; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.ConversionService; @@ -131,7 +132,7 @@ class OrganizationService extends BaseService names = this.repository.findNamesByIds(strings); - Map javaMap = Stream.ofAll(names).toMap(x -> x.split(",")[0], x -> x.split(",")[1]).toJavaMap(); + Map javaMap = Stream.ofAll(names).filter(StringUtils::isNotBlank).toMap(x -> x.split(",")[0], x -> x.split(",")[1]).toJavaMap(); strings.forEach(x -> javaMap.putIfAbsent(x, null)); diff --git a/src/main/java/cn/lihongjie/coal/session/service/SessionService.java b/src/main/java/cn/lihongjie/coal/session/service/SessionService.java index 8cda53d7..7f3eeb99 100644 --- a/src/main/java/cn/lihongjie/coal/session/service/SessionService.java +++ b/src/main/java/cn/lihongjie/coal/session/service/SessionService.java @@ -125,11 +125,13 @@ public class SessionService { loginDto = loginUserService.getFromCache(sessionId); } catch (Exception e) { - log.warn("会话已过期 {}", sessionId, e); + log.warn("会话已过期 {}", sessionId); logout(sessionId); throw new BizException("invalidToken", "会话已过期,请重新登录"); } + + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest(); diff --git a/src/main/java/cn/lihongjie/coal/user/service/UserService.java b/src/main/java/cn/lihongjie/coal/user/service/UserService.java index cf82120f..0b458c81 100644 --- a/src/main/java/cn/lihongjie/coal/user/service/UserService.java +++ b/src/main/java/cn/lihongjie/coal/user/service/UserService.java @@ -411,6 +411,7 @@ public class UserService extends BaseService { Map javaMap = Stream.ofAll(names) + .filter(StringUtils::isNotBlank) .toMap(x -> x.split(",")[0], x -> x.split(",")[1]) .toJavaMap();