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

This commit is contained in:
疯狂的狮子Li
2024-12-12 23:51:01 +08:00
parent 9c55e4efc8
commit 02ace774a6
5 changed files with 80 additions and 4 deletions

View File

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

View File

@@ -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;
}

View File

@@ -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.setMenuPermission(permissionService.getMenuPermission(userId));
loginUser.setRolePermission(permissionService.getRolePermission(userVo.getUserId())); 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;
} }

View File

@@ -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);
/** /**
* 查询所有岗位 * 查询所有岗位
* *

View File

@@ -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);
}
/** /**
* 根据查询条件构建查询包装器 * 根据查询条件构建查询包装器
* *