|
@@ -20,6 +20,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.UUID;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author 吴涛涛
|
|
@@ -72,7 +73,33 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
public HttpRespMsg pageList(PageUtil page, Integer companyId, Integer flag, String keyName, User user, Integer roleType) {
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
|
PageHelper.startPage(page.getPageNum(), page.getPageSize());
|
|
|
- List<UserVO> users = userMapper.selectListByCondition(roleType, companyId, flag, user, keyName);
|
|
|
+ List<UserVO> users = new ArrayList<>();
|
|
|
+ List<Integer> uIds = new ArrayList<>();
|
|
|
+ if(Constant.SYS_PARENT_ID == user.getParentId()){
|
|
|
+ users = userMapper.selectListByCondition(roleType, companyId, flag, user, keyName);
|
|
|
+ } else if (Constant.SYS_ID == user.getParentId()) {
|
|
|
+ QueryWrapper<Project> qwr = new QueryWrapper<>();
|
|
|
+ //资产方管理员,看到自己创建的项目下的所有人
|
|
|
+ qwr.select("id").eq("creator_id", user.getId());
|
|
|
+ uIds = projectMapper.selectList(qwr).stream().map(Project::getManagerId).collect(Collectors.toList());
|
|
|
+ List<Integer> projectIds = projectMapper.selectList(qwr).stream().map(Project::getId).collect(Collectors.toList());
|
|
|
+ projectIds.add(-1);
|
|
|
+ List<Integer> projectUserIds = projectUserMapper.selectList(new QueryWrapper<ProjectUser>().in("project_id", projectIds)).stream().map(ProjectUser::getUserId).collect(Collectors.toList());
|
|
|
+ uIds.addAll(projectUserIds);
|
|
|
+ List<Integer> projectApproveIds = projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>().in("project_id", projectIds)).stream().map(ProjectApprove::getApproverId).collect(Collectors.toList());
|
|
|
+ uIds.addAll(projectApproveIds);
|
|
|
+ uIds.add(-1);
|
|
|
+ users = userMapper.selectUserListByCondition(roleType, companyId, flag,keyName,uIds);
|
|
|
+ } else {
|
|
|
+ List<Integer> pIds = projectMapper.selectList(new QueryWrapper<Project>().eq("manager_id", user.getId())).stream().map(Project::getId).collect(Collectors.toList());
|
|
|
+ pIds.add(-1);
|
|
|
+ List<Integer> projectUserIds = projectUserMapper.selectList(new QueryWrapper<ProjectUser>().in("project_id", pIds)).stream().map(ProjectUser::getUserId).collect(Collectors.toList());
|
|
|
+ uIds.addAll(projectUserIds);
|
|
|
+ List<Integer> projectApproveIds = projectApproveMapper.selectList(new QueryWrapper<ProjectApprove>().in("project_id", pIds)).stream().map(ProjectApprove::getApproverId).collect(Collectors.toList());
|
|
|
+ uIds.addAll(projectApproveIds);
|
|
|
+ uIds.add(-1);
|
|
|
+ users = userMapper.selectUserListByCondition(roleType, companyId, flag,keyName,uIds);
|
|
|
+ }
|
|
|
List<Project> projects = new ArrayList<>();
|
|
|
for (UserVO userVO : users) {
|
|
|
List<Integer> set = new ArrayList<>();
|