Browse Source

群成员缓存加上手机号字段、议题相关接口(居民端、政府端)

dev
wangchao 5 years ago
parent
commit
9ed7b7c02b
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java
  2. 6
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonIssueListFormDTO.java
  3. 35
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/GovTopicIssueInfoFormDTO.java
  4. 68
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GovIssueDetailResultDTO.java
  5. 68
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GovTopicIssueInfoResultDTO.java
  6. 46
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GovTopicOfIssueInfoResultDTO.java
  7. 6
      epmet-module/gov-issue/gov-issue-server/pom.xml
  8. 32
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java
  9. 43
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java
  10. 23
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java
  11. 12
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectRelationDao.java
  12. 14
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
  13. 7
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java
  14. 9
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectRelationService.java
  15. 15
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
  16. 12
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectRelationServiceImpl.java
  17. 80
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  18. 2
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java
  19. 39
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  20. 11
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectRelationDao.xml
  21. 2
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml
  22. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java
  23. 35
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/GovTopicIssueInfoFormDTO.java
  24. 68
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovTopicIssueInfoResultDTO.java
  25. 30
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicAttachmentsResultDTO.java
  26. 1
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  27. 3
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/redis/ResiGroupMemberRedis.java
  28. 1
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  29. 12
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  30. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  31. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  32. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  33. 74
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  34. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
  35. 40
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  36. 35
      epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/CommonIssueListFormDTO.java
  37. 36
      epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java
  38. 36
      epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java
  39. 31
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java
  40. 21
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java
  41. 10
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java
  42. 2
      epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java

@ -176,7 +176,7 @@ public class RedisKeys {
/**
* @param phone 手机号
* @param smsCode 短信验证码
* @param
* @return java.lang.String
* @Author yinzuomei
* @Description 政府端登录发送验证码 epmet:app:client:phone

6
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonIssueListFormDTO.java

@ -32,10 +32,4 @@ public class CommonIssueListFormDTO implements Serializable {
* 每页多少条
* */
private Integer pageSize = 20;
/**
* 用户Id
* */
@NotBlank(message = "用户Id不能为空")
private String userId;
}

35
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/GovTopicIssueInfoFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 政府端查询议题详情调用group服务查询话题相关信息传入参数
* @ClassName GovTopicIssueInfoFormDTO
* @Auth wangc
* @Date 2020-05-14 16:43
*/
@Data
public class GovTopicIssueInfoFormDTO implements Serializable {
private static final long serialVersionUID = -6385096606331289966L;
/**
* 话题Id
* */
@NotBlank(message = "话题Id不能为空")
private String topicId;
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空")
private String gridId;
/**
* 议题发起人Id
* */
@NotBlank(message = "议题发起人Id不能为空")
private String issueCreatorId;
}

68
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GovIssueDetailResultDTO.java

@ -0,0 +1,68 @@
package com.epmet.dto.result;
import lombok.Data;
import sun.util.resources.cldr.gv.LocaleNames_gv;
import java.io.Serializable;
/**
* @Description 政府端查看议题详情返回DTO
* @ClassName GovIssueDetailResultDTO
* @Auth wangc
* @Date 2020-05-14 15:45
*/
@Data
public class GovIssueDetailResultDTO implements Serializable {
private static final long serialVersionUID = 6131514615618398747L;
/**
* 议题标题
*/
private String issueTitle;
/**
* 议题状态(voting 已转项目shift_project 已关闭closed)
*/
private String issueStatus;
/**
* 话题信息
*/
private GovTopicOfIssueInfoResultDTO topicInfo;
/**
* 议题发起人电话
* */
private String issuePublisherMobile;
/**
* 议题建议处理方式
*/
private String issueSuggestion;
/**
* 所属网格(网格所属机关单位名称-网格名称)
*/
private String belongsGridName;
/**
* 议题发起人山东路168-尹女士
*/
private String issueInitiator;
/**
* 议题来源 例如 resi_topic
* */
private String sourceType;
/**
* 当议题没有转成详情时此项为""
* */
private String projectId;
/**
* 表决截止时间
* */
private Long votingDeadline;
}

68
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GovTopicIssueInfoResultDTO.java

@ -0,0 +1,68 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 政府端查询议题详情调用group服务查询话题相关信息返回DTO
* @ClassName GovTopicIssueInfoResultDTO
* @Auth wangc
* @Date 2020-05-14 16:17
*/
@Data
public class GovTopicIssueInfoResultDTO implements Serializable {
private static final long serialVersionUID = 8096157478835080299L;
/**
* 话题id
*/
private String topicId;
/**
* 话题内容
*/
private String topicContent;
/**
* 图片列表
*/
private List<String> photoList;
/**
* 话题发表人山东路168-尹女士
*/
private String publishedUser;
/**
* 话题发表时间 (时间戳 毫秒级)
*/
private Long topicPublishTime;
/**
* 话题发表人电话
* */
private String topicPublisherMobile;
/**
* 议题来源 例如 resi_topic
* */
private String sourceType;
/**
* 议题发起人山东路168-尹女士
*/
private String issueInitiator;
/**
* 议题发起人电话
* */
private String issuePublisherMobile;
/**
* 所属网格(网格所属机关单位名称-网格名称)
*/
private String belongsGridName;
}

46
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/GovTopicOfIssueInfoResultDTO.java

