diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/OrgSearchServiceImpl.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/OrgSearchServiceImpl.java index 9b5d9c2e..578c622d 100644 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/OrgSearchServiceImpl.java +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/OrgSearchServiceImpl.java @@ -44,24 +44,28 @@ public class OrgSearchServiceImpl implements OrgSearchService { * 所以最外层无需处理,直接处理最外层的 criteria 数组。 */ List 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); - if (!isOrgCriteria) { - orgCriteriaList.add(criteria); - } else { - // 当 criteria 中的 fieldName 为特定字段名时,进行特殊处理 - List orgIds = findOrgIds(criteria.getFieldName(), criteria); - if (orgIds != null) { - // 不为 null 添加机构过滤逻辑。 - CriteriaHandler.criteriaListAddInSet(orgCriteriaList, "id", 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); + if (!isOrgCriteria) { + orgCriteriaList.add(criteria); + } else { + // 当 criteria 中的 fieldName 为特定字段名时,进行特殊处理 + List orgIds = findOrgIds(criteria.getFieldName(), criteria); + if (orgIds != null) { + // 不为 null 添加机构过滤逻辑。 + CriteriaHandler.criteriaListAddInSet(orgCriteriaList, "id", orgIds); + } } + } else { + orgCriteriaList.add(criteria); } - } else { - orgCriteriaList.add(criteria); } + return CriteriaHandler.buildQueryParameter(queryParameter, orgCriteriaList); + } else { + return queryParameter; } - return CriteriaHandler.buildQueryParameter(queryParameter, orgCriteriaList); } else { return queryParameter; } diff --git a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/UserSearchServiceImpl.java b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/UserSearchServiceImpl.java index 01fd8c3a..0933f00d 100644 --- a/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/UserSearchServiceImpl.java +++ b/io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/UserSearchServiceImpl.java @@ -49,31 +49,35 @@ public class UserSearchServiceImpl implements UserSearchService { * 组装的条件在 queryParameter 中数组下标第一位,格式一定是 { fieldName: null, operator: 'and', criteria: [...] }; */ List 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 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 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; }