| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -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; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |