【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);
//批量查询用户的所属部门
//step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && userIds.size()>0){
//step.2 通过 useids,一次性查询用户的所属部门名字
Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
//step.3 通过 useids,一次性查询用户的角色名字
Map<String,String> useRoleNames = sysUserService.getRoleNamesByUserIds(userIds);
//step.4 遍历赋值
pageList.getRecords().forEach(item->{
item.setOrgCodeTxt(useDepNames.get(item.getId()));
item.setRoleTxt(useRoleNames.get(item.getId()));
});
}
result.setSuccess(true);
result.setResult(pageList);
log.info(pageList.toString());
@@ -105,6 +105,9 @@ public class SysUser implements Serializable {
/**部门名称*/
private transient String orgCodeTxt;
/**角色名称*/
private transient String roleTxt;
/**
* 状态(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.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.system.vo.SysUserRoleNameVo;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.system.entity.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
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;
@@ -48,7 +49,14 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @param userIds
* @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,查询部门下用户信息
@@ -36,13 +36,21 @@
</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
<foreach collection="userIds" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</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,查询部门下的用户信息 -->
<select id="getUserByDepIds" resultType="com.jero.modules.system.entity.SysUser">
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);
/**
* 根据 userIds查询,查询用户所属角色的名称(多个角色名逗号隔开)
* @param
* @return
*/
public Map<String,String> getRoleNamesByUserIds(List<String> userIds);
/**
* 根据部门 Id 和 QueryWrapper 查询
*
@@ -1,14 +1,11 @@
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.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.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.system.vo.SysUserRoleNameVo;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.api.vo.Result;
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.model.SysUserSysDepartModel;
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.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;
@@ -248,10 +245,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override
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>();
list.forEach(item -> {
userDeplist.forEach(item -> {
if (res.get(item.getUserId()) == null) {
res.put(item.getUserId(), item.getDepartName());
} else {
@@ -262,6 +259,27 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
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
public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) {
LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda();
@@ -9,7 +9,7 @@ import lombok.Data;
* @Version 1.0
*/
@Data
public class SysUserDepVo {
public class SysUserDepNameVo {
private String userId;
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{
private static final long serialVersionUID = 1L;
/**部门id*/
/**角色id*/
private String roleId;
/**对应的用户id集合*/
private List<String> userIdList;
+6
View File
@@ -272,6 +272,12 @@
width: 180,
dataIndex: 'orgCodeTxt'
},
{
title: '角色',
align: "center",
width: 180,
dataIndex: 'roleTxt'
},
// {
// title: '生日',
// align: "center",