|
|
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
+import org.dromara.common.core.utils.ObjectUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
@@ -64,23 +65,53 @@ public class ComStaffServiceImpl extends ServiceImpl<ComStaffMapper, ComStaff> i
|
|
|
Page<ComStaffVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
|
List<ComStaffVo> records = result.getRecords();
|
|
|
if (CollUtil.isNotEmpty(records)) {
|
|
|
- Set<Long> deptIds = records.stream().map(ComStaffVo::getDeptId).collect(Collectors.toSet());
|
|
|
- Map<Long, String> deptMap = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
|
|
- .select(SysDept::getDeptId, SysDept::getDeptName).in(SysDept::getDeptId, deptIds)).stream()
|
|
|
- .collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName));
|
|
|
- Set<Long> postIds = records.stream().map(ComStaffVo::getPostId).collect(Collectors.toSet());
|
|
|
- Map<Long, String> postMap = sysPostMapper.selectList(new LambdaQueryWrapper<SysPost>()
|
|
|
- .select(SysPost::getPostId, SysPost::getPostName).in(SysPost::getPostId, postIds)).stream()
|
|
|
- .collect(Collectors.toMap(SysPost::getPostId, SysPost::getPostName));
|
|
|
- Set<Long> roleIds = records.stream().map(ComStaffVo::getRoleId).filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
- Map<Long, String> roleMap = sysRoleMapper.selectList(new LambdaQueryWrapper<SysRole>().select(SysRole::getRoleId, SysRole::getRoleName).in(SysRole::getRoleId, roleIds)).stream()
|
|
|
- .collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName));
|
|
|
-
|
|
|
+ // 1. 安全提取 DeptId
|
|
|
+ Set<Long> deptIds = Optional.ofNullable(records).orElse(Collections.emptyList()).stream()
|
|
|
+ .map(ComStaffVo::getDeptId)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Map<Long, String> deptMap = !deptIds.isEmpty() ?
|
|
|
+ sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
|
|
|
+ .select(SysDept::getDeptId, SysDept::getDeptName)
|
|
|
+ .in(SysDept::getDeptId, deptIds))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(SysDept::getDeptId, SysDept::getDeptName, (v1, v2) -> v1))
|
|
|
+ : Collections.emptyMap();
|
|
|
+
|
|
|
+ // 2. 安全提取 PostId
|
|
|
+ Set<Long> postIds = Optional.ofNullable(records).orElse(Collections.emptyList()).stream()
|
|
|
+ .map(ComStaffVo::getPostId)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Map<Long, String> postMap = !postIds.isEmpty() ?
|
|
|
+ sysPostMapper.selectList(new LambdaQueryWrapper<SysPost>()
|
|
|
+ .select(SysPost::getPostId, SysPost::getPostName)
|
|
|
+ .in(SysPost::getPostId, postIds))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(SysPost::getPostId, SysPost::getPostName, (v1, v2) -> v1))
|
|
|
+ : Collections.emptyMap();
|
|
|
+
|
|
|
+ // 3. 安全提取 RoleId
|
|
|
+ Set<Long> roleIds = Optional.ofNullable(records).orElse(Collections.emptyList()).stream()
|
|
|
+ .map(ComStaffVo::getRoleId)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+
|
|
|
+ Map<Long, String> roleMap = !roleIds.isEmpty() ?
|
|
|
+ sysRoleMapper.selectList(new LambdaQueryWrapper<SysRole>()
|
|
|
+ .select(SysRole::getRoleId, SysRole::getRoleName)
|
|
|
+ .in(SysRole::getRoleId, roleIds))
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(SysRole::getRoleId, SysRole::getRoleName, (v1, v2) -> v1))
|
|
|
+ : Collections.emptyMap();
|
|
|
|
|
|
records.forEach(item -> {
|
|
|
item.setDeptName(deptMap.get(item.getDeptId()));
|
|
|
item.setPostName(postMap.get(item.getPostId()));
|
|
|
item.setRoleName(roleMap.get(item.getRoleId()));
|
|
|
+
|
|
|
});
|
|
|
}
|
|
|
return TableDataInfo.build(result);
|