@ -0,0 +1,46 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName GovTopicOfIssueInfoResultDTO
* @Auth wangc
* @Date 2020-05-14 15:57
*/
@Data
public class GovTopicOfIssueInfoResultDTO implements Serializable {
private static final long serialVersionUID = 3095929297129846601L;
/**
* 话题id
*/
private String topicId;
/**
* 话题内容
*/
private String topicContent;
/**
* 图片列表
*/
private List<String> photoList;
/**
* 话题发表人山东路168-尹女士
*/
private String publishedUser;
/**
* 话题发表时间 (时间戳 毫秒级)
*/
private Long topicPublishTime;
/**
* 话题发表人电话
* */
private String topicPublisherMobile;
}

6
epmet-module/gov-issue/gov-issue-server/pom.xml

@ -78,6 +78,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>gov-org-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

32
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java

@ -1,15 +1,14 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.CommonIssueListFormDTO;
import com.epmet.dto.form.IssueDetailFormDTO;
import com.epmet.dto.result.ClosedIssueListResultDTO;
import com.epmet.dto.result.GridVotingIssueCountResultDTO;
import com.epmet.dto.form.IssueShiftedFromTopicFormDTO;
import com.epmet.dto.result.IssueResultDTO;
import com.epmet.dto.result.VotingIssueListResultDTO;
import com.epmet.service.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -66,5 +65,30 @@ public class IssueController {
return new Result<String>().ok(issueService.issueShiftedToTopic(issueShiftedFromTopicFormDTO));
}
/**
* @Description 获取表决中议题列表
* @param issueListFormDTO
* @return Result<List<VotingIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:57
**/
@PostMapping(value = "votinglist")
public Result<List<VotingIssueListResultDTO>> votingList(@RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return new Result<List<VotingIssueListResultDTO>>().ok(issueService.votingList(issueListFormDTO));
}
/**
* @Description 获取关闭议题列表
* @param issueListFormDTO
* @return Result<List<ClosedIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:58
**/
@PostMapping(value = "closedlist")
public Result<List<ClosedIssueListResultDTO>> closedList(@RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return new Result<List<ClosedIssueListResultDTO>>().ok(issueService.closedList(issueListFormDTO));
}
}

43
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueManageController.java

@ -7,9 +7,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.result.DepartmentStaffListResultDTO;
import com.epmet.dto.result.EvaluationListResultDTO;
import com.epmet.dto.result.VotingTrendResultDTO;
import com.epmet.dto.result.*;
import com.epmet.service.IssueService;
import com.epmet.service.IssueVoteStatisticalService;
import org.springframework.beans.factory.annotation.Autowired;
@ -82,5 +80,44 @@ public class IssueManageController {
public Result<List<EvaluationListResultDTO>> evaluationList(@RequestBody EvaluationListFormDTO formDTO){
return new Result<List<EvaluationListResultDTO>>().ok(issueVoteStatisticalService.evaluationList(formDTO));
}
/**
* @Description 获取表决中议题列表
* @param issueListFormDTO
* @return Result<List<VotingIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:57
**/
@PostMapping(value = "votingissuelist")
public Result<List<VotingIssueListResultDTO>> votingList( @RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return new Result<List<VotingIssueListResultDTO>>().ok(issueService.votingList(issueListFormDTO));
}
/**
* @Description 获取关闭议题列表
* @param issueListFormDTO
* @return Result<List<ClosedIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:58
**/
@PostMapping(value = "closedlist")
public Result<List<ClosedIssueListResultDTO>> closedList( @RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return new Result<List<ClosedIssueListResultDTO>>().ok(issueService.closedList(issueListFormDTO));
}
/**
* @Description 政府端查看议题详情
* @param issueDetail
* @return Result<GovIssueDetailResultDTO>
* @author wangc
* @date 2020.05.15 00:19
**/
@PostMapping(value = "votingissuedetail")
public Result<GovIssueDetailResultDTO> votingissuedetail(@RequestBody IssueDetailFormDTO issueDetail){
ValidatorUtils.validateEntity(issueDetail);
return new Result<GovIssueDetailResultDTO>().ok(issueService.issueDetailGov(issueDetail));
}
}

23
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java

@ -19,11 +19,16 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.CommonIssueListFormDTO;
import com.epmet.dto.form.IssueDetailFormDTO;
import com.epmet.dto.result.ClosedIssueListResultDTO;
import com.epmet.dto.result.IssueResultDTO;
import com.epmet.dto.result.VotingIssueListResultDTO;
import com.epmet.entity.IssueEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 议题详情 关联话题转议题时间必须要和话题转议题时间一致关闭时间必须要和操作记录表的关闭记录时间一致转项目时间必须要和项目记录生成时间一致注意服务间调用的时间一致性每个议题最后总会被关闭
*
@ -48,4 +53,22 @@ public interface IssueDao extends BaseDao<IssueEntity> {
* @date 2020.05.13 15:46
**/
int insertOne(IssueDTO issueDTO);
/**
* @Description 查询表决中议题列表
* @param issueListFormDTO
* @return List<VotingIssueListResultDTO>
* @author wangc
* @date 2020.05.14 13:34
**/
List<VotingIssueListResultDTO> selectVotingList(CommonIssueListFormDTO issueListFormDTO);
/**
* @Description 查询已关闭议题列表
* @param issueListFormDTO
* @return List<ClosedIssueListResultDTO>
* @author wangc
* @date 2020.05.14 13:34
**/
List<ClosedIssueListResultDTO> selectClosedList(CommonIssueListFormDTO issueListFormDTO);
}

