【add】用户列表添加角色字段

This commit is contained in:
zer0Black
2022-12-22 12:24:06 +08:00
parent e2db5d8ef6
commit 05a3443231
10 changed files with 84 additions and 13 deletions
@@ -114,16 +114,22 @@ public class SysUserController {
IPage<SysUser> pageList = sysUserService.queryPage(page, subDepIds, queryWrapper); IPage<SysUser> pageList = sysUserService.queryPage(page, subDepIds, queryWrapper);
//批量查询用户的所属部门 //批量查询用户的所属部门
//step.1 先拿到全部的 useids //step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && userIds.size()>0){ if(userIds!=null && userIds.size()>0){
//step.2 通过 useids,一次性查询用户的所属部门名字
Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds); Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
//step.3 通过 useids,一次性查询用户的角色名字
Map<String,String> useRoleNames = sysUserService.getRoleNamesByUserIds(userIds);
//step.4 遍历赋值
pageList.getRecords().forEach(item->{ pageList.getRecords().forEach(item->{
item.setOrgCodeTxt(useDepNames.get(item.getId())); item.setOrgCodeTxt(useDepNames.get(item.getId()));
item.setRoleTxt(useRoleNames.get(item.getId()));
}); });
} }
result.setSuccess(true); result.setSuccess(true);
result.setResult(pageList); result.setResult(pageList);
log.info(pageList.toString()); log.info(pageList.toString());
@@ -105,6 +105,9 @@ public class SysUser implements Serializable {
/**部门名称*/ /**部门名称*/
private transient String orgCodeTxt; private transient String orgCodeTxt;
/**角色名称*/
private transient String roleTxt;
/** /**
* 状态(1:正常 2:冻结 ) * 状态(1:正常 2:冻结 )
*/ */
@@ -4,11 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.system.vo.SysUserRoleNameVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.system.model.SysUserSysDepartModel; import com.jero.modules.system.model.SysUserSysDepartModel;
import com.jero.modules.system.vo.SysUserDepVo; import com.jero.modules.system.vo.SysUserDepNameVo;
import java.util.List; import java.util.List;
@@ -48,7 +49,14 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @param userIds * @param userIds
* @return * @return
*/ */
List<SysUserDepVo> getDepNamesByUserIds(@Param("userIds")List<String> userIds); List<SysUserDepNameVo> getDepNamesByUserIds(@Param("userIds")List<String> userIds);
/**
* 根据用户Ids,查询用户角色名称信息
* @param userIds
* @return
*/
List<SysUserRoleNameVo> getRoleNamesByUserIds(@Param("userIds")List<String> userIds);
/** /**
* 根据部门Ids,查询部门下用户信息 * 根据部门Ids,查询部门下用户信息
@@ -36,13 +36,21 @@
</select> </select>
<!-- 查询用户的所属部门名称信息 --> <!-- 查询用户的所属部门名称信息 -->
<select id="getDepNamesByUserIds" resultType="com.jero.modules.system.vo.SysUserDepVo"> <select id="getDepNamesByUserIds" resultType="com.jero.modules.system.vo.SysUserDepNameVo">
select d.depart_name,ud.user_id from sys_user_depart ud,sys_depart d where d.id = ud.dep_id and ud.user_id in select d.depart_name,ud.user_id from sys_user_depart ud,sys_depart d where d.id = ud.dep_id and ud.user_id in
<foreach collection="userIds" index="index" item="id" open="(" separator="," close=")"> <foreach collection="userIds" index="index" item="id" open="(" separator="," close=")">
#{id} #{id}
</foreach> </foreach>
</select> </select>
<!-- 查询用户的角色名称信息 -->
<select id="getRoleNamesByUserIds" resultType="com.jero.modules.system.vo.SysUserRoleNameVo">
select r.role_name,ur.user_id from sys_user_role ur,sys_role r where r.id = ur.role_id and ur.user_id in
<foreach collection="userIds" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 通过多个部门IDS,查询部门下的用户信息 --> <!-- 通过多个部门IDS,查询部门下的用户信息 -->
<select id="getUserByDepIds" resultType="com.jero.modules.system.entity.SysUser"> <select id="getUserByDepIds" resultType="com.jero.modules.system.entity.SysUser">
select * from sys_user where del_flag = 0 select * from sys_user where del_flag = 0
@@ -128,6 +128,13 @@ public interface ISysUserService extends IService<SysUser> {
*/ */
public Map<String,String> getDepNamesByUserIds(List<String> userIds); public Map<String,String> getDepNamesByUserIds(List<String> userIds);
/**
* 根据 userIds查询,查询用户所属角色的名称(多个角色名逗号隔开)
* @param
* @return
*/
public Map<String,String> getRoleNamesByUserIds(List<String> userIds);
/** /**
* 根据部门 Id 和 QueryWrapper 查询 * 根据部门 Id 和 QueryWrapper 查询
* *
@@ -1,14 +1,11 @@
package com.jero.modules.system.service.impl; package com.jero.modules.system.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.conditions.segments.NormalSegmentList;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.system.vo.SysUserRoleNameVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CacheConstant;
@@ -24,7 +21,7 @@ import com.jero.modules.system.entity.*;
import com.jero.modules.system.mapper.*; import com.jero.modules.system.mapper.*;
import com.jero.modules.system.model.SysUserSysDepartModel; import com.jero.modules.system.model.SysUserSysDepartModel;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.SysUserDepVo; import com.jero.modules.system.vo.SysUserDepNameVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -248,10 +245,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override @Override
public Map<String, String> getDepNamesByUserIds(List<String> userIds) { public Map<String, String> getDepNamesByUserIds(List<String> userIds) {
List<SysUserDepVo> list = this.baseMapper.getDepNamesByUserIds(userIds); List<SysUserDepNameVo> userDeplist = this.baseMapper.getDepNamesByUserIds(userIds);
Map<String, String> res = new HashMap<String, String>(); Map<String, String> res = new HashMap<String, String>();
list.forEach(item -> { userDeplist.forEach(item -> {
if (res.get(item.getUserId()) == null) { if (res.get(item.getUserId()) == null) {
res.put(item.getUserId(), item.getDepartName()); res.put(item.getUserId(), item.getDepartName());
} else { } else {
@@ -262,6 +259,27 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return res; return res;
} }
/**
* 根据用id列表查出对应的角色名称
* @param userIds
* @return
*/
@Override
public Map<String, String> getRoleNamesByUserIds(List<String> userIds) {
List<SysUserRoleNameVo> userRolelist = this.baseMapper.getRoleNamesByUserIds(userIds);
Map<String, String> res = new HashMap<String, String>();
userRolelist.forEach(item -> {
if (res.get(item.getUserId()) == null) {
res.put(item.getUserId(), item.getRoleName());
} else {
res.put(item.getUserId(), res.get(item.getUserId()) + "," + item.getRoleName());
}
}
);
return res;
}
@Override @Override
public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) { public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) {
LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda(); LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda();
@@ -9,7 +9,7 @@ import lombok.Data;
* @Version 1.0 * @Version 1.0
*/ */
@Data @Data
public class SysUserDepVo { public class SysUserDepNameVo {
private String userId; private String userId;
private String departName; private String departName;
} }
@@ -0,0 +1,15 @@
package com.jero.modules.system.vo;
import lombok.Data;
/**
* @Author zer0Black
* @Date 2022/12/22 211:58
* @Description:
* @Version 1.0
*/
@Data
public class SysUserRoleNameVo {
private String userId;
private String roleName;
}
@@ -9,7 +9,7 @@ import java.util.List;
public class SysUserRoleVO implements Serializable{ public class SysUserRoleVO implements Serializable{
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**部门id*/ /**角色id*/
private String roleId; private String roleId;
/**对应的用户id集合*/ /**对应的用户id集合*/
private List<String> userIdList; private List<String> userIdList;
+6
View File
@@ -272,6 +272,12 @@
width: 180, width: 180,
dataIndex: 'orgCodeTxt' dataIndex: 'orgCodeTxt'
}, },
{
title: '角色',
align: "center",
width: 180,
dataIndex: 'roleTxt'
},
// { // {
// title: '生日', // title: '生日',
// align: "center", // align: "center",