From ff4cf76c86ae250fa34624ddec87bcde89a943a3 Mon Sep 17 00:00:00 2001 From: likunming Date: Wed, 9 Apr 2025 19:12:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E5=8F=8A?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E9=80=89=E6=8B=A9=E5=88=97=E8=A1=A8=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=BB=98=E8=AE=A4=E5=80=BC=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OrgSearchServiceImpl.java | 32 +++++++------ .../service/impl/UserSearchServiceImpl.java | 46 ++++++++++--------- 2 files changed, 43 insertions(+), 35 deletions(-) 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; }