12
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueProjectRelationDao.java

@ -20,6 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.IssueProjectRelationEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 议题项目关系表
@ -29,5 +30,14 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface IssueProjectRelationDao extends BaseDao<IssueProjectRelationEntity> {
/**
* @Description 通过issueId得到项目Id
* @param issueId
* @return String
* @author wangc
* @date 2020.05.14 18:30
**/
String selectProjectIdByIssueId(@Param("issueId") String issueId);
}

14
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java

@ -5,6 +5,8 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.result.AgencyGridResultDTO;
import com.epmet.feign.fallback.ResiGroupFeignClientFallBack;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@ -25,4 +27,14 @@ public interface ResiGroupFeignClient {
**/
@PostMapping("/resi/group/topic/gettopicbyid/{topicId}")
Result<ResiTopicDTO> getTopicById(@PathVariable("topicId") String topicId);
}
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO
* @author wangc
* @date 2020.05.12 13:53
**/
@PostMapping("/resi/group/topictopicinfoforissuedetailgov")
Result<GovTopicIssueInfoResultDTO> topicInfoForIssueDetailGov(GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO);
}

7
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java

@ -6,6 +6,8 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.result.AgencyGridResultDTO;
import com.epmet.feign.ResiGroupFeignClient;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import org.springframework.stereotype.Component;
/**
@ -18,4 +20,9 @@ public class ResiGroupFeignClientFallBack implements ResiGroupFeignClient {
public Result<ResiTopicDTO> getTopicById(String topicId) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "gettopicbyid", topicId);
}
@Override
public Result<GovTopicIssueInfoResultDTO> topicInfoForIssueDetailGov(GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicInfoForIssueDetailGov", govTopicIssueInfoFormDTO);
}
}

9
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueProjectRelationService.java

@ -92,4 +92,13 @@ public interface IssueProjectRelationService extends BaseService<IssueProjectRel
* @date 2020-05-11
*/
void delete(String[] ids);
/**
* @Description 通过议题Id得到议题项目关系
* @param issueId
* @return String
* @author wangc
* @date 2020.05.14 18:26
**/
String getProjectByIssueId(String issueId);
}

15
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java

@ -5,12 +5,8 @@ import com.epmet.dto.form.CloseIssueFormDTO;
import com.epmet.dto.form.DepartmentStaffListFormDTO;
import com.epmet.dto.form.CommonIssueListFormDTO;
import com.epmet.dto.form.IssueDetailFormDTO;
import com.epmet.dto.result.DepartmentStaffListResultDTO;
import com.epmet.dto.result.GridVotingIssueCountResultDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.form.IssueShiftedFromTopicFormDTO;
import com.epmet.dto.result.ClosedIssueListResultDTO;
import com.epmet.dto.result.IssueResultDTO;
import com.epmet.dto.result.VotingIssueListResultDTO;
import com.epmet.entity.IssueEntity;
import java.util.List;
@ -77,4 +73,13 @@ public interface IssueService extends BaseService<IssueEntity> {
* @date 2020.05.14 10:33
**/
List<ClosedIssueListResultDTO> closedList(CommonIssueListFormDTO issueListForm);
/**
* @Description 政府端查看议题详情
* @param issueDetail
* @return GovIssueDetailResultDTO
* @author wangc
* @date 2020.05.14 16:08
**/
GovIssueDetailResultDTO issueDetailGov(IssueDetailFormDTO issueDetail);
}

12
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueProjectRelationServiceImpl.java

@ -101,4 +101,16 @@ public class IssueProjectRelationServiceImpl extends BaseServiceImpl<IssueProjec
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 通过议题Id得到议题项目关系
* @param issueId
* @return String
* @author wangc
* @date 2020.05.14 18:26
**/
@Override
public String getProjectByIssueId(String issueId) {
return StringUtils.isBlank(issueId) ? null : baseDao.selectProjectIdByIssueId(issueId);
}
}

