|
@@ -85,7 +85,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
save(sysWorkUser);
|
|
|
List<Long> roleIds = addDto.getRoleIds();
|
|
|
if (CollUtil.isNotEmpty(roleIds)) {
|
|
|
- List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole()
|
|
|
+ List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole().createId()
|
|
|
.setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(addDto.getSysId())).collect(Collectors.toList());
|
|
|
//保存用户角色绑定信息
|
|
|
sysUserRoleService.saveBatch(sysUserRoleList);
|
|
@@ -94,7 +94,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
List<Long> deptIds = addDto.getDeptIds();
|
|
|
if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
//关联部门
|
|
|
- List<SysUserDept> sysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept()
|
|
|
+ List<SysUserDept> sysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept().createId()
|
|
|
.setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(addDto.getSysId())).collect(Collectors.toList());
|
|
|
//保存用户部门 绑定信息
|
|
|
sysUserDeptService.saveBatch(sysUserDeptList);
|
|
@@ -220,15 +220,21 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
@ApiOperation("集合查询")
|
|
|
public R<List<SysWorkVo>> list(ListDto listDto) {
|
|
|
Long sysId = listDto.getSysId();
|
|
|
+ //部门分配为可选,先判断是否存在
|
|
|
+ List<SysUserDept> sysUserDepts = sysUserDeptService.list(Wrappers.<SysUserDept>lambdaQuery().eq(SysUserDept::getSysId, sysId).eq(SysUserDept::getWorkUserId, listDto.getId()));
|
|
|
+
|
|
|
//条件构造
|
|
|
JoinLambdaWrapper<SysWorkUser> joinLambdaWrapper = new JoinLambdaWrapper<>(SysWorkUser.class)
|
|
|
.in(SysWorkUser::getId, listDto.getId())
|
|
|
.leftJoin(SysUserRole.class, SysUserRole::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserRole::getSysId, sysId)
|
|
|
.manyToManySelect(SysWorkVo::getRoleIds, Long.class, cb -> cb.add(SysUserRole::getRoleId))
|
|
|
- .end()
|
|
|
- .leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserDept::getSysId, sysId)
|
|
|
- .manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
|
|
|
.end();
|
|
|
+ if (CollUtil.isNotEmpty(sysUserDepts)) {
|
|
|
+ joinLambdaWrapper.leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserDept::getSysId, sysId)
|
|
|
+ .manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
|
|
|
+ .end();
|
|
|
+ }
|
|
|
+
|
|
|
//查询数据
|
|
|
List<SysWorkVo> sysWorkVos = baseMapper.joinSelectList(joinLambdaWrapper, SysWorkVo.class);
|
|
|
if (sysWorkVos.size() > 0) {
|
|
@@ -244,7 +250,9 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
//查询部门信息
|
|
|
JList<List<Long>> deptIdss = new JArrayList<>(sysWorkVos).getProperty(SysWorkVo::getDeptIds);
|
|
|
List<Long> deptIds = new ArrayList<>();
|
|
|
- deptIdss.forEach(longs -> deptIds.addAll(longs));
|
|
|
+ if (CollUtil.isNotEmpty(deptIdss) && CollUtil.isNotEmpty(sysUserDepts)) {
|
|
|
+ deptIdss.forEach(longs -> deptIds.addAll(longs));
|
|
|
+ }
|
|
|
JMap<Long, SysDept> sysDeptJMap = new JHashMap<>();
|
|
|
if (deptIds.size() > 0) {
|
|
|
List<SysDept> sysDepts = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().in(SysDept::getId, deptIds));
|
|
@@ -263,13 +271,16 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
|
|
|
}
|
|
|
List<Long> workVoDeptIds = sysWorkVo.getDeptIds();
|
|
|
sysWorkVo.setDeptNames(new ArrayList<>());
|
|
|
- for (Long workVoDeptId : workVoDeptIds) {
|
|
|
- SysDept sysDept = sysDeptJMap.get(workVoDeptId);
|
|
|
- if (sysDept == null) {
|
|
|
- break;
|
|
|
+ if (CollUtil.isNotEmpty(workVoDeptIds)) {
|
|
|
+ for (Long workVoDeptId : workVoDeptIds) {
|
|
|
+ SysDept sysDept = sysDeptJMap.get(workVoDeptId);
|
|
|
+ if (sysDept == null) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ sysWorkVo.getDeptNames().add(sysDept.getName());
|
|
|
}
|
|
|
- sysWorkVo.getDeptNames().add(sysDept.getName());
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
sysWorkVos.forEach(sysWorkVo -> sysWorkVo.setPassword(null));
|