ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java
@@ -14,6 +14,7 @@ import org.dromara.common.core.constant.Constants; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.constant.TenantConstants; import org.dromara.common.core.domain.dto.PostDTO; import org.dromara.common.core.domain.dto.RoleDTO; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.enums.LoginType; @@ -60,6 +61,7 @@ private final ISysSocialService sysSocialService; private final ISysRoleService roleService; private final ISysDeptService deptService; private final ISysPostService postService; private final SysUserMapper userMapper; @@ -148,21 +150,24 @@ */ public LoginUser buildLoginUser(SysUserVo user) { LoginUser loginUser = new LoginUser(); Long userId = user.getUserId(); loginUser.setTenantId(user.getTenantId()); loginUser.setUserId(user.getUserId()); loginUser.setUserId(userId); loginUser.setDeptId(user.getDeptId()); loginUser.setUsername(user.getUserName()); loginUser.setNickname(user.getNickName()); loginUser.setUserType(user.getUserType()); loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId())); loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId())); loginUser.setMenuPermission(permissionService.getMenuPermission(userId)); loginUser.setRolePermission(permissionService.getRolePermission(userId)); if (ObjectUtil.isNotNull(user.getDeptId())) { Opt<SysDeptVo> 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<SysRoleVo> roles = roleService.selectRolesByUserId(user.getUserId()); List<SysRoleVo> roles = roleService.selectRolesByUserId(userId); List<SysPostVo> posts = postService.selectPostsByUserId(userId); loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class)); loginUser.setPosts(BeanUtil.copyToList(posts, PostDTO.class)); return loginUser; } ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/PostDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package org.dromara.common.core.domain.dto; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serial; import java.io.Serializable; /** * å²ä½ * * @author AprilWind */ @Data @NoArgsConstructor public class PostDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; /** * å²ä½ID */ private Long postId; /** * é¨é¨id */ private Long deptId; /** * å²ä½ç¼ç */ private String postCode; /** * å²ä½åç§° */ private String postName; /** * å²ä½ç±»å«ç¼ç */ private String postCategory; } ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/model/LoginUser.java
@@ -1,8 +1,9 @@ package org.dromara.common.core.domain.model; import org.dromara.common.core.domain.dto.RoleDTO; import lombok.Data; import lombok.NoArgsConstructor; import org.dromara.common.core.domain.dto.PostDTO; import org.dromara.common.core.domain.dto.RoleDTO; import java.io.Serial; import java.io.Serializable; @@ -112,6 +113,11 @@ private List<RoleDTO> roles; /** * å²ä½å¯¹è±¡ */ private List<PostDTO> posts; /** * æ°æ®æé å½åè§è²ID */ private Long roleId; ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/PostService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package org.dromara.common.core.service; /** * éç¨ å²ä½æå¡ * * @author AprilWind */ public interface PostService { } ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysPostService.java
@@ -26,6 +26,14 @@ List<SysPostVo> selectPostList(SysPostBo post); /** * æ¥è¯¢ç¨æ·æå±å²ä½ç» * * @param userId ç¨æ·ID * @return å²ä½ID */ List<SysPostVo> selectPostsByUserId(Long userId); /** * æ¥è¯¢ææå²ä½ * * @return å²ä½å表 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java
@@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.service.PostService; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; @@ -34,7 +35,7 @@ */ @RequiredArgsConstructor @Service public class SysPostServiceImpl implements ISysPostService { public class SysPostServiceImpl implements ISysPostService, PostService { private final SysPostMapper baseMapper; private final SysDeptMapper deptMapper; @@ -58,6 +59,17 @@ } /** * æ¥è¯¢ç¨æ·æå±å²ä½ç» * * @param userId ç¨æ·ID * @return å²ä½ID */ @Override public List<SysPostVo> selectPostsByUserId(Long userId) { return baseMapper.selectPostsByUserId(userId); } /** * æ ¹æ®æ¥è¯¢æ¡ä»¶æå»ºæ¥è¯¢å è£ å¨ * * @param bo æ¥è¯¢æ¡ä»¶å¯¹è±¡