80
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -21,13 +21,8 @@ import com.epmet.dto.form.CloseIssueFormDTO;
import com.epmet.dto.form.DepartmentStaffListFormDTO;
import com.epmet.dto.form.IssueDetailFormDTO;
import com.epmet.dto.form.IssueShiftedFromTopicFormDTO;
import com.epmet.dto.result.ClosedIssueListResultDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.result.AgencyGridResultDTO;
import com.epmet.dto.result.DepartmentStaffListResultDTO;
import com.epmet.dto.result.GridVotingIssueCountResultDTO;
import com.epmet.dto.result.IssueResultDTO;
import com.epmet.dto.result.VotingIssueListResultDTO;
import com.epmet.entity.IssueEntity;
import com.epmet.entity.IssueProcessEntity;
import com.epmet.feign.GovOrgFeignClient;
@ -35,7 +30,10 @@ import com.epmet.feign.MessageFeignClient;
import com.epmet.feign.ResiGroupFeignClient;
import com.epmet.redis.GovIssueRedis;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import com.epmet.service.IssueProcessService;
import com.epmet.service.IssueProjectRelationService;
import com.epmet.service.IssueService;
import com.epmet.service.IssueVoteStatisticalService;
import com.epmet.utils.ModuleConstants;
@ -74,12 +72,12 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
private MessageFeignClient messageFeignClient;
@Autowired
private GovIssueRedis govIssueRedis;
@Autowired
private IssueProcessService issueProcessService;
@Autowired
private IssueVoteStatisticalService issueVoteStatisticalService;
@Autowired
private IssueProjectRelationService issueProjectRelationService;
/**
* @Description 议题详情
@ -243,6 +241,7 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
voteStatistical.setVotableCount(issueShiftedFromTopicFormDTO.getVotableCount());
issueVoteStatisticalService.save(voteStatistical);
//4.该网格下表决中议题总数量+1
govIssueRedis.addWorkGrassrootsIssueRedDotValue(issueShiftedFromTopicFormDTO.getGridId());
return issueDTO.getId();
}
logger.warn(String.format(
@ -252,15 +251,76 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
throw new RenException(ModuleConstants.FAILURE_TO_ADD_ISSUE);
}
/**
* @Description 表决中列表
* @param issueListForm
* @return List<VotingIssueListResultDTO>
* @author wangc
* @date 2020.05.14 10:13
**/
@Override
public List<VotingIssueListResultDTO> votingList(CommonIssueListFormDTO issueListForm) {
return null;
issueListForm.setPageNo(null == issueListForm.getPageNo() ? NumConstant.ZERO :
(issueListForm.getPageNo() - NumConstant.ONE)*issueListForm.getPageSize()
);
return baseDao.selectVotingList(issueListForm);
}
/**
* @Description 已关闭列表
* @param issueListForm
* @return List<ClosedIssueListResultDTO>
* @author wangc
* @date 2020.05.14 10:33
**/
@Override
public List<ClosedIssueListResultDTO> closedList(CommonIssueListFormDTO issueListForm) {
return null;
issueListForm.setPageNo(null == issueListForm.getPageNo() ? NumConstant.ZERO :
(issueListForm.getPageNo() - NumConstant.ONE)*issueListForm.getPageSize()
);
return baseDao.selectClosedList(issueListForm);
}
/**
* @Description 政府端查看议题详情
* @param issueParam
* @return GovIssueDetailResultDTO
* @author wangc
* @date 2020.05.14 16:08
**/
@Override
public GovIssueDetailResultDTO issueDetailGov(IssueDetailFormDTO issueParam) {
//1.得到议题信息
IssueEntity issueDetail = selectById(issueParam.getIssueId());
//2.1如果此条议题来源自话题
if(StringUtils.equals(ModuleConstants.ISSUE_FROM_TOPIC,issueDetail.getSourceType())){
GovTopicIssueInfoFormDTO topicParam = new GovTopicIssueInfoFormDTO();
topicParam.setGridId(issueDetail.getGridId());
topicParam.setTopicId(issueDetail.getSourceId());
topicParam.setIssueCreatorId(issueDetail.getCreatedBy());
//2.2查询话题相关信息
Result<GovTopicIssueInfoResultDTO> topicResult =
resiGroupFeignClient.topicInfoForIssueDetailGov(topicParam);
if(topicResult.success() || null != topicResult.getData()){
GovTopicOfIssueInfoResultDTO topicInfo = ConvertUtils.sourceToTarget(topicResult.getData(),GovTopicOfIssueInfoResultDTO.class);
GovIssueDetailResultDTO issueInfo = ConvertUtils.sourceToTarget(topicResult.getData(),GovIssueDetailResultDTO.class);
issueInfo.setIssueStatus(issueDetail.getIssueStatus());
issueInfo.setIssueSuggestion(issueDetail.getSuggestion());
issueInfo.setIssueTitle(issueDetail.getIssueTitle());
issueInfo.setVotingDeadline(null == issueDetail.getVotingDeadline()
? NumConstant.ZERO_L : issueDetail.getVotingDeadline().getTime()/NumConstant.ONE_THOUSAND);
issueInfo.setTopicInfo(topicInfo);
//2.3查询项目Id
String projectId = issueProjectRelationService.getProjectByIssueId(issueParam.getIssueId());
issueInfo.setProjectId( StringUtils.isBlank(projectId) ? ModuleConstants.EMPTY_STR : projectId );
return issueInfo;
}
}
return null;
}
}

2
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java

@ -67,4 +67,6 @@ public interface ModuleConstants {
* */
String FAILURE_TO_ADD_ISSUE = "新增议题记录失败,议题来源";
String EMPTY_STR = "";
}

39
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml

@ -177,4 +177,43 @@
0
</trim>
</insert>
<!-- 查询表决中议题列表 -->
<select id="selectVotingList" parameterType="com.epmet.dto.form.CommonIssueListFormDTO" resultType="com.epmet.dto.result.VotingIssueListResultDTO">
SELECT
ID AS issueId,
IFNULL(ISSUE_TITLE,''),
IFNULL(SUGGESTION,''),
UNIX_TIMESTAMP( created_time ) AS issuePublishTime
FROM
issue
WHERE
DEL_FLAG = '0'
AND GRID_ID = #{gridId}
AND ISSUE_STATUS = 'voting'
ORDER BY
created_time DESC
LIMIT #{pageNo},
#{pageSize}
</select>
<!-- 查询已关闭议题列表 -->
<select id="selectClosedList" parameterType="com.epmet.dto.form.CommonIssueListFormDTO" resultType="com.epmet.dto.result.ClosedIssueListResultDTO">
SELECT
ID AS issueId,
IFNULL(ISSUE_TITLE,''),
IFNULL(CLOSE_REASON,'') AS solution,
UNIX_TIMESTAMP( created_time ) AS issueClosedTime
FROM
issue
WHERE
DEL_FLAG = '0'
AND GRID_ID = #{gridId}
AND ISSUE_STATUS = 'closed'
ORDER BY
created_time DESC
LIMIT #{pageNo},
#{pageSize}
</select>
</mapper>

