|  |  | @ -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<String> topicIds = resultList.stream().map(i -> i.getSourceId()).collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |         TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); | 
			
		
	
		
			
				
					|  |  |  |         form.setTopicIdList(topicIds); | 
			
		
	
		
			
				
					|  |  |  |         Result<List<ResiTopicDetailResultDTO>> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); | 
			
		
	
		
			
				
					|  |  |  |         if (!topicDetailsResult.success()) { | 
			
		
	
		
			
				
					|  |  |  |             logger.error("调用resi-group批量查询详情失败"); | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |             List<ResiTopicDetailResultDTO> topicDetails = topicDetailsResult.getData(); | 
			
		
	
		
			
				
					|  |  |  |             HashMap<String, ResiTopicDetailResultDTO> 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<ProcessListResultDTO> processList(IssueIdFormDTO issueId) { | 
			
		
	
		
			
				
					|  |  |  |         return govIssueFeignClient.processList(issueId).getData(); | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public List<VotingIssueListResultDTO> listVotingIssues(CommonIssueListFormDTO issueListFormDTO) { | 
			
		
	
		
			
				
					|  |  |  |         Result<List<VotingIssueListResultDTO>> votingIssueListResult = govIssueFeignClient.votingList(issueListFormDTO); | 
			
		
	
		
			
				
					|  |  |  |         if (!votingIssueListResult.success()) { | 
			
		
	
		
			
				
					|  |  |  |             throw new RenException(String.format("调用gov-issue查询表决中列表失败")); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |         List<VotingIssueListResultDTO> votingIssueList = votingIssueListResult.getData(); | 
			
		
	
		
			
				
					|  |  |  |         if (votingIssueList != null && !CollectionUtils.isEmpty(votingIssueList)) { | 
			
		
	
		
			
				
					|  |  |  |             List<String> topicIds = votingIssueList.stream().map(i -> i.getSourceId()).collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |             TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); | 
			
		
	
		
			
				
					|  |  |  |             form.setTopicIdList(topicIds); | 
			
		
	
		
			
				
					|  |  |  |             Result<List<ResiTopicDetailResultDTO>> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); | 
			
		
	
		
			
				
					|  |  |  |             if (!topicDetailsResult.success()) { | 
			
		
	
		
			
				
					|  |  |  |                 logger.error("调用resi-group批量查询详情失败"); | 
			
		
	
		
			
				
					|  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |                 List<ResiTopicDetailResultDTO> topicDetails = topicDetailsResult.getData(); | 
			
		
	
		
			
				
					|  |  |  |                 HashMap<String, ResiTopicDetailResultDTO> 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<String, ResiTopicDetailResultDTO> convertTopicDetailList2Map(List<ResiTopicDetailResultDTO> topicDetails) { | 
			
		
	
		
			
				
					|  |  |  |         HashMap<String, ResiTopicDetailResultDTO> hm = new HashMap<>(); | 
			
		
	
		
			
				
					|  |  |  |         topicDetails.stream().forEach(t -> hm.put(t.getTopicId(), t)); | 
			
		
	
		
			
				
					|  |  |  |         return hm; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     @Override | 
			
		
	
		
			
				
					|  |  |  |     public List<ClosedIssueListResultDTO> getClosedList(CommonIssueListFormDTO issueListFormDTO) { | 
			
		
	
		
			
				
					|  |  |  |         Result<List<ClosedIssueListResultDTO>> result = govIssueFeignClient.closedList(issueListFormDTO); | 
			
		
	
		
			
				
					|  |  |  |         List<ClosedIssueListResultDTO> issueList = result.getData(); | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         if (issueList != null && !CollectionUtils.isEmpty(issueList)) { | 
			
		
	
		
			
				
					|  |  |  |             List<String> topicIds = issueList.stream().map(i -> i.getSourceId()).collect(Collectors.toList()); | 
			
		
	
		
			
				
					|  |  |  |             TopicDetailBatchFormDTO form = new TopicDetailBatchFormDTO(); | 
			
		
	
		
			
				
					|  |  |  |             form.setTopicIdList(topicIds); | 
			
		
	
		
			
				
					|  |  |  |             Result<List<ResiTopicDetailResultDTO>> topicDetailsResult = resiGroupOpenFeignClient.listTopicDetailsByIds(form); | 
			
		
	
		
			
				
					|  |  |  |             if (!topicDetailsResult.success()) { | 
			
		
	
		
			
				
					|  |  |  |                 logger.error("调用resi-group批量查询详情失败"); | 
			
		
	
		
			
				
					|  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |                 List<ResiTopicDetailResultDTO> topicDetails = topicDetailsResult.getData(); | 
			
		
	
		
			
				
					|  |  |  |                 HashMap<String, ResiTopicDetailResultDTO> 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; | 
			
		
	
		
			
				
					|  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  | } | 
			
		
	
	
		
			
				
					|  |  | 
 |