|
|
@ -27,10 +27,7 @@ import com.epmet.entity.IssueEntity; |
|
|
|
import com.epmet.entity.IssueProcessEntity; |
|
|
|
import com.epmet.entity.IssueProjectRelationEntity; |
|
|
|
import com.epmet.entity.IssueVoteStatisticalEntity; |
|
|
|
import com.epmet.feign.GovOrgFeignClient; |
|
|
|
import com.epmet.feign.GovProjectFeignClient; |
|
|
|
import com.epmet.feign.MessageFeignClient; |
|
|
|
import com.epmet.feign.ResiGroupFeignClient; |
|
|
|
import com.epmet.feign.*; |
|
|
|
import com.epmet.redis.GovIssueRedis; |
|
|
|
import com.epmet.resi.group.dto.topic.ResiTopicDTO; |
|
|
|
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; |
|
|
@ -83,6 +80,8 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
private IssueProjectRelationService issueProjectRelationService; |
|
|
|
@Autowired |
|
|
|
private IssueVoteStatisticalDao issueVoteStatisticalDao; |
|
|
|
@Autowired |
|
|
|
private EpmetUserFeignClient epmetUserFeignClient; |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<IssueDTO> page(Map<String, Object> params) { |
|
|
@ -605,7 +604,7 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
if (null == projectIdList || projectIdList.size() < NumConstant.ONE) { |
|
|
|
return resultList; |
|
|
|
} |
|
|
|
//1:根据已结案项目列表查询对应的议题列表
|
|
|
|
//1:根据已结案项目列表查询议题项目关系表数据
|
|
|
|
List<IssueProjectRelationEntity> listRelation = issueProjectRelationDao.selectRelationList(projectIdList); |
|
|
|
if(null==listRelation||listRelation.size()<NumConstant.ONE){ |
|
|
|
throw new RenException(IssueConstant.SELECT_ISSUEPROJECTRELATION_EXCEPTION); |
|
|
@ -613,7 +612,9 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
List<String> issueIdList = listRelation.stream().map(IssueProjectRelationEntity::getIssueId).collect(Collectors.toList()); |
|
|
|
|
|
|
|
//2:根据查询条件筛选出客户网格下已结案项目对应的议题详情列表
|
|
|
|
List<IssueEntity> entityList = baseDao.selectIssueList(issueIdList, formDTO.getLatestListForm()); |
|
|
|
LatestListFormDTO latestListForm = formDTO.getLatestListForm(); |
|
|
|
latestListForm.setPageNo((latestListForm.getPageNo()-NumConstant.ONE)*latestListForm.getPageSize()); |
|
|
|
List<IssueEntity> entityList = baseDao.selectIssueList(issueIdList, latestListForm); |
|
|
|
|
|
|
|
//3:遍历封装数据
|
|
|
|
entityList.forEach(issue->{ |
|
|
@ -648,14 +649,56 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp |
|
|
|
if (null == entityList || entityList.size() < NumConstant.ONE) { |
|
|
|
return returnList; |
|
|
|
} |
|
|
|
|
|
|
|
//2:根据议题Id查询议题投票情况
|
|
|
|
List<String> issueIdList = entityList.stream().map(IssueEntity::getId).collect(Collectors.toList()); |
|
|
|
List<IssueVoteStatisticalEntity> StatisticalList = issueVoteStatisticalDao.selectListByissueId(issueIdList); |
|
|
|
|
|
|
|
//3:调用epmet-user服务,查询议题发起人基本信息
|
|
|
|
List<String> userIdList = entityList.stream().map(IssueEntity::getCreatedBy).collect(Collectors.toList()); |
|
|
|
UserResiInfoListFormDTO userResiInfoListFormDTO = new UserResiInfoListFormDTO(); |
|
|
|
userResiInfoListFormDTO.setUserIdList(userIdList); |
|
|
|
Result<List<UserResiInfoResultDTO>> listResult = epmetUserFeignClient.getUserResiInfoList(userResiInfoListFormDTO); |
|
|
|
if (!listResult.success() || null == listResult.getData()) { |
|
|
|
throw new RenException(IssueConstant.SELECT_USERINFO_EXCEPTION); |
|
|
|
} |
|
|
|
List<UserResiInfoResultDTO> userInfoList = listResult.getData(); |
|
|
|
|
|
|
|
//4:调用resi-group服务,批量查询话题内容
|
|
|
|
List<String> topicIdList = entityList.stream().map(IssueEntity::getSourceId).collect(Collectors.toList()); |
|
|
|
Result<List<ResiTopicDTO>> resultTopicList = resiGroupFeignClient.getTopicList(topicIdList); |
|
|
|
if (!resultTopicList.success() || null == resultTopicList.getData()) { |
|
|
|
throw new RenException(IssueConstant.SELECT_RESI_GROUP_EXCEPTION); |
|
|
|
} |
|
|
|
List<ResiTopicDTO> topicList = resultTopicList.getData(); |
|
|
|
|
|
|
|
//5:遍历组装对象
|
|
|
|
entityList.forEach(issue -> { |
|
|
|
LatestIssueListResultDTO resultDTO = new LatestIssueListResultDTO(); |
|
|
|
resultDTO.setIssueId(issue.getId()); |
|
|
|
resultDTO.setIssueTitle(issue.getIssueTitle()); |
|
|
|
StatisticalList.forEach(sta -> { |
|
|
|
if (issue.getId().equals(sta.getIssueId())) { |
|
|
|
//表达态度总人数
|
|
|
|
resultDTO.setVotedCount(sta.getSupportCount() + sta.getOppositionCount()); |
|
|
|
} |
|
|
|
}); |
|
|
|
userInfoList.forEach(user -> { |
|
|
|
if (issue.getCreatedBy().equals(user.getUserId())) { |
|
|
|
//话题发起人昵称
|
|
|
|
resultDTO.setIssuePublisherName(user.getShowName()); |
|
|
|
} |
|
|
|
}); |
|
|
|
topicList.forEach(topic -> { |
|
|
|
if (issue.getSourceId().equals(topic.getId())) { |
|
|
|
//话题内容
|
|
|
|
resultDTO.setTopicContent(topic.getTopicContent()); |
|
|
|
} |
|
|
|
}); |
|
|
|
returnList.add(resultDTO); |
|
|
|
}); |
|
|
|
|
|
|
|
return null; |
|
|
|
return returnList; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|