Kaynağa Gözat

update 优化 登录用户增加岗位数据

疯狂的狮子Li 1 yıl önce
ebeveyn
işleme
02ace774a6

+ 5 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/model/LoginUser.java

@@ -115,6 +115,11 @@ public class LoginUser implements Serializable {
      */
      */
     private List<RoleDTO> roles;
     private List<RoleDTO> roles;
 
 
+    /**
+     * 岗位对象
+     */
+    private List<PostDTO> posts;
+
     /**
     /**
      * 数据权限 当前角色ID
      * 数据权限 当前角色ID
      */
      */

+ 46 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/model/PostDTO.java

@@ -0,0 +1,46 @@
+package org.dromara.system.api.model;
+
+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;
+
+}

+ 10 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java

@@ -18,11 +18,13 @@ import org.dromara.system.api.RemoteUserService;
 import org.dromara.system.api.domain.bo.RemoteUserBo;
 import org.dromara.system.api.domain.bo.RemoteUserBo;
 import org.dromara.system.api.domain.vo.RemoteUserVo;
 import org.dromara.system.api.domain.vo.RemoteUserVo;
 import org.dromara.system.api.model.LoginUser;
 import org.dromara.system.api.model.LoginUser;
+import org.dromara.system.api.model.PostDTO;
 import org.dromara.system.api.model.RoleDTO;
 import org.dromara.system.api.model.RoleDTO;
 import org.dromara.system.api.model.XcxLoginUser;
 import org.dromara.system.api.model.XcxLoginUser;
 import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.bo.SysUserBo;
 import org.dromara.system.domain.bo.SysUserBo;
 import org.dromara.system.domain.vo.SysDeptVo;
 import org.dromara.system.domain.vo.SysDeptVo;
+import org.dromara.system.domain.vo.SysPostVo;
 import org.dromara.system.domain.vo.SysRoleVo;
 import org.dromara.system.domain.vo.SysRoleVo;
 import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.domain.vo.SysUserVo;
 import org.dromara.system.mapper.SysUserMapper;
 import org.dromara.system.mapper.SysUserMapper;
@@ -46,6 +48,7 @@ public class RemoteUserServiceImpl implements RemoteUserService {
     private final ISysConfigService configService;
     private final ISysConfigService configService;
     private final ISysRoleService roleService;
     private final ISysRoleService roleService;
     private final ISysDeptService deptService;
     private final ISysDeptService deptService;
+    private final ISysPostService postService;
     private final SysUserMapper userMapper;
     private final SysUserMapper userMapper;
 
 
     /**
     /**
@@ -250,22 +253,25 @@ public class RemoteUserServiceImpl implements RemoteUserService {
      */
      */
     private LoginUser buildLoginUser(SysUserVo userVo) {
     private LoginUser buildLoginUser(SysUserVo userVo) {
         LoginUser loginUser = new LoginUser();
         LoginUser loginUser = new LoginUser();
+        Long userId = userVo.getUserId();
         loginUser.setTenantId(userVo.getTenantId());
         loginUser.setTenantId(userVo.getTenantId());
-        loginUser.setUserId(userVo.getUserId());
+        loginUser.setUserId(userId);
         loginUser.setDeptId(userVo.getDeptId());
         loginUser.setDeptId(userVo.getDeptId());
         loginUser.setUsername(userVo.getUserName());
         loginUser.setUsername(userVo.getUserName());
         loginUser.setNickname(userVo.getNickName());
         loginUser.setNickname(userVo.getNickName());
         loginUser.setPassword(userVo.getPassword());
         loginUser.setPassword(userVo.getPassword());
         loginUser.setUserType(userVo.getUserType());
         loginUser.setUserType(userVo.getUserType());
-        loginUser.setMenuPermission(permissionService.getMenuPermission(userVo.getUserId()));
-        loginUser.setRolePermission(permissionService.getRolePermission(userVo.getUserId()));
+        loginUser.setMenuPermission(permissionService.getMenuPermission(userId));
+        loginUser.setRolePermission(permissionService.getRolePermission(userId));
         if (ObjectUtil.isNotNull(userVo.getDeptId())) {
         if (ObjectUtil.isNotNull(userVo.getDeptId())) {
             Opt<SysDeptVo> deptOpt = Opt.of(userVo.getDeptId()).map(deptService::selectDeptById);
             Opt<SysDeptVo> deptOpt = Opt.of(userVo.getDeptId()).map(deptService::selectDeptById);
             loginUser.setDeptName(deptOpt.map(SysDeptVo::getDeptName).orElse(StringUtils.EMPTY));
             loginUser.setDeptName(deptOpt.map(SysDeptVo::getDeptName).orElse(StringUtils.EMPTY));
             loginUser.setDeptCategory(deptOpt.map(SysDeptVo::getDeptCategory).orElse(StringUtils.EMPTY));
             loginUser.setDeptCategory(deptOpt.map(SysDeptVo::getDeptCategory).orElse(StringUtils.EMPTY));
         }
         }
-        List<SysRoleVo> roles = roleService.selectRolesByUserId(userVo.getUserId());
+        List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
+        List<SysPostVo> posts = postService.selectPostsByUserId(userId);
         loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
         loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
+        loginUser.setPosts(BeanUtil.copyToList(posts, PostDTO.class));
         return loginUser;
         return loginUser;
     }
     }
 
 

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysPostService.java

@@ -25,6 +25,14 @@ public interface ISysPostService {
      */
      */
     List<SysPostVo> selectPostList(SysPostBo post);
     List<SysPostVo> selectPostList(SysPostBo post);
 
 
+    /**
+     * 查询用户所属岗位组
+     *
+     * @param userId 用户ID
+     * @return 岗位ID
+     */
+    List<SysPostVo> selectPostsByUserId(Long userId);
+
     /**
     /**
      * 查询所有岗位
      * 查询所有岗位
      *
      *

+ 11 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java

@@ -57,6 +57,17 @@ public class SysPostServiceImpl implements ISysPostService {
         return baseMapper.selectVoList(buildQueryWrapper(post));
         return baseMapper.selectVoList(buildQueryWrapper(post));
     }
     }
 
 
+    /**
+     * 查询用户所属岗位组
+     *
+     * @param userId 用户ID
+     * @return 岗位ID
+     */
+    @Override
+    public List<SysPostVo> selectPostsByUserId(Long userId) {
+        return baseMapper.selectPostsByUserId(userId);
+    }
+
     /**
     /**
      * 根据查询条件构建查询包装器
      * 根据查询条件构建查询包装器
      *
      *