From 89777815a556f1a81edb17f7ad2444f0ea2fb6fc Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Sat, 8 Oct 2022 14:16:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=AE=E4=BA=8B=E5=8E=85-=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E8=AE=AE=E9=A2=98=E5=9B=BE=E7=89=87=EF=BC=8C?= =?UTF-8?q?=E8=AE=AE=E9=A2=98=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/result/IssueProfileDTO.java | 8 ++- .../src/main/resources/mapper/IssueDao.xml | 18 ++++- .../epmet/dto/result/PendingResultDTO.java | 9 +++ .../epmet/service/impl/IssueServiceImpl.java | 70 ++++++++++++------- 4 files changed, 74 insertions(+), 31 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueProfileDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueProfileDTO.java index 1fb3b336e7..4ac0347378 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueProfileDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueProfileDTO.java @@ -2,6 +2,8 @@ package com.epmet.dto.result; import lombok.Data; +import java.util.List; + /** * @Description * @Author yzm @@ -14,6 +16,10 @@ public class IssueProfileDTO { /** * 来源类型 话题:resi_topic;直接立议题:issue; */ - private String sourceType; + private String issueSourceType; + /** + * 发布议题的图片 + */ + private List issueImgs; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml index 762876ad3e..1c220da8a2 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml @@ -820,13 +820,25 @@ AND GRID_ID = #{gridId} - SELECT i.id AS issueId, - i.SOURCE_TYPE AS sourceType, - IFNULL( i.SOURCE_ID, '' ) AS sourceId + i.SOURCE_TYPE AS issueSourceType, + IFNULL( i.SOURCE_ID, '' ) AS sourceId, + ia.url FROM issue i + left join issue_attachment ia + on(i.id=ia.BUSINESS_ID and ia.del_flag='0') WHERE i.DEL_FLAG = '0' diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendingResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendingResultDTO.java index 5d50dccb33..f4b76f8b96 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendingResultDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/PendingResultDTO.java @@ -61,4 +61,13 @@ public class PendingResultDTO implements Serializable { * 话题id */ private String topicId; + + /** + * 来源类型 话题:resi_topic;直接立议题:issue; + */ + private String issueSourceType; + /** + * 发布议题的图片 + */ + private List issueImgs; } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 89528c9f4b..0c7d9ded4c 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -2,6 +2,8 @@ package com.epmet.service.impl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.user.LoginUserUtil; @@ -28,6 +30,7 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -499,40 +502,53 @@ public class IssueServiceImpl implements IssueService { @Override public List getProcessing(ShiftProjectListFromDTO formDTO) { //1、查询由议题转的项目,且正在处理中的 - List resultList = govProjectOpenFeignClient.getPendingList(formDTO).getData(); + Result> projectRes=govProjectOpenFeignClient.getPendingList(formDTO); + if(!projectRes.success()){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getMsg()); + } + List resultList =projectRes.getData(); if (org.apache.commons.collections4.CollectionUtils.isEmpty(resultList)) { return new ArrayList<>(); } + // 话题信息 + HashMap rtm=new HashMap<>(); + // 议题信息 //2、根据议题id查询话题id List issueIds = resultList.stream().map(PendingResultDTO::getIssueId).collect(Collectors.toList()); - if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(issueIds)){ - //根据议题id查询话题id - Result> issueRes=govIssueOpenFeignClient.getIssueProfile(issueIds); - if (issueRes.success() && !CollectionUtils.isEmpty(issueRes.getData())) { - // 3、如果存在议题来源于话题 - List topicIds = issueRes.getData().stream().filter(t->t.getSourceType().equals("resi_topic")).map(IssueProfileDTO::getSourceId).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(topicIds)){ - //3.1 查询话题详情 - TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); - form.setTopicIdList(topicIds); - Result> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); - if (topicDetailsResult.success() && !CollectionUtils.isEmpty(topicDetailsResult.getData())) { - List topicDetails = topicDetailsResult.getData(); - HashMap rtm = convertTopicDetailList2MapV2(topicDetails); - resultList.forEach(vi -> { - ResiTopicDetailResultDTO rr = rtm.get(vi.getIssueId()); - vi.setTopicImgs(rr == null ? new ArrayList<>() : rr.getTopicImgs()); - vi.setTopicVoices(rr == null ? new ArrayList<>() : rr.getTopicImgs()); - vi.setTopicContent(rr == null ? "" : rr.getTopicContent()); - vi.setLongitude(rr == null ? "" : rr.getLongitude()); - vi.setLatitude(rr == null ? "" : rr.getLatitude()); - vi.setTopicId(null == rr ? "" : rr.getTopicId()); - }); - } + // 根据议题id查询话题id + Result> issueRes = govIssueOpenFeignClient.getIssueProfile(issueIds); + + if (issueRes.success() && !CollectionUtils.isEmpty(issueRes.getData())) { + // 3、如果存在议题来源于话题 + List topicIds = issueRes.getData().stream().filter(t -> t.getIssueSourceType().equals("resi_topic")).map(IssueProfileDTO::getSourceId).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(topicIds)) { + // 3.1 查询话题详情 + TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); + form.setTopicIdList(topicIds); + Result> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); + if (topicDetailsResult.success() && !CollectionUtils.isEmpty(topicDetailsResult.getData())) { + List topicDetails = topicDetailsResult.getData(); + topicDetails.stream().forEach(t -> { + if(StringUtils.isNotBlank(t.getIssueId())){ + rtm.put(t.getIssueId(), t); + } + }); } - } - + Map issueMap=issueRes.getData().stream().collect(Collectors.toMap(IssueProfileDTO::getIssueId, o -> o, (o1, o2) -> o1)); + // 赋值话题信息、议题来源、议题图片 + resultList.forEach(vi -> { + ResiTopicDetailResultDTO rr = rtm.get(vi.getIssueId()); + vi.setTopicImgs(rr == null ? new ArrayList<>() : rr.getTopicImgs()); + vi.setTopicVoices(rr == null ? new ArrayList<>() : rr.getTopicImgs()); + vi.setTopicContent(rr == null ? StrConstant.EPMETY_STR : rr.getTopicContent()); + vi.setLongitude(rr == null ? StrConstant.EPMETY_STR : rr.getLongitude()); + vi.setLatitude(rr == null ? StrConstant.EPMETY_STR : rr.getLatitude()); + vi.setTopicId(null == rr ? StrConstant.EPMETY_STR : rr.getTopicId()); + IssueProfileDTO issue = issueMap.get(vi.getIssueId()); + vi.setIssueSourceType(null != issue ? issue.getIssueSourceType() : StrConstant.EPMETY_STR); + vi.setIssueImgs(null != issue ? issue.getIssueImgs() : new ArrayList<>()); + }); } return resultList; }