11
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueProjectRelationDao.xml

@ -15,5 +15,16 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- 通过issueId得到项目Id -->
<select id="selectProjectIdByIssueId" resultType="string">
SELECT
PROJECT_ID
FROM
issue_project_relation
WHERE
DEL_FLAG = '0'
AND
ISSUE_ID = #{issueId}
</select>
</mapper>

2
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -312,7 +312,7 @@
IFNULL(grid.PID,'') AS agencyId,
IFNULL(grid.PIDS,'') AS orgIdPath,
IFNULL(grid.ID,'') AS orgId,
IFNULL(CONCAT( agency.ORGANIZATION_NAME, '-', grid.GRID_NAME ),'') AS ORG_NAME
IFNULL(CONCAT( agency.ORGANIZATION_NAME, '-', grid.GRID_NAME ),'') AS orgName
FROM
CUSTOMER_GRID grid
INNER JOIN CUSTOMER_AGENCY agency ON grid.PID = agency.ID

4
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/ResiGroupMemberInfoRedisDTO.java

@ -47,6 +47,10 @@ public class ResiGroupMemberInfoRedisDTO implements Serializable {
private String memberStatus;
/**
* 成员手机号
* */
private String memberMobile;
/**
* 组Id不存在redis的value中存在redis的key中
* */
private String groupId;

35
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/GovTopicIssueInfoFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 政府端查询议题详情调用group服务查询话题相关信息传入参数
* @ClassName GovTopicIssueInfoFormDTO
* @Auth wangc
* @Date 2020-05-14 16:43
*/
@Data
public class GovTopicIssueInfoFormDTO implements Serializable {
private static final long serialVersionUID = -6385096606331289966L;
/**
* 话题Id
* */
@NotBlank(message = "话题Id不能为空")
private String topicId;
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空")
private String gridId;
/**
* 议题发起人Id
* */
@NotBlank(message = "议题发起人Id不能为空")
private String issueCreatorId;
}

68
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/GovTopicIssueInfoResultDTO.java

@ -0,0 +1,68 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 政府端查询议题详情调用group服务查询话题相关信息返回DTO
* @ClassName GovTopicIssueInfoResultDTO
* @Auth wangc
* @Date 2020-05-14 16:17
*/
@Data
public class GovTopicIssueInfoResultDTO implements Serializable {
private static final long serialVersionUID = 8096157478835080299L;
/**
* 话题id
*/
private String topicId;
/**
* 话题内容
*/
private String topicContent;
/**
* 图片列表
*/
private List<String> photoList;
/**
* 话题发表人山东路168-尹女士
*/
private String publishedUser;
/**
* 话题发表时间 (时间戳 毫秒级)
*/
private Long topicPublishTime;
/**
* 话题发表人电话
* */
private String topicPublisherMobile;
/**
* 议题来源 例如 resi_topic
* */
private String sourceType;
/**
* 议题发起人山东路168-尹女士
*/
private String issueInitiator;
/**
* 议题发起人电话
* */
private String issuePublisherMobile;
/**
* 所属网格(网格所属机关单位名称-网格名称)
*/
private String belongsGridName;
}

30
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicAttachmentsResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description
* @ClassName ResiTopicAttachmentsResultDTO
* @Auth wangc
* @Date 2020-05-14 16:59
*/
@Data
public class ResiTopicAttachmentsResultDTO implements Serializable {
private static final long serialVersionUID = -3646719074798523755L;
private String topicId;
private String topicContent;
private String createdBy;
private String groupId;
private Date createdTime;
private List<String> photoList;
}

1
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -520,6 +520,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
if(userInfo.success() && null != userInfo.getData()){
memberRedis.setUserShowName(userInfo.getData().getShowName());
memberRedis.setUserHeadPhoto(userInfo.getData().getHeadPhoto());
memberRedis.setMemberMobile(userInfo.getData().getRegMobile());
}else{
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
}

3
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/redis/ResiGroupMemberRedis.java

@ -123,6 +123,7 @@ public class ResiGroupMemberRedis {
if(null != userInfo.getData()){
memberRedis.setUserShowName(userInfo.getData().getShowName());
memberRedis.setUserHeadPhoto(userInfo.getData().getHeadPhoto());
memberRedis.setMemberMobile(userInfo.getData().getRegMobile());
}
}else{
logger.warn(ModuleConstant.USER_INFO_LIST_NOT_FOUND);
@ -176,7 +177,7 @@ public class ResiGroupMemberRedis {
**/
public Set<String> getGroupMemberIds(String groupId){
Set<String> groupMemberKeys =
redisUtils.keys(RedisKeys.getResiGroupMemberInfoKey(groupId,"*"));
redisUtils.keys(ResiGroupRedisKeys.getResiGroupMemberInfoKey(groupId,"*"));
if(null != groupMemberKeys && groupMemberKeys.size() > NumConstant.ZERO){
StringBuilder keyPrefix = new StringBuilder("resi:group:member:");
keyPrefix.append(groupId);

1
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -597,6 +597,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
if(result.success() && null != result.getData()){
targetObject.setUserHeadPhoto(result.getData().getHeadPhoto());
targetObject.setUserShowName(result.getData().getShowName());
targetObject.setMemberMobile(result.getData().getRegMobile());
}
return targetObject;
}

12
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java

@ -9,6 +9,7 @@ import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.TopicInfoDTO;
import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.result.*;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -234,5 +235,16 @@ public class ResiTopicController {
return new Result();
}
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO
* @author wangc
* @date 2020.05.12 13:53
**/
@PostMapping("topicinfoforissuedetailgov")
public Result<GovTopicIssueInfoResultDTO> topicInfoForIssueDetailGov(@RequestBody GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO){
ValidatorUtils.validateEntity(govTopicIssueInfoFormDTO);
return new Result<GovTopicIssueInfoResultDTO>().ok(topicService.topicInfoForIssueDetailGov(govTopicIssueInfoFormDTO));
}
}

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java

@ -25,6 +25,7 @@ import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.TopicInfoDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicAndGroupResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicAttachmentsResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicIncludeIssueInfoResultDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
@ -138,4 +139,13 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
* @date 2020.05.13 18:52
**/
int updateOne(ResiTopicEntity topic);
/**
* @Description 查询话题和附件信息
* @param topicId
* @return ResiTopicAttachmentsResultDTO
* @author wangc
* @date 2020.05.14 17:02
**/
ResiTopicAttachmentsResultDTO selectTopicAndAttachments(@Param("topicId")String topicId);
}

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java

@ -248,4 +248,12 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
**/
void shiftIssue(ResiTopicTurnIssueFromDTO topicTurnIssueFromDTO);
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO
* @author wangc
* @date 2020.05.12 13:53
**/
GovTopicIssueInfoResultDTO topicInfoForIssueDetailGov(GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO);
}

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java

@ -32,6 +32,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.modules.constant.ResiGroupRedisKeys;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.redis.ResiGroupMemberRedis;
@ -259,7 +260,7 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
//2.读取用户缓存信息
ResiGroupMemberInfoRedisResultDTO memberRedis = resiGroupMemberRedis.getKeys(groupId);
if (null != memberRedis && null != memberRedis.getMemberKeys() && null != memberRedis.getMemberMap()) {
String keyPrefix = RedisKeys.getResiGroupMemberInfoKey(groupId, "");
String keyPrefix = ResiGroupRedisKeys.getResiGroupMemberInfoKey(groupId, "");
for (ResiCommentResultDTO comment : comments)
{
//缓存中有该用户的key
@ -304,6 +305,7 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
memberRedisDTO.setEnterGroupType(memberMySql.getEnterGroupType());
memberRedisDTO.setGroupLeaderFlag(memberMySql.getGroupLeaderFlag());
memberRedisDTO.setUserHeadPhoto(user.getHeadPhoto());
memberRedisDTO.setMemberMobile(user.getRegMobile());
memberRedisDTO.setGroupId(groupId);
resiGroupMemberRedis.set(memberRedisDTO);
}

74
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -25,11 +25,11 @@ import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CommonDataFilterResultDTO;
@ -69,6 +69,7 @@ import com.epmet.resi.group.dto.member.result.ResiGroupMemberInfoRedisResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.TopicInfoDTO;
import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@ -77,6 +78,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.management.monitor.MonitorSettingException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -790,6 +792,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
memberRedisDTO.setEnterGroupType(memberMySql.getEnterGroupType());
memberRedisDTO.setGroupLeaderFlag(memberMySql.getGroupLeaderFlag());
memberRedisDTO.setUserHeadPhoto(user.getHeadPhoto());
memberRedisDTO.setMemberMobile(user.getRegMobile());
memberRedisDTO.setGroupId(groupId);
resiGroupMemberRedis.set(memberRedisDTO);
}
@ -861,6 +864,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
memberRedisDTO.setEnterGroupType(memberMySql.getEnterGroupType());
memberRedisDTO.setGroupLeaderFlag(memberMySql.getGroupLeaderFlag());
memberRedisDTO.setUserHeadPhoto(user.getHeadPhoto());
memberRedisDTO.setMemberMobile(user.getRegMobile());
memberRedisDTO.setGroupId(groupId);
resiGroupMemberRedis.set(memberRedisDTO);
}
@ -942,7 +946,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
ResiTopicEntity entity = baseDao.selectById(topicId);
return ConvertUtils.sourceToTarget(entity, ResiTopicDTO.class);
}
}
/**
* @Description 首先需要查看当前用户是不是组长权限然后检查该话题是否符合转议题标准
@ -962,7 +966,7 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
logger.error(ModuleConstant.CURRENT_TOPIC_COULD_NOT_TURN_TO_ISSUE);
throw new RenException(ModuleConstant.CURRENT_TOPIC_COULD_NOT_TURN_TO_ISSUE);
}
//2.通过话题找组信息,得到该组组长信息与当前用户进行
//2.通过话题找组信息,得到该组组长信息与当前用户进行对比
ResiGroupMemberInfoRedisDTO member =
resiGroupMemberRedis.get(topic.getGroupId(),topicIdFormDTO.getUserId());
if(null == member || StringUtils.isBlank(member.getUserId()) ){
@ -1068,6 +1072,70 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
throw new RenException(ModuleConstant.FAILURE_TO_TURN_ISSUE);
}
/**
* @Description 政府端查看议题详情时的话题相关信息
* @param govTopicIssueInfoFormDTO
* @author wangc
* @date 2020.05.12 13:53
**/
@Override
public GovTopicIssueInfoResultDTO topicInfoForIssueDetailGov(GovTopicIssueInfoFormDTO govTopicIssueInfoFormDTO) {
//1.查询话题详情
ResiTopicAttachmentsResultDTO topic = baseDao.selectTopicAndAttachments(govTopicIssueInfoFormDTO.getTopicId());
if(null != topic) {
GovTopicIssueInfoResultDTO result = ConvertUtils.sourceToTarget(topic, GovTopicIssueInfoResultDTO.class);
//2.得到议题发起个人信息,该组组长
ResiGroupMemberInfoRedisDTO issueCreator =
resiGroupMemberRedis.get(topic.getGroupId(), govTopicIssueInfoFormDTO.getIssueCreatorId());
if (null != issueCreator) {
result.setIssueInitiator(StringUtils.isBlank(issueCreator.getUserShowName())
? ModuleConstant.EMPTY_STR : issueCreator.getUserShowName());
result.setIssuePublisherMobile(StringUtils.isBlank(issueCreator.getMemberMobile())
? ModuleConstant.EMPTY_STR : issueCreator.getMemberMobile());
} else {
result.setIssueInitiator(ModuleConstant.EMPTY_STR);
result.setIssuePublisherMobile(ModuleConstant.EMPTY_STR);
}
//3.得到话题作者个人信息
ResiGroupMemberInfoRedisDTO topicCreator =
resiGroupMemberRedis.get(topic.getGroupId(), topic.getCreatedBy());
if (null != topicCreator) {
result.setPublishedUser(StringUtils.isBlank(topicCreator.getUserShowName())
? ModuleConstant.EMPTY_STR : topicCreator.getUserShowName());
result.setTopicPublisherMobile(StringUtils.isBlank(topicCreator.getMemberMobile())
? ModuleConstant.EMPTY_STR : topicCreator.getMemberMobile());
} else {
result.setPublishedUser(ModuleConstant.EMPTY_STR);
result.setTopicPublisherMobile(ModuleConstant.EMPTY_STR);
}
//4.话题发表时间格式转换
try {
result.setTopicPublishTime(topic.getCreatedTime().getTime() / NumConstant.ONE_THOUSAND);
} catch (Exception e) {
result.setTopicPublishTime(NumConstant.ZERO_L);
logger.warn(String.format(ModuleConstant.DATE_FORMAT_PARSE_FAILURE, e.getMessage()));
}
//5.获取网格相关信息
ResiGroupInfoRedisDTO group = resiGroupRedis.get(topic.getGroupId());
if (null == group && StringUtils.isNotBlank(group.getGroupId())) {
CustomerGridFormDTO gridForm = new CustomerGridFormDTO();
gridForm.setGridId(group.getGridId());
Result<CustomerGridDTO> gridInfoResult = govOrgFeignClient.getCustomerGridByGridId(gridForm);
if (gridInfoResult.success() && null != gridInfoResult.getData() && StringUtils.isNotBlank(gridInfoResult.getData().getId())) {
result.setBelongsGridName(gridInfoResult.getData().getGridName());
}
} else {
logger.error(ModuleConstant.NO_SUCH_GROUP);
result.setBelongsGridName(ModuleConstant.EMPTY_STR);
}
result.setSourceType(ModuleConstant.ISSUE_SOURCE_TYPE);
return result;
}
return null;
}
}

