diff --git a/pom.xml b/pom.xml
index 337c6f9a5..b2794b1c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
4.0.1
UTF-8
UTF-8
- 17
+ 21
3.5.16
3.0.1
0.15.0
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
index 9a87b99a6..1c7cb3438 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
@@ -33,6 +33,8 @@ import org.springframework.stereotype.Service;
import java.time.Duration;
import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import java.util.function.Supplier;
/**
@@ -144,17 +146,27 @@ public class SysLoginService {
loginUser.setUsername(user.getUserName());
loginUser.setNickname(user.getNickName());
loginUser.setUserType(user.getUserType());
- loginUser.setMenuPermission(permissionService.getMenuPermission(userId));
- loginUser.setRolePermission(permissionService.getRolePermission(userId));
if (ObjectUtil.isNotNull(user.getDeptId())) {
Opt deptOpt = Opt.of(user.getDeptId()).map(deptService::selectDeptById);
loginUser.setDeptName(deptOpt.map(SysDeptVo::getDeptName).orElse(StringUtils.EMPTY));
loginUser.setDeptCategory(deptOpt.map(SysDeptVo::getDeptCategory).orElse(StringUtils.EMPTY));
}
- List roles = roleService.selectRolesByUserId(userId);
- List posts = postService.selectPostsByUserId(userId);
- loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
- loginUser.setPosts(BeanUtil.copyToList(posts, PostDTO.class));
+ try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) {
+ executor.execute(() -> {
+ loginUser.setMenuPermission(permissionService.getMenuPermission(userId));
+ });
+ executor.execute(() -> {
+ loginUser.setRolePermission(permissionService.getRolePermission(userId));
+ });
+ executor.execute(() -> {
+ List roles = roleService.selectRolesByUserId(userId);
+ loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
+ });
+ executor.execute(() -> {
+ List posts = postService.selectPostsByUserId(userId);
+ loginUser.setPosts(BeanUtil.copyToList(posts, PostDTO.class));
+ });
+ }
return loginUser;
}