Browse Source

Merge branch 'dev'

dev_shibei_match
wxz 4 years ago
parent
commit
bcb8b1b42a
  1. 6
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
  2. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java
  3. 20
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/ShiftProjectListResultDTO.java
  4. 5
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java
  5. 1
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  6. 6
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  7. 16
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicDetailBatchFormDTO.java
  8. 8
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java
  9. 11
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  10. 5
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  11. 14
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  12. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  13. 35
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  14. 21
      epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java
  15. 21
      epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java
  16. 7
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java
  17. 10
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/IssueService.java
  18. 96
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

6
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java

@ -37,6 +37,7 @@ import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.service.BizPointTotalDetailService;
import com.epmet.service.BizPointUserTotalDetailService;
import com.epmet.service.UserPointActionLogService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -182,6 +183,9 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
.orderByDesc("TOTAL_POINT");
List<BizPointTotalDetailEntity> totalDetailList = baseDao.selectList(wrapper);
Result<List<ResiGroupDTO>> groupList = resiGroupOpenFeignClient.getGroupListByGrid(formDTO.getGridId());
if (!groupList.success() || CollectionUtils.isEmpty(groupList.getData())) {
return Collections.emptyList();
}
list = groupList.getData().stream().map(item -> {
GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO();
dto.setGroupId(item.getId());
@ -194,10 +198,12 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
}
return dto;
}).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(totalDetailList)) {
list.forEach(item -> totalDetailList.stream().filter(detail -> item.getGroupId().equals(detail.getObjectId())).forEach(total -> {
item.setPoint(total.getTotalPoint().toString());
}));
}
list =
list.stream().sorted(Comparator.comparing(GroupPointRankingResultDTO :: getPoint, Comparator.comparingInt(Integer::parseInt)).reversed()
.thenComparing(GroupPointRankingResultDTO::getGroupName, Collator.getInstance(Locale.CHINA)))

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

20
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<String> departmentNameList;
/**
* 来源id
*/
private String sourceId;
/**
* 话题图片
*/
private List<String> topicImgs;
/**
* 话题语音
*/
private List<String> topicVoices;
/**
* 话题内容
*/
private String topicContent;
}

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

1
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<IssueDao, IssueEntity> 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());

6
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

16
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<String> topicIdList = new ArrayList<>();
}

8
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<String> badgeList;
/**
* 语音
*/
private List<String> topicVoices;
}

11
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java

@ -26,7 +26,7 @@ import java.util.List;
* @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,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<List<TopicCreatedUserBatchResultDTO>> topicCreatedUserBatch(@RequestParam("topicIds")List<String> topicIds);
/**
* @Description 通过话题id批量查询话题详情列表
* @return
* @author wxz
* @date 2021.05.18 16:24
*/
@PostMapping("/resi/group/topic/get-topicdetail-byid/batch")
Result<List<ResiTopicDetailResultDTO>> listTopicDetailsByIds(TopicDetailBatchFormDTO input);
}

5
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<List<TopicCreatedUserBatchResultDTO>> topicCreatedUserBatch(List<String> topicIds) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicCreatedUserBatch", topicIds);
}
@Override
public Result<List<ResiTopicDetailResultDTO>> listTopicDetailsByIds(TopicDetailBatchFormDTO input) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listTopicDetailsByIds", input);
}
}

14
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<List<TopicCreatedUserBatchResultDTO>>().ok(topicService.topicCreatedUserBatch(topicIds));
}
/**
* @Description 根据话题id批量查询话题详情
* @return
* @author wxz
* @date 2021.05.18 15:39
*/
@PostMapping("get-topicdetail-byid/batch")
public Result<List<ResiTopicDetailResultDTO>> listTopicDetailsByIds(@RequestBody TopicDetailBatchFormDTO input) {
ValidatorUtils.validateEntity(input);
List<ResiTopicDetailResultDTO> topicDetails = topicService.listTopicDetailsByIds(input.getTopicIdList());
return new Result<List<ResiTopicDetailResultDTO>>().ok(topicDetails);
}
}

8
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<ResiTopicEntity> {
* @date 2021/5/12 9:16 上午
*/
List<TopicCreatedUserBatchResultDTO> topicCreatedUserBatch(List<String> topicIds);
/**
* @Description 根据话题id批量查询话题详情
* @return
* @author wxz
* @date 2021.05.18 15:42
*/
List<ResiTopicDetailResultDTO> listTopicDetailsByIds(List<String> topicIdList);
}

35
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;
@ -2812,6 +2813,40 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
return result;
}
@Override
public List<ResiTopicDetailResultDTO> listTopicDetailsByIds(List<String> topicIdList) {
LambdaQueryWrapper<ResiTopicEntity> qw = new LambdaQueryWrapper<>();
qw.in(ResiTopicEntity::getId, topicIdList);
List<ResiTopicEntity> resiTopicEntities = baseDao.selectList(qw);
// 最终的topic dto列表
List<ResiTopicDetailResultDTO> 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<String> getTopicAttachmentUrls(String topicId, String type) {
LambdaQueryWrapper<ResiTopicAttachmentEntity> qw = new LambdaQueryWrapper<>();
qw.eq(ResiTopicAttachmentEntity::getTopicId, topicId)
.eq(ResiTopicAttachmentEntity::getAttachmentType, type);
return resiTopicAttachmentDao.selectList(qw).stream().map(a -> a.getAttachmentUrl()).collect(Collectors.toList());
}
}

21
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<String> topicImgs;
/**
* 话题语音列表
*/
private List<String> topicVoices;
/**
* 话题id
*/
private String sourceId;
/**
*
*/
private String topicContent;
}

21
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<String> topicImgs;
/**
* 话题语音
*/
private List<String> topicVoices;
/**
* 话题内容
*/
private String topicContent;
}

7
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<List<VotingIssueListResultDTO>> votingList(@RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return govIssueFeignClient.votingList(issueListFormDTO);
List<VotingIssueListResultDTO> votingIssueList = issueService.listVotingIssues(issueListFormDTO);
return new Result<List<VotingIssueListResultDTO>>().ok(votingIssueList);
}
/**
@ -205,7 +207,8 @@ public class IssueController {
@PostMapping("closedlist")
Result<List<ClosedIssueListResultDTO>> closedList(@RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return govIssueFeignClient.closedList(issueListFormDTO);
List<ClosedIssueListResultDTO> closedList = issueService.getClosedList(issueListFormDTO);
return new Result<List<ClosedIssueListResultDTO>>().ok(closedList);
}
/**

10
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<VotingIssueListResultDTO> listVotingIssues(CommonIssueListFormDTO issueListFormDTO);
/**
* @Description 已关闭议题列表
* @return
* @author wxz
* @date 2021.05.19 10:52
*/
List<ClosedIssueListResultDTO> getClosedList(CommonIssueListFormDTO issueListFormDTO);
}

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

Loading…
Cancel
Save