|
@@ -214,47 +214,79 @@ public class PmProjectServiceImpl extends AbstractCrudService<PmProjectMapper, P
|
|
|
Integer tenantId = SecurityUtils.getTenantId();
|
|
|
|
|
|
LambdaQueryWrapper<PmProject> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
- lambdaQuery.eq(PmProject::getTenantId, SecurityUtils.getTenantId()).eq(PmProject::getDelFlag, 0)
|
|
|
+ lambdaQuery.eq(PmProject::getTenantId, tenantId)
|
|
|
+ .eq(PmProject::getDelFlag, 0)
|
|
|
.eq(visibleRange != null, PmProject::getVisibleRange, visibleRange);
|
|
|
+
|
|
|
if (projectId != null && projectId != 0) {
|
|
|
lambdaQuery.eq(PmProject::getId, projectId);
|
|
|
page = this.page(page, lambdaQuery);
|
|
|
return new CommonPage<>(page.getRecords(), page.getTotal(), pageSize, pageNum);
|
|
|
}
|
|
|
+
|
|
|
switch (projectAscription) {
|
|
|
case 0:
|
|
|
- if (visibleRange != null && visibleRange == 1) {
|
|
|
- break;
|
|
|
+ if (StringUtils.isNotBlank(projectName) || projectType != null || projectStatus != null) {
|
|
|
+ lambdaQuery.eq(PmProject::getDelFlag, 0)
|
|
|
+ .like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus)
|
|
|
+ .and(qw -> qw
|
|
|
+ .eq(PmProject::getProjectHead, userId)
|
|
|
+ .or()
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getCreateBy, username));
|
|
|
+ }
|
|
|
+ if (visibleRange == null) {
|
|
|
+ lambdaQuery.eq(PmProject::getDelFlag, 0)
|
|
|
+ .and(wrapper -> wrapper
|
|
|
+ .eq(PmProject::getVisibleRange, 2)
|
|
|
+ .and(qw -> qw
|
|
|
+ .eq(PmProject::getProjectHead, userId)
|
|
|
+ .or()
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getCreateBy, username))
|
|
|
+ )
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getVisibleRange, 1)
|
|
|
+ .eq(PmProject::getDelFlag, 0);
|
|
|
+ } else if (visibleRange == 2) {
|
|
|
+ lambdaQuery.and(wrapper -> wrapper
|
|
|
+ .eq(PmProject::getProjectHead, userId)
|
|
|
+ .or()
|
|
|
+ .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .or()
|
|
|
+ .eq(PmProject::getCreateBy, username)
|
|
|
+ );
|
|
|
}
|
|
|
- lambdaQuery.and(wrapper -> wrapper
|
|
|
- .eq(PmProject::getVisibleRange, 2)
|
|
|
- .or()
|
|
|
- .eq(PmProject::getProjectHead, userId)
|
|
|
- .or()
|
|
|
- .apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
- .or()
|
|
|
- .eq(PmProject::getCreateBy, username)
|
|
|
- )
|
|
|
- .or()
|
|
|
- .eq(PmProject::getVisibleRange, 1);
|
|
|
+ lambdaQuery.like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
break;
|
|
|
case 1:
|
|
|
- lambdaQuery.eq(PmProject::getProjectHead, userId);
|
|
|
+ lambdaQuery.eq(PmProject::getProjectHead, userId)
|
|
|
+ .like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
break;
|
|
|
case 2:
|
|
|
- lambdaQuery.apply("FIND_IN_SET('" + userId + "', project_member) > 0");
|
|
|
+ lambdaQuery.apply("FIND_IN_SET('" + userId + "', project_member) > 0")
|
|
|
+ .like(StringUtils.isNotBlank(projectName), PmProject::getProjectName, projectName)
|
|
|
+ .eq(projectType != null, PmProject::getProjectType, projectType)
|
|
|
+ .eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
break;
|
|
|
default:
|
|
|
throw new BusinessException("查询项目列表参数错误");
|
|
|
}
|
|
|
- lambdaQuery.like(projectName != null, PmProject::getProjectName, projectName);
|
|
|
- lambdaQuery.eq(projectType != null, PmProject::getProjectType, projectType);
|
|
|
- lambdaQuery.eq(projectStatus != null, PmProject::getProjectStatus, projectStatus);
|
|
|
lambdaQuery.orderByDesc(PmProject::getCreateTime);
|
|
|
List<PmProject> pmProjects = pmProjectMapper.selectList(lambdaQuery);
|
|
|
if (pmProjects.isEmpty()) {
|
|
|
return new CommonPage<>(pmProjects, 0, pageSize, pageNum);
|
|
|
}
|
|
|
+ // Set<PmProject> uniqueProjects = new HashSet<>(pmProjects);
|
|
|
+ // pmProjects = new ArrayList<>(uniqueProjects);
|
|
|
|
|
|
// 替换创建人和更新人名字(username→nickname)
|
|
|
LambdaQueryWrapper<SysUser> query = Wrappers.lambdaQuery();
|