5
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -294,4 +294,9 @@ public interface ModuleConstant extends Constant {
* 新增话题操作记录失败
* */
String FAILURE_TO_ADD_TOPIC_OPERATION = "新增话题操作记录失败";
/**
* 议题来源 话题
* */
String ISSUE_SOURCE_TYPE = "resi_topic";
}

40
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

@ -395,4 +395,44 @@
AND groupp.DEL_FLAG = '0'
AND topic.ID = #{topicId}
</select>
<!-- 查询话题和附件信息resultMap -->
<resultMap id="govTopicIssueInfoResultMap" type="com.epmet.resi.group.dto.topic.result.ResiTopicAttachmentsResultDTO">
<id property="topicId" column="TOPIC_ID"/>
<result property="topicContent" column="TOPIC_CONTENT"/>
<result property="createdBy" column="CREATED_BY" />
<result property="groupId" column="GROUP_ID" />
<result property="createdTime" column="CREATED_TIME" />
<collection property="photoList" ofType="java.lang.String">
<constructor>
<arg column="ATTACHMENT_URL"/>
</constructor>
</collection>
</resultMap>
<!-- 查询话题和附件信息 -->
<select id="selectTopicAndAttachments" resultMap="govTopicIssueInfoResultMap">
SELECT
topic.ID AS TOPIC_ID,
topic.TOPIC_CONTENT ,
topic.CREATED_BY ,
topic.GROUP_ID ,
topic.CREATED_TIME ,
attachment.ATTACHMENT_URL
FROM
resi_topic topic
INNER JOIN
resi_topic_attachment attachment
ON
topic.ID = attachment.TOPIC_ID
WHERE
topic.DEL_FLAG = '0'
AND
attachment.DEL_FLAG = '0'
AND
topic.ID = #{topicId}
ORDER BY
attachment.SORT ASC
</select>
</mapper>

