update 优化 使用翻译注解简化用户查询 调整用户查询逻辑

update 优化 使用翻译注解简化用户查询 调整用户查询逻辑
This commit is contained in:
疯狂的狮子Li 2024-01-06 20:47:05 +08:00
parent a7bb4ee50c
commit e7ca94bab1
10 changed files with 26 additions and 37 deletions

View File

@ -57,7 +57,7 @@ public class SysLoginService {
private final ISysPermissionService permissionService; private final ISysPermissionService permissionService;
private final ISysSocialService sysSocialService; private final ISysSocialService sysSocialService;
private final ISysRoleService roleService; private final ISysRoleService roleService;
private final SysDeptMapper deptMapper; private final ISysDeptService deptService;
private final SysUserMapper userMapper; private final SysUserMapper userMapper;
@ -145,11 +145,9 @@ public class SysLoginService {
loginUser.setUserType(user.getUserType()); loginUser.setUserType(user.getUserType());
loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId())); loginUser.setMenuPermission(permissionService.getMenuPermission(user.getUserId()));
loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId())); loginUser.setRolePermission(permissionService.getRolePermission(user.getUserId()));
SysDeptVo dept = deptMapper.selectVoById(user.getDeptId()); SysDeptVo dept = deptService.selectDeptById(user.getDeptId());
loginUser.setDeptName(ObjectUtil.isNull(dept) ? "" : dept.getDeptName()); loginUser.setDeptName(ObjectUtil.isNull(dept) ? "" : dept.getDeptName());
List<SysRoleVo> roles = DataPermissionHelper.ignore(() -> { List<SysRoleVo> roles = roleService.selectRolesByUserId(user.getUserId());
return roleService.selectRolesByUserId(user.getUserId());
});
loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class)); loginUser.setRoles(BeanUtil.copyToList(roles, RoleDTO.class));
return loginUser; return loginUser;
} }

View File

