|
|
@ -49,31 +49,35 @@ public class UserSearchServiceImpl implements UserSearchService { |
|
|
|
* 组装的条件在 queryParameter 中数组下标第一位,格式一定是 { fieldName: null, operator: 'and', criteria: [...] }; |
|
|
|
*/ |
|
|
|
List<Criteria> criterias = queryParameter.getCriterias().get(0).getCriteria(); |
|
|
|
for (Criteria criteria: criterias) { |
|
|
|
if (criteria.getFieldName()!=null) { |
|
|
|
Boolean isOrgCriteria = Arrays.stream(SearchConstant.ORG_CRITERIA_FIELD_NAMES).anyMatch(criteria.getFieldName()::equals); |
|
|
|
Boolean isRoleCriteria = SearchConstant.FN_ROLECRITERIA.equals(criteria.getFieldName()); |
|
|
|
if (!isOrgCriteria && !isRoleCriteria) { |
|
|
|
userCriteriaList.add(criteria); |
|
|
|
} else if (isOrgCriteria) { |
|
|
|
// 跟机构相关的查询条件处理
|
|
|
|
List<String> orgIds = orgSearchServiceImpl.findOrgIds(criteria.getFieldName(), criteria); |
|
|
|
if (orgIds != null) { |
|
|
|
// 不为 null 添加机构过滤逻辑
|
|
|
|
CriteriaHandler.criteriaListAddInSet(userCriteriaList, "orgs", orgIds); |
|
|
|
if (criterias!=null && criterias.size() > 0) { |
|
|
|
for (Criteria criteria: criterias) { |
|
|
|
if (criteria.getFieldName()!=null) { |
|
|
|
Boolean isOrgCriteria = Arrays.stream(SearchConstant.ORG_CRITERIA_FIELD_NAMES).anyMatch(criteria.getFieldName()::equals); |
|
|
|
Boolean isRoleCriteria = SearchConstant.FN_ROLECRITERIA.equals(criteria.getFieldName()); |
|
|
|
if (!isOrgCriteria && !isRoleCriteria) { |
|
|
|
userCriteriaList.add(criteria); |
|
|
|
} else if (isOrgCriteria) { |
|
|
|
// 跟机构相关的查询条件处理
|
|
|
|
List<String> orgIds = orgSearchServiceImpl.findOrgIds(criteria.getFieldName(), criteria); |
|
|
|
if (orgIds != null) { |
|
|
|
// 不为 null 添加机构过滤逻辑
|
|
|
|
CriteriaHandler.criteriaListAddInSet(userCriteriaList, "orgs", orgIds); |
|
|
|
} |
|
|
|
} else if (isRoleCriteria) { |
|
|
|
// 角色的查询条件处理
|
|
|
|
roleCriteriaHandler((Equals) criteria, userCriteriaList); |
|
|
|
} |
|
|
|
} else if (isRoleCriteria) { |
|
|
|
// 角色的查询条件处理
|
|
|
|
roleCriteriaHandler((Equals) criteria, userCriteriaList); |
|
|
|
} else { |
|
|
|
// 非特定 fieldName 添加进用户查询的 criteria 中
|
|
|
|
userCriteriaList.add(criteria); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 非特定 fieldName 添加进用户查询的 criteria 中
|
|
|
|
userCriteriaList.add(criteria); |
|
|
|
} |
|
|
|
// 界面上查询条件进行过滤的条件会增加到 queryParameter 中的 criteria 数组中,需增加到 userCriteriaList 中。
|
|
|
|
addOtherCriteria(userCriteriaList, queryParameter); |
|
|
|
return CriteriaHandler.buildQueryParameter(queryParameter, userCriteriaList); |
|
|
|
} else { |
|
|
|
return queryParameter; |
|
|
|
} |
|
|
|
// 界面上查询条件进行过滤的条件会增加到 queryParameter 中的 criteria 数组中,需增加到 userCriteriaList 中。
|
|
|
|
addOtherCriteria(userCriteriaList, queryParameter); |
|
|
|
return CriteriaHandler.buildQueryParameter(queryParameter, userCriteriaList); |
|
|
|
} else { |
|
|
|
return queryParameter; |
|
|
|
} |
|
|
|