35
epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/form/CommonIssueListFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 政府端/居民段查看表决中议题列表传参
* @ClassName CommonIssueListFormDTO
* @Auth wangc
* @Date 2020-05-14 09:51
*/
@Data
public class CommonIssueListFormDTO implements Serializable {
private static final long serialVersionUID = -436147374473316845L;
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空")
private String gridId;
/**
* 页码
* */
@Min(1)
private Integer pageNo;
/**
* 每页多少条
* */
private Integer pageSize = 20;
}

36
epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/ClosedIssueListResultDTO.java

@ -0,0 +1,36 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ClosedIssueListResultDTO
* @Auth wangc
* @Date 2020-05-14 10:13
*/
@Data
public class ClosedIssueListResultDTO implements Serializable {
private static final long serialVersionUID = -132155225850638716L;
/**
* 议题id
* */
private String issueId;
/**
* 议题标题
* */
private String issueTitle;
/**
* 议题关闭时间 时间戳
* */
private Long issueClosedTime;
/**
* 解决方案
* */
private String solution;
}

36
epmet-module/resi-hall/resi-hall-client/src/main/java/com/epmet/dto/result/VotingIssueListResultDTO.java

@ -0,0 +1,36 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 政府端/居民段查看表决中议题列表返参
* @ClassName VotingIssueListResultDTO
* @Auth wangc
* @Date 2020-05-14 10:04
*/
@Data
public class VotingIssueListResultDTO implements Serializable {
private static final long serialVersionUID = -7134055957167447949L;
/**
* 议题发布时间
* */
private Long issuePublishTime;
/**
* 议题Id
* */
private String issueId;
/**
* 议题标题
* */
private String issueTitle;
/**
* 议题处理方式建议展示在列表中
* */
private String suggestion;
}

