Browse Source

修复用户及机构选择列表设置默认值导致的报错。

main
likunming 4 weeks ago
parent
commit
ff4cf76c86
  1. 32
      io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/OrgSearchServiceImpl.java
  2. 46
      io.sc.platform.lcdp/src/main/java/io/sc/platform/lcdp/frontend/component/service/impl/UserSearchServiceImpl.java

32
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 数组 * 所以最外层无需处理直接处理最外层的 criteria 数组
*/ */
List<Criteria> criterias = queryParameter.getCriterias().get(0).getCriteria(); List<Criteria> criterias = queryParameter.getCriterias().get(0).getCriteria();
for (Criteria criteria: criterias) { if (criterias!=null && criterias.size() > 0) {
if (criteria.getFieldName()!=null) { for (Criteria criteria: criterias) {
Boolean isOrgCriteria = Arrays.stream(SearchConstant.ORG_CRITERIA_FIELD_NAMES).anyMatch(criteria.getFieldName()::equals); if (criteria.getFieldName()!=null) {
if (!isOrgCriteria) { Boolean isOrgCriteria = Arrays.stream(SearchConstant.ORG_CRITERIA_FIELD_NAMES).anyMatch(criteria.getFieldName()::equals);
orgCriteriaList.add(criteria); if (!isOrgCriteria) {
} else { orgCriteriaList.add(criteria);
// 当 criteria 中的 fieldName 为特定字段名时,进行特殊处理 } else {
List<String> orgIds = findOrgIds(criteria.getFieldName(), criteria); // 当 criteria 中的 fieldName 为特定字段名时,进行特殊处理
if (orgIds != null) { List<String> orgIds = findOrgIds(criteria.getFieldName(), criteria);
// 不为 null 添加机构过滤逻辑。 if (orgIds != null) {
CriteriaHandler.criteriaListAddInSet(orgCriteriaList, "id", orgIds); // 不为 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 { } else {
return queryParameter; return queryParameter;
} }

46
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: [...] } * 组装的条件在 queryParameter 中数组下标第一位格式一定是 { fieldName: null, operator: 'and', criteria: [...] }
*/ */
List<Criteria> criterias = queryParameter.getCriterias().get(0).getCriteria(); List<Criteria> criterias = queryParameter.getCriterias().get(0).getCriteria();
for (Criteria criteria: criterias) { if (criterias!=null && criterias.size() > 0) {
if (criteria.getFieldName()!=null) { for (Criteria criteria: criterias) {
Boolean isOrgCriteria = Arrays.stream(SearchConstant.ORG_CRITERIA_FIELD_NAMES).anyMatch(criteria.getFieldName()::equals); if (criteria.getFieldName()!=null) {
Boolean isRoleCriteria = SearchConstant.FN_ROLECRITERIA.equals(criteria.getFieldName()); Boolean isOrgCriteria = Arrays.stream(SearchConstant.ORG_CRITERIA_FIELD_NAMES).anyMatch(criteria.getFieldName()::equals);
if (!isOrgCriteria && !isRoleCriteria) { Boolean isRoleCriteria = SearchConstant.FN_ROLECRITERIA.equals(criteria.getFieldName());
userCriteriaList.add(criteria); if (!isOrgCriteria && !isRoleCriteria) {
} else if (isOrgCriteria) { userCriteriaList.add(criteria);
// 跟机构相关的查询条件处理 } else if (isOrgCriteria) {
List<String> orgIds = orgSearchServiceImpl.findOrgIds(criteria.getFieldName(), criteria); // 跟机构相关的查询条件处理
if (orgIds != null) { List<String> orgIds = orgSearchServiceImpl.findOrgIds(criteria.getFieldName(), criteria);
// 不为 null 添加机构过滤逻辑 if (orgIds != null) {
CriteriaHandler.criteriaListAddInSet(userCriteriaList, "orgs", orgIds); // 不为 null 添加机构过滤逻辑
CriteriaHandler.criteriaListAddInSet(userCriteriaList, "orgs", orgIds);
}
} else if (isRoleCriteria) {
// 角色的查询条件处理
roleCriteriaHandler((Equals) criteria, userCriteriaList);
} }
} else if (isRoleCriteria) { } else {
// 角色的查询条件处理 // 非特定 fieldName 添加进用户查询的 criteria 中
roleCriteriaHandler((Equals) criteria, userCriteriaList); 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 { } else {
return queryParameter; return queryParameter;
} }

Loading…
Cancel
Save