@ -41,7 +41,6 @@ import java.util.Arrays;
public class SysProfileController extends BaseController { public class SysProfileController extends BaseController {
private final ISysUserService userService; private final ISysUserService userService;
private final ISysRoleService roleService;
private final ISysOssService ossService; private final ISysOssService ossService;
/** /**
@ -50,7 +49,6 @@ public class SysProfileController extends BaseController {
@GetMapping @GetMapping
public R<ProfileVo> profile() { public R<ProfileVo> profile() {
SysUserVo user = userService.selectUserById(LoginHelper.getUserId()); SysUserVo user = userService.selectUserById(LoginHelper.getUserId());
user.setRoles(roleService.selectRolesByUserId(user.getUserId()));
ProfileVo profileVo = new ProfileVo(); ProfileVo profileVo = new ProfileVo();
profileVo.setUser(user); profileVo.setUser(user);
profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserId())); profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserId()));

View File

@ -72,9 +72,8 @@ public class SysUserController extends BaseController {
@SaCheckPermission("system:user:export") @SaCheckPermission("system:user:export")
@PostMapping("/export") @PostMapping("/export")
public void export(SysUserBo user, HttpServletResponse response) { public void export(SysUserBo user, HttpServletResponse response) {
List<SysUserVo> list = userService.selectUserList(user); List<SysUserExportVo> list = userService.selectUserExportList(user);
List<SysUserExportVo> listVo = MapstructUtils.convert(list, SysUserExportVo.class); ExcelUtil.exportExcel(list, "用户数据", SysUserExportVo.class, response);
ExcelUtil.exportExcel(listVo, "用户数据", SysUserExportVo.class, response);
} }
/** /**
@ -116,7 +115,6 @@ public class SysUserController extends BaseController {
if (ObjectUtil.isNull(user)) { if (ObjectUtil.isNull(user)) {
return R.fail("没有权限访问用户数据!"); return R.fail("没有权限访问用户数据!");
} }
user.setRoles(roleService.selectRolesByUserId(user.getUserId()));
userInfoVo.setUser(user); userInfoVo.setUser(user);
userInfoVo.setPermissions(loginUser.getMenuPermission()); userInfoVo.setPermissions(loginUser.getMenuPermission());
userInfoVo.setRoles(loginUser.getRolePermission()); userInfoVo.setRoles(loginUser.getRolePermission());

View File

@ -20,7 +20,6 @@ import java.util.Date;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AutoMapper(target = SysUserVo.class, convertGenerate = false)
public class SysUserExportVo implements Serializable { public class SysUserExportVo implements Serializable {
@Serial @Serial
@ -85,14 +84,12 @@ public class SysUserExportVo implements Serializable {
/** /**
* 部门名称 * 部门名称
*/ */
@ReverseAutoMapping(target = "deptName", source = "dept.deptName")
@ExcelProperty(value = "部门名称") @ExcelProperty(value = "部门名称")
private String deptName; private String deptName;
/** /**
* 负责人 * 负责人
*/ */
@ReverseAutoMapping(target = "leaderName", source = "dept.leaderName")
@ExcelProperty(value = "部门负责人") @ExcelProperty(value = "部门负责人")
private String leaderName; private String leaderName;

View File

@ -114,9 +114,10 @@ public class SysUserVo implements Serializable {
private Date createTime; private Date createTime;
/** /**
* 部门对象 * 部门
*/ */
private SysDeptVo dept; @Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "deptId")
private String deptName;
/** /**
* 角色对象 * 角色对象

View File

@ -8,6 +8,7 @@ import org.dromara.common.mybatis.annotation.DataColumn;
import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.annotation.DataPermission;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysUser; import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.vo.SysUserExportVo;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import java.util.List; import java.util.List;
@ -20,7 +21,7 @@ import java.util.List;
public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> { public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
@DataPermission({ @DataPermission({
@DataColumn(key = "deptName", value = "d.dept_id"), @DataColumn(key = "deptName", value = "u.dept_id"),
@DataColumn(key = "userName", value = "u.user_id") @DataColumn(key = "userName", value = "u.user_id")
}) })
Page<SysUserVo> selectPageUserList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper); Page<SysUserVo> selectPageUserList(@Param("page") Page<SysUser> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
@ -35,7 +36,7 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
@DataColumn(key = "deptName", value = "d.dept_id"), @DataColumn(key = "deptName", value = "d.dept_id"),
@DataColumn(key = "userName", value = "u.user_id") @DataColumn(key = "userName", value = "u.user_id")
}) })
List<SysUserVo> selectUserList(@Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper); List<SysUserExportVo> selectUserExportList(@Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
/** /**
* 根据条件分页查询已配用户角色列表 * 根据条件分页查询已配用户角色列表

View File

@ -3,6 +3,7 @@ package org.dromara.system.service;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.bo.SysUserBo; import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysUserExportVo;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import java.util.List; import java.util.List;
@ -23,7 +24,7 @@ public interface ISysUserService {
* @param user 用户信息 * @param user 用户信息
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
List<SysUserVo> selectUserList(SysUserBo user); List<SysUserExportVo> selectUserExportList(SysUserBo user);
/** /**
* 根据条件分页查询已分配用户角色列表 * 根据条件分页查询已分配用户角色列表

View File

@ -80,7 +80,6 @@ public class SysRoleServiceImpl implements ISysRoleService {
.between(params.get("beginTime") != null && params.get("endTime") != null, .between(params.get("beginTime") != null && params.get("endTime") != null,
"r.create_time", params.get("beginTime"), params.get("endTime")) "r.create_time", params.get("beginTime"), params.get("endTime"))
.orderByAsc("r.role_sort").orderByAsc("r.create_time"); .orderByAsc("r.role_sort").orderByAsc("r.create_time");
;
return wrapper; return wrapper;
} }

View File

@ -29,6 +29,7 @@ import org.dromara.system.domain.SysUserRole;
import org.dromara.system.domain.bo.SysUserBo; import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysPostVo; 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.SysUserExportVo;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.mapper.*; import org.dromara.system.mapper.*;
import org.dromara.system.service.ISysUserService; import org.dromara.system.service.ISysUserService;
@ -69,8 +70,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
* @return 用户信息集合信息 * @return 用户信息集合信息
*/ */
@Override @Override
public List<SysUserVo> selectUserList(SysUserBo user) { public List<SysUserExportVo> selectUserExportList(SysUserBo user) {
return baseMapper.selectUserList(this.buildQueryWrapper(user)); return baseMapper.selectUserExportList(this.buildQueryWrapper(user));
} }
private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) { private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) {
@ -163,7 +164,12 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
public SysUserVo selectUserById(Long userId) { public SysUserVo selectUserById(Long userId) {
return baseMapper.selectVoById(userId); SysUserVo user = baseMapper.selectVoById(userId);
if (ObjectUtil.isNull(user)) {
return user;
}
user.setRoles(roleMapper.selectRolesByUserId(user.getUserId()));
return user;
} }
/** /**

View File

@ -4,31 +4,21 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.system.mapper.SysUserMapper"> <mapper namespace="org.dromara.system.mapper.SysUserMapper">
<!-- 多结构嵌套自动映射需带上每个实体的主键id 否则映射会失败 -->
<resultMap type="org.dromara.system.domain.vo.SysUserVo" id="SysUserResult"> <resultMap type="org.dromara.system.domain.vo.SysUserVo" id="SysUserResult">
<id property="userId" column="user_id"/> <id property="userId" column="user_id"/>
<result property="deptId" column="dept_id"/>
<association property="dept" column="dept_id" resultMap="deptResult"/>
</resultMap> </resultMap>
<resultMap type="org.dromara.system.domain.vo.SysUserExportVo" id="SysUserExportResult">
<resultMap id="deptResult" type="org.dromara.system.domain.vo.SysDeptVo"> <id property="userId" column="user_id"/>
<id property="deptId" column="dept_id"/>
<result property="email" column="dept_email"/>
<result property="status" column="dept_status"/>
<result property="createTime" column="dept_create_time"/>
</resultMap> </resultMap>
<select id="selectPageUserList" resultMap="SysUserResult"> <select id="selectPageUserList" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark
d.dept_name, d.leader, u1.user_name as leaderName
from sys_user u from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user u1 on u1.user_id = d.leader
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
<select id="selectUserList" resultMap="SysUserResult"> <select id="selectUserExportList" resultMap="SysUserExportResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_name, d.leader, u1.user_name as leaderName d.dept_name, d.leader, u1.user_name as leaderName