diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java index 9082c8866e..08bfdca9e6 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java @@ -33,4 +33,9 @@ public class ClosedIssueListResultDTO implements Serializable { * 解决方案 * */ private String solution; + + /** + * 话题id + */ + private String sourceId; } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShiftProjectListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShiftProjectListResultDTO.java index 28cc52de44..651c009209 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShiftProjectListResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShiftProjectListResultDTO.java @@ -38,4 +38,24 @@ public class ShiftProjectListResultDTO implements Serializable { */ private List departmentNameList; + /** + * 来源id + */ + private String sourceId; + + /** + * 话题图片 + */ + private List topicImgs; + + /** + * 话题语音 + */ + private List topicVoices; + + /** + * 话题内容 + */ + private String topicContent; + } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java index 47367a99f9..2ac18595ea 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java @@ -33,4 +33,9 @@ public class VotingIssueListResultDTO implements Serializable { * 议题处理方式,建议,展示在列表中 * */ private String suggestion; + + /** + * 来源话题的id + */ + private String sourceId; } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index f35ca71dce..2c0cf4bb23 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -244,6 +244,7 @@ public class IssueServiceImpl extends BaseServiceImpl imp resultList = issueList.stream().flatMap(issue -> projectList.stream().filter(p -> issue.getId().equals(p.getOriginId())).map(project ->{ ShiftProjectListResultDTO shiftProject = new ShiftProjectListResultDTO(); shiftProject.setIssueId(issue.getId()); + shiftProject.setSourceId(issue.getSourceId()); shiftProject.setIssueTitle(issue.getIssueTitle()); shiftProject.setDepartmentNameList(project.getDepartmentNameList()); shiftProject.setPublicReply(project.getPublicReply()); 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 1b9dbdec01..498d2ab252 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 @@ -207,7 +207,8 @@ ID AS issueId, IFNULL(ISSUE_TITLE,'') AS issueTitle, IFNULL(SUGGESTION,'')AS suggestion, - UNIX_TIMESTAMP( created_time ) AS issuePublishTime + UNIX_TIMESTAMP( created_time ) AS issuePublishTime, + SOURCE_ID AS sourceId FROM issue WHERE @@ -226,7 +227,8 @@ ID AS issueId, IFNULL(ISSUE_TITLE,'') AS issueTitle, IFNULL(CLOSE_REASON,'') AS solution, - UNIX_TIMESTAMP( created_time ) AS issueClosedTime + UNIX_TIMESTAMP( created_time ) AS issueClosedTime, + SOURCE_ID AS sourceId FROM issue WHERE diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicDetailBatchFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicDetailBatchFormDTO.java new file mode 100644 index 0000000000..933bcc3f77 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicDetailBatchFormDTO.java @@ -0,0 +1,16 @@ +package com.epmet.resi.group.dto.topic.form; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * 话题详情批量查询 + */ +@Data +public class TopicDetailBatchFormDTO { + + private List topicIdList = new ArrayList<>(); + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java index cce7d050fb..4cb680301b 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java @@ -14,7 +14,6 @@ import java.util.List; @Data public class ResiTopicDetailResultDTO implements Serializable { private static final long serialVersionUID = 1L; - /** * 话题Id * */ @@ -61,4 +60,11 @@ public class ResiTopicDetailResultDTO implements Serializable { */ private List badgeList; + /** + * 语音 + */ + private List topicVoices; + + + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index d27d31fcc5..cd4230e98f 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -25,8 +25,8 @@ import java.util.List; * @author yinzuomei@elink-cn.com * @date 2020/6/4 13:16 */ -@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class) -// @FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class,url = "localhost:8095") +//@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class) + @FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class,url = "localhost:8095") public interface ResiGroupOpenFeignClient { @PostMapping("/resi/group/group/gov-edit-auditing-list") @@ -268,4 +268,13 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("/resi/group/topic/topiccreateduserbatch") Result> topicCreatedUserBatch(@RequestParam("topicIds")List topicIds); + + /** + * @Description 通过话题id批量查询话题详情列表 + * @return + * @author wxz + * @date 2021.05.18 16:24 + */ + @PostMapping("/resi/group/topic/get-topicdetail-byid/batch") + Result> listTopicDetailsByIds(TopicDetailBatchFormDTO input); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 89b4e749e7..5c178e9666 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -208,4 +208,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result> topicCreatedUserBatch(List topicIds) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicCreatedUserBatch", topicIds); } + + @Override + public Result> listTopicDetailsByIds(TopicDetailBatchFormDTO input) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listTopicDetailsByIds", input); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index cce7de9dc5..e0b6a01ee8 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -508,4 +508,18 @@ public class ResiTopicController { return new Result>().ok(topicService.topicCreatedUserBatch(topicIds)); } + /** + * @Description 根据话题id,批量查询话题详情 + * @return + * @author wxz + * @date 2021.05.18 15:39 + */ + @PostMapping("get-topicdetail-byid/batch") + public Result> listTopicDetailsByIds(@RequestBody TopicDetailBatchFormDTO input) { + ValidatorUtils.validateEntity(input); + List topicDetails = topicService.listTopicDetailsByIds(input.getTopicIdList()); + return new Result>().ok(topicDetails); + } + + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 869b90c772..a0e29c3131 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -405,4 +405,12 @@ public interface ResiTopicService extends BaseService { * @date 2021/5/12 9:16 上午 */ List topicCreatedUserBatch(List topicIds); + + /** + * @Description 根据话题id批量查询话题详情 + * @return + * @author wxz + * @date 2021.05.18 15:42 + */ + List listTopicDetailsByIds(List topicIdList); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 2f312ea589..cd388ff390 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -19,6 +19,7 @@ package com.epmet.modules.topic.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -2795,6 +2796,40 @@ public class ResiTopicServiceImpl extends BaseServiceImpl listTopicDetailsByIds(List topicIdList) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.in(ResiTopicEntity::getId, topicIdList); + List resiTopicEntities = baseDao.selectList(qw); + + // 最终的topic dto列表 + List topicListDTOS = new ArrayList<>(); + + resiTopicEntities.forEach(topic -> { + ResiTopicDetailResultDTO topicDTO = new ResiTopicDetailResultDTO(); + topicDTO.setTopicContent(topic.getTopicContent()); + topicDTO.setTopicId(topic.getId()); + topicDTO.setTopicStatus(topic.getStatus()); + topicDTO.setTopicImgs(getTopicAttachmentUrls(topic.getId(), "image")); + topicDTO.setTopicVoices(getTopicAttachmentUrls(topic.getId(), "voice")); + topicListDTOS.add(topicDTO); + }); + + return topicListDTOS; + } + + /** + * @Description 获取话题附件url列表 + * @return + * @author wxz + * @date 2021.05.18 17:17 + */ + private List getTopicAttachmentUrls(String topicId, String type) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(ResiTopicAttachmentEntity::getTopicId, topicId) + .eq(ResiTopicAttachmentEntity::getAttachmentType, type); + return resiTopicAttachmentDao.selectList(qw).stream().map(a -> a.getAttachmentUrl()).collect(Collectors.toList()); + } } diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java index 9082c8866e..8fe3e10d51 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.result; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Description @@ -33,4 +34,24 @@ public class ClosedIssueListResultDTO implements Serializable { * 解决方案 * */ private String solution; + + /** + * 话题图片列表 + */ + private List topicImgs; + + /** + * 话题语音列表 + */ + private List topicVoices; + + /** + * 话题id + */ + private String sourceId; + + /** + * + */ + private String topicContent; } diff --git a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java index 47367a99f9..d6ccbee1d1 100644 --- a/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java +++ b/epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java @@ -3,6 +3,7 @@ package com.epmet.dto.result; import lombok.Data; import java.io.Serializable; +import java.util.List; /** * @Description 政府端/居民段查看表决中议题列表返参 @@ -33,4 +34,24 @@ public class VotingIssueListResultDTO implements Serializable { * 议题处理方式,建议,展示在列表中 * */ private String suggestion; + + /** + * 来源话题的id + */ + private String sourceId; + + /** + * 话题图片列表 + */ + private List topicImgs; + + /** + * 话题语音 + */ + private List topicVoices; + + /** + * 话题内容 + */ + private String topicContent; } diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java index 243236c3c5..f790c9b769 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java @@ -192,7 +192,9 @@ public class IssueController { @PostMapping("votinglist") public Result> votingList(@RequestBody CommonIssueListFormDTO issueListFormDTO){ ValidatorUtils.validateEntity(issueListFormDTO); - return govIssueFeignClient.votingList(issueListFormDTO); + + List votingIssueList = issueService.listVotingIssues(issueListFormDTO); + return new Result>().ok(votingIssueList); } /** @@ -205,7 +207,8 @@ public class IssueController { @PostMapping("closedlist") Result> closedList(@RequestBody CommonIssueListFormDTO issueListFormDTO){ ValidatorUtils.validateEntity(issueListFormDTO); - return govIssueFeignClient.closedList(issueListFormDTO); + List closedList = issueService.getClosedList(issueListFormDTO); + return new Result>().ok(closedList); } /** diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java index e81a7fbda1..b8d5727b50 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java @@ -17,8 +17,8 @@ import java.util.List; * @Description Feign调用gov-issue-server模块 * @ClassName GovIssueFeignFallBack */ -//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueFeignClientFallBack.class,url = "localhost:8101") -@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueFeignClientFallBack.class) +@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueFeignClientFallBack.class,url = "localhost:8101") +//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueFeignClientFallBack.class) public interface GovIssueFeignClient { /** diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java index 32f20b43f6..7196ee7717 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java @@ -117,4 +117,14 @@ public interface IssueService { * @Date 2020/11/18 13:11 **/ PublishSuggestionResultDTO publisSuggestion(PublishSuggestionFormDTO formDTO); + + List listVotingIssues(CommonIssueListFormDTO issueListFormDTO); + + /** + * @Description 已关闭议题列表 + * @return + * @author wxz + * @date 2021.05.19 10:52 + */ + List getClosedList(CommonIssueListFormDTO issueListFormDTO); } 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 ae56650c44..d01104d40f 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 @@ -14,13 +14,20 @@ import com.epmet.dto.TopicInfoDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.feign.*; +import com.epmet.resi.group.dto.topic.form.TopicDetailBatchFormDTO; +import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO; +import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.service.IssueService; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -48,6 +55,10 @@ public class IssueServiceImpl implements IssueService { @Autowired private EpmetUserOpenFeignClient epmetUserOpenFeignClient; + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; + + private Logger logger = LoggerFactory.getLogger(IssueServiceImpl.class); /** * @param issueDetail * @Description 议题详情 @@ -340,6 +351,24 @@ public class IssueServiceImpl implements IssueService { if (null == resultList || resultList.size() == NumConstant.ZERO) { return new ArrayList<>(); } + + List topicIds = resultList.stream().map(i -> i.getSourceId()).collect(Collectors.toList()); + TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); + form.setTopicIdList(topicIds); + Result> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); + if (!topicDetailsResult.success()) { + logger.error("调用resi-group批量查询详情失败"); + } else { + List topicDetails = topicDetailsResult.getData(); + HashMap rtm = convertTopicDetailList2Map(topicDetails); + resultList.stream().forEach(vi -> { + ResiTopicDetailResultDTO rr = rtm.get(vi.getSourceId()); + vi.setTopicImgs(rr == null ? null : rr.getTopicImgs()); + vi.setTopicVoices(rr == null ? null : rr.getTopicImgs()); + vi.setTopicContent(rr.getTopicContent()); + }); + } + return resultList; } @@ -372,4 +401,71 @@ public class IssueServiceImpl implements IssueService { public List processList(IssueIdFormDTO issueId) { return govIssueFeignClient.processList(issueId).getData(); } + + @Override + public List listVotingIssues(CommonIssueListFormDTO issueListFormDTO) { + Result> votingIssueListResult = govIssueFeignClient.votingList(issueListFormDTO); + if (!votingIssueListResult.success()) { + throw new RenException(String.format("调用gov-issue查询表决中列表失败")); + } + List votingIssueList = votingIssueListResult.getData(); + if (votingIssueList != null && !CollectionUtils.isEmpty(votingIssueList)) { + List topicIds = votingIssueList.stream().map(i -> i.getSourceId()).collect(Collectors.toList()); + TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); + form.setTopicIdList(topicIds); + Result> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); + if (!topicDetailsResult.success()) { + logger.error("调用resi-group批量查询详情失败"); + } else { + List topicDetails = topicDetailsResult.getData(); + HashMap rtm = convertTopicDetailList2Map(topicDetails); + votingIssueList.stream().forEach(vi -> { + ResiTopicDetailResultDTO rr = rtm.get(vi.getSourceId()); + vi.setTopicImgs(rr == null ? null : rr.getTopicImgs()); + vi.setTopicVoices(rr == null ? null : rr.getTopicImgs()); + vi.setTopicContent(rr.getTopicContent()); + }); + } + } + return votingIssueList; + } + + /** + * @Description 将话题详情列表转化为map + * @return + * @author wxz + * @date 2021.05.18 16:36 + */ + private HashMap convertTopicDetailList2Map(List topicDetails) { + HashMap hm = new HashMap<>(); + topicDetails.stream().forEach(t -> hm.put(t.getTopicId(), t)); + return hm; + } + + @Override + public List getClosedList(CommonIssueListFormDTO issueListFormDTO) { + Result> result = govIssueFeignClient.closedList(issueListFormDTO); + List issueList = result.getData(); + + if (issueList != null && !CollectionUtils.isEmpty(issueList)) { + List topicIds = issueList.stream().map(i -> i.getSourceId()).collect(Collectors.toList()); + TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); + form.setTopicIdList(topicIds); + Result> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); + if (!topicDetailsResult.success()) { + logger.error("调用resi-group批量查询详情失败"); + } else { + List topicDetails = topicDetailsResult.getData(); + HashMap rtm = convertTopicDetailList2Map(topicDetails); + issueList.stream().forEach(vi -> { + ResiTopicDetailResultDTO rr = rtm.get(vi.getSourceId()); + vi.setTopicImgs(rr == null ? null : rr.getTopicImgs()); + vi.setTopicVoices(rr == null ? null : rr.getTopicImgs()); + vi.setTopicContent(rr.getTopicContent()); + }); + } + } + + return issueList; + } }