From 555039fbcfac446c2648af38a30575b86b1a68f9 Mon Sep 17 00:00:00 2001 From: Boolean Date: Fri, 23 Jun 2023 12:15:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=A2=86=E5=9F=9F=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 10 +++--- .../xboe/module/boecase/dto/CasePageVo.java | 6 ++-- .../xboe/module/boecase/dto/OrgDomainDto.java | 12 +++---- .../service/impl/CasesServiceImpl.java | 32 +++++++++++++++++++ 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index e7d7160d..6e813b6c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -1,5 +1,6 @@ package com.xboe.module.boecase.api; +import cn.hutool.core.collection.CollUtil; import com.xboe.common.PageList; import com.xboe.common.Pagination; import com.xboe.common.utils.StringUtil; @@ -105,9 +106,9 @@ public class CasesApi extends ApiBaseController { } @PostMapping("/queryListV2") - public JsonResponse> queryCaseBreV2(@Validated CasePageVo req){ + public JsonResponse> queryCaseBreV2(@Validated @RequestBody CasePageVo req){ String type = req.getType(); - PageList views = null; + PageList views; if (type.equals("recommend")) { views = casesService.queryRecommendPageCasesV2(req); } else { @@ -115,8 +116,9 @@ public class CasesApi extends ApiBaseController { } if(views!=null){ - if(views.getList()!=null && !views.getList().isEmpty()){ - for (Cases c:views.getList()) { + List cases = views.getList(); + if(CollUtil.isNotEmpty(cases)){ + for (Cases c: cases) { StringBuffer stringBuffer = new StringBuffer(); List caseId = casesMajorTypeDao.findList(FieldFilters.eq("caseId", c.getId())); if(caseId!=null && !caseId.isEmpty()){ diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java index 5e2024fe..085919c5 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/CasePageVo.java @@ -62,21 +62,21 @@ public class CasePageVo extends PageDto { public List getOrg1() { if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return orgDomainDtos.stream().map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); } return null; } public List getOrg2() { if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent2).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return orgDomainDtos.stream().flatMap(it->it.getChildren().stream()).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); } return null; } public List getOrg3() { if (CollectionUtils.isNotEmpty(this.orgDomainDtos)) { - return orgDomainDtos.stream().map(OrgDomainDto::getOrgDomainParent3).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + return orgDomainDtos.stream().flatMap(it->it.getChildren().stream().flatMap(i->i.getChildren().stream())).map(OrgDomainDto::getParent).filter(StrUtil::isNotBlank).collect(Collectors.toList()); } return null; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java index ee7f58c5..1036b47e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dto/OrgDomainDto.java @@ -2,19 +2,17 @@ package com.xboe.module.boecase.dto; import lombok.Data; +import java.util.List; + @Data public class OrgDomainDto { /** * 组织领域1级 */ - private String orgDomainParent; + private String parent; /** - * 组织领域2级 + * 组织领域子级 */ - private String orgDomainParent2; - /** - * 组织领域3级 - */ - private String orgDomainParent3; + private List children; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index b1893848..2308008e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -219,6 +219,38 @@ public class CasesServiceImpl implements ICasesService { return page; } } + List orgDomainDtos = caseVo.getOrgDomainDtos(); + IFieldFilter orgDomain = null; + if(CollUtil.isNotEmpty(orgDomainDtos)){ + for (int i = 0; i < orgDomainDtos.size(); i++) { + OrgDomainDto domainDto = orgDomainDtos.get(i); + String orgDomainParent = domainDto.getParent(); + IFieldFilter itemFilter = FieldFilters.eq("orgDomainParent",orgDomainParent); + List orgDomainParent2 = domainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent2)) { + List seconds = orgDomainParent2.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); + IFieldFilter orgDomainParentFilter = FieldFilters.in("orgDomainParent2", seconds); + itemFilter = FieldFilters.and(itemFilter, orgDomainParentFilter); + } + for (OrgDomainDto orgDomainDto : orgDomainParent2) { + List orgDomainParent3 = orgDomainDto.getChildren(); + if (CollUtil.isNotEmpty(orgDomainParent3)) { + List thirds = orgDomainParent3.stream().map(OrgDomainDto::getParent).collect(Collectors.toList()); + IFieldFilter orgDomainParent3Filter = FieldFilters.eq("orgDomainParent3", thirds); + itemFilter = FieldFilters.and(itemFilter, orgDomainParent3Filter); + } + } + + if (i==0) { + orgDomain = itemFilter; + } else { + orgDomain = FieldFilters.or(orgDomain, itemFilter); + } + } + } + if (Objects.nonNull(orgDomain)) { + filters.add(orgDomain); + } if(StringUtils.isNotBlank(caseVo.getCaseType())){ filters.add(FieldFilters.eq("caseType",caseVo.getCaseType()));