31
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/controller/IssueController.java

@ -5,8 +5,10 @@ import com.epmet.commons.tools.annotation.RequirePermission;
import com.epmet.commons.tools.enums.RequirePermissionEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.GovIssueFeignClient;
import com.epmet.service.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -28,6 +30,9 @@ public class IssueController {
@Autowired
private IssueService issueService;
@Autowired
private GovIssueFeignClient govIssueFeignClient;
/**
* @Description 议题详情
* @param issueDetail
@ -156,5 +161,31 @@ public class IssueController {
return new Result<List<EvaluationListResultDTO>>().ok(issueService.projectEvaluationList(formDTO));
}
/**
* @Description 获取表决中议题列表
* @param issueListFormDTO
* @return Result<List<VotingIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:57
**/
@PostMapping("votinglist")
public Result<List<VotingIssueListResultDTO>> votingList(CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return govIssueFeignClient.votingList(issueListFormDTO);
}
/**
* @Description 获取关闭议题列表
* @param issueListFormDTO
* @return Result<List<ClosedIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:58
**/
@PostMapping("closedlist")
Result<List<ClosedIssueListResultDTO>> closedList(@RequestBody CommonIssueListFormDTO issueListFormDTO){
ValidatorUtils.validateEntity(issueListFormDTO);
return govIssueFeignClient.closedList(issueListFormDTO);
}
}

21
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/GovIssueFeignClient.java

@ -1,6 +1,8 @@
package com.epmet.feign;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -76,4 +78,23 @@ public interface GovIssueFeignClient {
@PostMapping("/gov/issue/issuesatisfactiondetail/evaluationlist")
Result<List<EvaluationListResultDTO>> evaluationList(@RequestBody EvaluationListFormDTO formDTO);
/**
* @Description 获取表决中议题列表
* @param issueListFormDTO
* @return Result<List<VotingIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:57
**/
@PostMapping("/gov/issue/issue/votinglist")
Result<List<VotingIssueListResultDTO>> votingList(CommonIssueListFormDTO issueListFormDTO);
/**
* @Description 获取关闭议题列表
* @param issueListFormDTO
* @return Result<List<ClosedIssueListResultDTO>>
* @author wangc
* @date 2020.05.14 13:58
**/
@PostMapping("/gov/issue/issue/closedlist")
Result<List<ClosedIssueListResultDTO>> closedList(@RequestBody CommonIssueListFormDTO issueListFormDTO);
}

10
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/feign/fallback/GovIssueFeignClientFallBack.java

@ -52,4 +52,14 @@ public class GovIssueFeignClientFallBack implements GovIssueFeignClient {
public Result<List<EvaluationListResultDTO>> evaluationList(EvaluationListFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "evaluationList", formDTO);
}
@Override
public Result<List<VotingIssueListResultDTO>> votingList(CommonIssueListFormDTO issueListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "votingList", issueListFormDTO);
}
@Override
public Result<List<ClosedIssueListResultDTO>> closedList(CommonIssueListFormDTO issueListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "closedList", issueListFormDTO);
}
}

2
epmet-module/resi-hall/resi-hall-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -103,7 +103,7 @@ public class IssueServiceImpl implements IssueService {
}
/**
* @Description 支持议题
* @Description 支持议题
* @param issueId
* @author zxc
*/

Loading…
Cancel
Save