Browse Source

Merge branch 'dev_temp' of http://121.42.41.42:7070/r/epmet-cloud into dev_temp

# Conflicts:
#	epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
#	epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
dev_shibei_match
liushaowen 5 years ago
parent
commit
4375cfee2a
  1. 8
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/AppClientConstant.java
  2. 13
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java
  3. 8
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java
  4. 6
      epmet-module/gov-grid/gov-grid-server/pom.xml
  5. 7
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/constant/WorkGrassRootsFunctionConstant.java
  6. 2
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
  7. 42
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/RemindServiceImpl.java
  8. 1
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/ResiTopicServiceImpl.java
  9. 35
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java
  10. 17
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java
  11. 8
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyPubIssuesAuditingFormDTO.java
  12. 38
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyShiftIssueTopicsFormDTO.java
  13. 2
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueProjectResultDTO.java
  14. 43
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MyShiftIssueTopicsResultDTO.java
  15. 29
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  16. 13
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  17. 44
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java
  18. 24
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java
  19. 27
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
  20. 53
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  21. 7
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java
  22. 2
      epmet-module/gov-issue/gov-issue-server/src/main/resources/logback-spring.xml
  23. 47
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  24. 1
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml
  25. 8
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java
  26. 10
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectRelatedPersonnelDTO.java
  27. 20
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java
  28. 46
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesClosedResultDTO.java
  29. 48
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesShiftProjectResultDTO.java
  30. 18
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java
  31. 30
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
  32. 20
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
  33. 26
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
  34. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  35. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectRelatedPersonnelEntity.java
  36. 6
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ProjectRelatedPersonnelExcel.java
  37. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  38. 60
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  39. 14
      epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql
  40. 18
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  41. 2
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml
  42. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java
  43. 6
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java
  44. 20
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java
  45. 30
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java
  46. 14
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicIdListFormDTO.java
  47. 3
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyCreateTopicsResultDTO.java
  48. 26
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java
  49. 35
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  50. 18
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  51. 6
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
  52. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/GroupEditSubmitRecordDao.java
  53. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java
  54. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
  55. 17
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  56. 49
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  57. 32
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  58. 20
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  59. 20
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  60. 101
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  61. 12
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml
  62. 38
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  63. 13
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java
  64. 38
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftIssueTopicsFormDTO.java
  65. 8
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java
  66. 13
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java
  67. 41
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftIssueTopicsResultDTO.java
  68. 15
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java
  69. 27
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java
  70. 94
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java
  71. 18
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java
  72. 39
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java
  73. 119
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java
  74. 112
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java
  75. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserAdviceDTO.java
  76. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridAuditingBadgeCountResultDTO.java
  77. 9
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  78. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  79. 23
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java
  80. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java
  81. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserAdviceEntity.java
  82. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/excel/UserAdviceExcel.java
  83. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java
  84. 19
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java
  85. 17
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java
  86. 44
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql
  87. 15
      epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml
  88. 2
      epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml

8
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/AppClientConstant.java

@ -54,4 +54,12 @@ public interface AppClientConstant {
* app类型-工作端
*/
String APP_WORK = "work";
/**
* 来源类型-话题topic
*/
String TOPIC = "topic";
/**
* 来源类型-议题issue
*/
String ISSUE = "issue";
}

13
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/RequirePermissionEnum.java

@ -90,7 +90,8 @@ public enum RequirePermissionEnum {
/**
* 徽章
*/
WORK_GRASSROOTS_BADGE_AUDIT("work_grassroots_badge_audit","基层治理:徽章审核:徽章审核","徽章审核权限,目前这个模块的操作都用这一个权限控制,没有细分"),
WORK_GRASSROOTS_BADGE_AUDIT("work_grassroots_badge_audit","基层治理:徽章审核:徽章审核","徽章审核"),
WORK_GRASSROOTS_BADGE_AUDITING_LIST("work_grassroots_badge_auditing_list","基层治理:徽章审核:待审核列表","待审核徽章列表"),
/**
* 工作-项目跟踪
@ -146,7 +147,15 @@ public enum RequirePermissionEnum {
* 爱心互助-自定义配置
*/
MORE_HEART_CUSTOMIZED_VIEW("more_heart_customized_view","更多:爱心互助:自定义配置:查看","更多-爱心互助-自定义配置-查看"),
MORE_HEART_CUSTOMIZED_SAVE("more_heart_customized_save","更多:爱心互助:自定义配置:保存修改","更多-爱心互助-自定义配置-保存修改");
MORE_HEART_CUSTOMIZED_SAVE("more_heart_customized_save","更多:爱心互助:自定义配置:保存修改","更多-爱心互助-自定义配置-保存修改"),
/**
* 徽章管理
*/
MORE_BADGE_MANAGE_LIST("more_badge_manage_list","更多:徽章:徽章管理:列表","徽章列表"),
MORE_BADGE_MANAGE_CREATE("more_badge_manage_create","更多:徽章:徽章管理:添加","添加徽章"),
MORE_BADGE_MANAGE_EDIT("more_badge_manage_edit","更多:徽章:徽章管理:编辑","编辑徽章"),
MORE_BADGE_MANAGE_DELETE("more_badge_manage_delete","更多:徽章:徽章管理:删除","删除徽章");
private String key;
private String name;

8
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java

@ -19,6 +19,12 @@ import org.apache.commons.lang3.StringUtils;
* @since 1.0.0
*/
public class RenException extends RuntimeException {
public enum MessageMode {
//code_内部信息_外部信息
CODE_INTERNAL_EXTERNAL
}
private static final long serialVersionUID = 1L;
private int code;
/**
@ -47,7 +53,7 @@ public class RenException extends RuntimeException {
}
}
public RenException(int code, String internalMsg, String msg) {
public RenException(int code, String internalMsg, String msg, MessageMode mode) {
this(code, internalMsg);
this.msg = msg;
}

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

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

7
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/constant/WorkGrassRootsFunctionConstant.java

@ -26,5 +26,12 @@ public class WorkGrassRootsFunctionConstant {
* 议题管理
*/
public static final String WORK_GRASSROOTS_ISSUE="work_grassroots_issue";
/**
* 徽章审核
*/
public static final String WORK_GRASSROOTS_BADGE="work_grassroots_badge";
}

2
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java

@ -143,7 +143,7 @@ public interface ResiGroupFeignClient {
* @param gridIdList
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 查询网格下待审核的小组总数
* @Description 查询网格下待审核的小组总数+变更小组信息申请数
* @Date 2020/5/13 15:49
**/
@PostMapping(value = "/resi/group/group/groupprocessingcount",consumes = MediaType.APPLICATION_JSON_VALUE)

42
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/RemindServiceImpl.java

@ -1,19 +1,16 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.WorkGrassRootsFunctionConstant;
import com.epmet.controller.TestFormDTO1;
import com.epmet.controller.TestResultDTO1;
import com.epmet.dto.form.RedDotFormDTO;
import com.epmet.dto.result.CustomerGridByUserIdResultDTO;
import com.epmet.dto.result.GridAuditingBadgeCountResultDTO;
import com.epmet.dto.result.GridProcessingCountResultDTO;
import com.epmet.dto.result.RedDotResultDTO;
import com.epmet.feign.GovIssueFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.feign.ResiGroupFeignClient;
import com.epmet.feign.ResiPartymemberFeignClient;
import com.epmet.feign.*;
import com.epmet.service.RemindService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -44,6 +41,9 @@ public class RemindServiceImpl implements RemindService {
@Autowired
private GovIssueFeignClient govIssueFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Override
public RedDotResultDTO queryGridRedDot(RedDotFormDTO formDTO) {
RedDotResultDTO redDotResultDTO = new RedDotResultDTO();
@ -88,10 +88,14 @@ public class RemindServiceImpl implements RemindService {
if (this.getWorkGrassRootsIssue(gridIdList)) {
functionList.add(WorkGrassRootsFunctionConstant.WORK_GRASSROOTS_ISSUE);
}
if(this.getWorkGrassRootsBadge(gridIdList)){
functionList.add(WorkGrassRootsFunctionConstant.WORK_GRASSROOTS_BADGE);
}
return functionList;
}
//群组管理: work_grassroots_group
public Boolean getWorkGrassRootsGroup(List<String> gridIdList) {
Result<List<GridProcessingCountResultDTO>> groupProcessingCountResult = resiGroupFeignClient.queryGroupProcessingCount(gridIdList);
@ -104,8 +108,7 @@ public class RemindServiceImpl implements RemindService {
}
}
}else{
logger.error(String.format("调用%s服务,查询网格%s待审核小组数失败code%s,msg:", ServiceConstant.RESI_GROUP_SERVER, gridIdList.get(0), groupProcessingCountResult.getCode(),
groupProcessingCountResult.getMsg()));
logger.error(String.format("查询群组管理待办事项数失败,%s",groupProcessingCountResult.getMsg()));
}
return false;
}
@ -123,8 +126,7 @@ public class RemindServiceImpl implements RemindService {
}
}
} else {
logger.error(String.format("调用%s服务,查询网格%s待审核热心居民数失败code%s,msg:", ServiceConstant.RESI_PARTYMEMBER_SERVER, gridIdList.get(0), resiGroupProcessingCountResult.getCode(),
resiGroupProcessingCountResult.getMsg()));
logger.error(String.format("查询网格内待审核热心居民数失败,%s",resiGroupProcessingCountResult.getMsg()));
}
return false;
}
@ -142,8 +144,7 @@ public class RemindServiceImpl implements RemindService {
}
}
}else{
logger.error(String.format("调用%s服务,查询网格%s待审核党员数失败code%s,msg:", ServiceConstant.RESI_PARTYMEMBER_SERVER, gridIdList.get(0), partyMemberProcessingCountResult.getCode(),
partyMemberProcessingCountResult.getMsg()));
logger.error(String.format("查询网格内待审核党员总数失败,%s",partyMemberProcessingCountResult.getMsg()));
}
return false;
}
@ -161,12 +162,27 @@ public class RemindServiceImpl implements RemindService {
}
}
}else{
logger.error(String.format("调用%s服务,查询网格%s表决中议题总数失败code%s,msg:", ServiceConstant.GOV_ISSUE_SERVER, gridIdList.get(0), issueResult.getCode(),
issueResult.getMsg()));
logger.error("查询网格表决中议题总数失败,%s",issueResult.getMsg());
}
return false;
}
//徽章审核
private boolean getWorkGrassRootsBadge(List<String> gridIdList) {
Result<List<GridAuditingBadgeCountResultDTO>> badgeResult = epmetUserOpenFeignClient.queryGridAuditingBadgeCount(gridIdList);
if (badgeResult.success()) {
for (String gridId : gridIdList) {
for (GridAuditingBadgeCountResultDTO gridAuditingBadgeCountResultDTO : badgeResult.getData()) {
if (gridId.equals(gridAuditingBadgeCountResultDTO.getGridId()) && gridAuditingBadgeCountResultDTO.getCount() > 0) {
return true;
}
}
}
}else{
logger.error(String.format("查询网格待审核徽章申请失败,%s",badgeResult.getMsg()));
}
return false;
}
@Override
public TestResultDTO1 test(TestFormDTO1 testFormDTO1) {
Result<TestResultDTO1> resultDTO1Result = resiGroupFeignClient.test(testFormDTO1);

1
epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/ResiTopicServiceImpl.java

@ -79,6 +79,7 @@ public class ResiTopicServiceImpl implements ResiTopicService {
govTopic.setTopicRealseTime(top.getReleaseTime());
govTopic.setTopicFirstPhoto(top.getFirstPhoto());
govTopic.setTopicState(top.getStatus());
govTopic.setBadgeList(top.getBadgeList());
topicsResult.add(govTopic);
});
}

35
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/constant/IssueOpenConstant.java

@ -0,0 +1,35 @@
package com.epmet.constant;
/**
* 议题相关常亮其它服务可用
*
* @author yinzuomei@elink-cn.com
* @date 2020/11/11 14:10
*/
public interface IssueOpenConstant {
/**
* 议题状态-表决中
*/
String ISSUE_VOTING = "voting";
/**
* 议题状态-已转项目
*/
String ISSUE_SHIFT_PROJECT = "shift_project";
/**
* 议题状态-已关闭
*/
String ISSUE_CLOSED = "closed";
/**
* 议题解决类型-已解决
*/
String ISSUE_RESOLVED = "resolved";
/**
* 议题解决类型-未解决
*/
String ISSUE_UNRESOLVED = "unresolved";
/**
* 议题来源类型 eg:resi_topic
*/
String SOURCE_TYPE_RT="resi_topic";
}

17
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/IssueDTO.java

@ -17,9 +17,10 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -143,4 +144,18 @@ public class IssueDTO implements Serializable {
*/
private Date updatedTime;
/**
* 转项目日期 服务间调用日期一致性
*/
private Long shiftedTimeStamp;
/**
* 关闭日期
*/
private Long closedTimeStamp;
/**
* 议题转项目后-对应的项目id
*/
private String projectId;
}

8
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyPubIssuesAuditingFormDTO.java

@ -23,5 +23,13 @@ public class MyPubIssuesAuditingFormDTO implements Serializable {
@NotNull(message = "每页数量不能为空",groups = MyPubIssuesAuditing.class)
private Integer pageSize;
/**
* 拓展参数前端不传值内部传输用
*/
private String userId;
/**
* 拓展参数前端不传值内部传输用
*/
private String issueStatus;
}

38
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyShiftIssueTopicsFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2020/11/13 3:30 下午
*/
@Data
public class MyShiftIssueTopicsFormDTO implements Serializable {
private static final long serialVersionUID = -3943178729586797400L;
public interface MyShiftIssueTopics{}
/**
* 页码
*/
@NotNull(message = "页码不能为空",groups = {MyShiftIssueTopics.class})
private Integer pageNo;
/**
* 每页数量
*/
@NotNull(message = "每页数量不能为空",groups = {MyShiftIssueTopics.class})
private Integer pageSize;
@NotBlank(message = "客户ID不能为空",groups = {MyShiftIssueTopics.class})
private String customerId;
private String userId;
}

2
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueProjectResultDTO.java

@ -1,6 +1,7 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
@ -26,6 +27,7 @@ public class IssueProjectResultDTO implements Serializable {
/**
* 议题转项目时间(项目表创建时间)
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date shiftedTime;
}

43
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MyShiftIssueTopicsResultDTO.java

@ -0,0 +1,43 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2020/11/13 3:31 下午
*/
@Data
public class MyShiftIssueTopicsResultDTO implements Serializable {
private static final long serialVersionUID = -703102629653169023L;
/**
* 话题ID
*/
private String topicId;
/**
* 转议题时间
*/
private Long shiftIssueTime;
/**
* 建议
*/
private String suggestion;
/**
* 议题标题
*/
private String issueTitle;
/**
* 话题发表网格名称
*/
private String releaseGridName;
private String gridId;
}

29
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java

@ -1,14 +1,17 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.MyPartIssuesFormDTO;
import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO;
import com.epmet.dto.result.MyPubIssuesAuditingResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.feign.fallback.GovIssueOpenFeignClientFallBack;
import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO;
import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -21,7 +24,7 @@ import java.util.List;
* @date 2020/6/4 13:37
*/
@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class)
//@FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101")
// @FeignClient(name = ServiceConstant.GOV_ISSUE_SERVER, fallback = GovIssueOpenFeignClientFallBack.class,url = "localhost:8101")
public interface GovIssueOpenFeignClient {
/**
@ -43,4 +46,22 @@ public interface GovIssueOpenFeignClient {
@PostMapping("/gov/issue/issue/mypubissuesauditing")
Result<List<MyPubIssuesAuditingResultDTO>> myPubIssuesAuditing(@RequestBody MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO);
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.IssueDTO>>
* @param formDTO
* @author yinzuomei
* @description 查询我发起的议题可根据状态查询
* @Date 2020/11/11 14:13
**/
@PostMapping(value = "/gov/issue/issue/getmypubissues", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<IssueDTO>> getMyPubIssues(@RequestBody MyPubIssuesAuditingFormDTO formDTO);
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param myShiftIssueTopicsFormDTO
* @author zxc
* @date 2020/11/13 4:58 下午
*/
@PostMapping("/gov/issue/issue/shiftissuetopic")
Result<List<MyShiftIssueTopicsResultDTO>> myShiftIssueTopics(@RequestBody MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO);
}

13
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java

@ -3,11 +3,14 @@ package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.MyPartIssuesFormDTO;
import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO;
import com.epmet.dto.result.MyPubIssuesAuditingResultDTO;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO;
import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO;
import org.springframework.stereotype.Component;
import java.util.List;
@ -29,4 +32,14 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
public Result<List<MyPubIssuesAuditingResultDTO>> myPubIssuesAuditing(MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"myPubIssuesAuditing",myPubIssuesAuditingFormDTO);
}
@Override
public Result<List<IssueDTO>> getMyPubIssues(MyPubIssuesAuditingFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"getMyPubIssues",formDTO);
}
@Override
public Result<List<MyShiftIssueTopicsResultDTO>> myShiftIssueTopics(MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER,"myShiftIssueTopics",myShiftIssueTopicsFormDTO);
}
}

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

@ -1,29 +1,19 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.excel.IssueExcel;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import com.epmet.service.IssueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* @Description 居民端党群议事
@ -165,5 +155,29 @@ public class IssueController {
}
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.IssueDTO>>
* @param formDTO
* @author yinzuomei
* @description 查询我发起的议题可根据状态查询
* @Date 2020/11/11 14:49
**/
@PostMapping("getmypubissues")
public Result<List<IssueDTO>> getMyPubIssues(@RequestBody MyPubIssuesAuditingFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO);
return new Result<List<IssueDTO>>().ok(issueService.getMyPubIssues(formDTO));
}
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param myShiftIssueTopicsFormDTO
* @author zxc
* @date 2020/11/13 4:58 下午
*/
@PostMapping("shiftissuetopic")
public Result<List<MyShiftIssueTopicsResultDTO>> myShiftIssueTopics(@RequestBody MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO){
ValidatorUtils.validateEntity(myShiftIssueTopicsFormDTO, MyShiftIssueTopicsFormDTO.MyShiftIssueTopics.class);
return new Result<List<MyShiftIssueTopicsResultDTO>>().ok(issueService.myShiftIssueTopics(myShiftIssueTopicsFormDTO));
}
}

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

@ -152,4 +152,28 @@ public interface IssueDao extends BaseDao<IssueEntity> {
* @date 2020/11/11 9:24 上午
*/
List<MyPubIssuesAuditingResultDTO> myPubIssuesAuditing(@Param("userId")String userId);
/**
* @return java.util.List<com.epmet.dto.IssueDTO>
* @param pageNo
* @param pageSize
* @param userId 当前用户
* @param issueStatus 议题状态 表决中voting 已转项目shift_project 已关闭closed
* @author yinzuomei
* @description 查询我发起的议题可根据状态查询
* @Date 2020/11/11 15:11
**/
List<IssueDTO> selectMyPubIssues(@Param("pageNo") Integer pageNo,
@Param("pageSize") Integer pageSize,
@Param("userId") String userId,
@Param("issueStatus") String issueStatus);
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param tokenDto
* @Param myShiftIssueTopicsResultDTO
* @author zxc
* @date 2020/11/13 3:42 下午
*/
List<MyShiftIssueTopicsResultDTO> myShiftIssueTopics(@Param("topicIds") List<String> topicIds,@Param("customerId") String customerId);
}

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

@ -3,14 +3,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.form.CloseIssueFormDTO;
import com.epmet.dto.form.DepartmentStaffListFormDTO;
import com.epmet.dto.form.IssueDetailFormDTO;
import com.epmet.dto.form.IssueIdFormDTO;
import com.epmet.dto.result.DepartmentStaffListResultDTO;
import com.epmet.dto.result.GridIdResultDTO;
import com.epmet.dto.result.GridVotingIssueCountResultDTO;
import com.epmet.dto.result.IssueResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.form.CommonIssueListFormDTO;
@ -234,4 +226,23 @@ public interface IssueService extends BaseService<IssueEntity> {
* @date 2020/11/11 9:24 上午
*/
List<MyPubIssuesAuditingResultDTO> myPubIssuesAuditing(MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO);
/**
* @return java.util.List<com.epmet.dto.IssueDTO>
* @param formDTO
* @author yinzuomei
* @description 查询我发起的议题可根据状态查询
* @Date 2020/11/11 14:57
**/
List<IssueDTO> getMyPubIssues(MyPubIssuesAuditingFormDTO formDTO);
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param tokenDto
* @Param myShiftIssueTopicsResultDTO
* @author zxc
* @date 2020/11/13 3:42 下午
*/
List<MyShiftIssueTopicsResultDTO> myShiftIssueTopics(MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO);
}

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

@ -39,6 +39,7 @@ import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
@ -864,11 +865,11 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
PageInfo<MyPubIssuesAuditingResultDTO> result = PageHelper.startPage(form.getPageNo(),form.getPageSize()).doSelectPageInfo(() -> baseDao.myPubIssuesAuditing(form.getUserId()));
if (!CollectionUtils.isEmpty(result.getList())){
list = result.getList();
Result<List<OrgInfoResultDTO>> gridNameList = govOrgOpenFeignClient.selectOrgInfo(new OrgInfoFormDTO(OrgInfoConstant.GRID, list.stream().map(m -> m.getGridId()).collect(Collectors.toList())));
Result<List<AllGridsByUserIdResultDTO>> gridNameList = govOrgOpenFeignClient.getGridListByGridIds(list.stream().map(m -> m.getGridId()).collect(Collectors.toList()));
if (!gridNameList.success()){
throw new RenException("查询议题来源网格名称失败......");
}
list.forEach(l -> gridNameList.getData().stream().filter(o -> l.getGridId().equals(o.getOrgId())).forEach(o -> l.setTopicReleaseGridName(o.getOrgName())));
list.forEach(l -> gridNameList.getData().stream().filter(o -> l.getGridId().equals(o.getGridId())).forEach(o -> l.setTopicReleaseGridName(o.getGridName())));
Result<List<GroupInfoResultDTO>> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(list.stream().map(m -> m.getTopicId()).collect(Collectors.toList())));
if (!groupNameList.success()){
throw new RenException("查询议题来源小组名称失败......");
@ -878,4 +879,52 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
return list;
}
/**
* @param formDTO
* @return java.util.List<com.epmet.dto.IssueDTO>
* @author yinzuomei
* @description 查询我发起的议题可根据状态查询
* @Date 2020/11/11 14:57
**/
@Override
public List<IssueDTO> getMyPubIssues(MyPubIssuesAuditingFormDTO formDTO) {
formDTO.setPageNo(null == formDTO.getPageNo() ? NumConstant.ZERO :
(formDTO.getPageNo() - NumConstant.ONE)*formDTO.getPageSize()
);
return baseDao.selectMyPubIssues(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getUserId(),formDTO.getIssueStatus());
}
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param tokenDto
* @Param myShiftIssueTopicsResultDTO
* @author zxc
* @date 2020/11/13 3:42 下午
*/
@Override
public List<MyShiftIssueTopicsResultDTO> myShiftIssueTopics(MyShiftIssueTopicsFormDTO form) {
TopicIdListFormDTO formDTO = new TopicIdListFormDTO();
formDTO.setUserId(form.getUserId());
Result<List<String>> listResult = resiGroupOpenFeignClient.selectMyCreateTopic(formDTO);
if (!listResult.success()){
throw new RenException("查询我创建的话题失败......");
}
if(CollectionUtils.isEmpty(listResult.getData())){
logger.debug("查询我创建的话题集合为空");
return new ArrayList<>();
}
List<String> topicIds = listResult.getData();
PageInfo<MyShiftIssueTopicsResultDTO> resultPage = PageHelper.startPage(form.getPageNo(), form.getPageSize()).doSelectPageInfo(() -> baseDao.myShiftIssueTopics(topicIds, form.getCustomerId()));
if (CollectionUtils.isEmpty(resultPage.getList())){
return new ArrayList<>();
}
List<MyShiftIssueTopicsResultDTO> result = resultPage.getList();
Result<List<AllGridsByUserIdResultDTO>> gridListByGridIds = govOrgOpenFeignClient.getGridListByGridIds(result.stream().map(m -> m.getGridId()).collect(Collectors.toList()));
if (!gridListByGridIds.success()){
throw new RenException("查询话题所属网格名称失败......");
}
result.forEach(r -> gridListByGridIds.getData().stream().filter(f -> r.getGridId().equals(f.getGridId())).forEach(f -> r.setReleaseGridName(f.getGridName())));
return result;
}
}

7
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java

@ -549,14 +549,11 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
return new ArrayList<>();
}
List<String> orgIds = myPartIssuesResult.stream().map(m -> m.getGridId()).collect(Collectors.toList());
OrgInfoFormDTO form = new OrgInfoFormDTO();
form.setOrgIds(orgIds);
form.setOrgType(IssueConstant.GRID);
Result<List<OrgInfoResultDTO>> listResult = govOrgOpenFeignClient.selectOrgInfo(form);
Result<List<AllGridsByUserIdResultDTO>> listResult = govOrgOpenFeignClient.getGridListByGridIds(orgIds);
if (!listResult.success()){
throw new RenException("查询议题来源网格名称失败......");
}
myPartIssuesResult.forEach(m -> listResult.getData().stream().filter(l -> m.getGridId().equals(l.getOrgId())).forEach(l -> m.setTopicReleaseGridName(l.getOrgName())));
myPartIssuesResult.forEach(m -> listResult.getData().stream().filter(l -> m.getGridId().equals(l.getGridId())).forEach(l -> m.setTopicReleaseGridName(l.getGridName())));
return myPartIssuesResult;
}

2
epmet-module/gov-issue/gov-issue-server/src/main/resources/logback-spring.xml

@ -134,7 +134,7 @@
</appender>
<!-- 开发、测试环境 -->
<springProfile name="dev,test">
<springProfile name="dev,test,local">
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springboot.sample" level="INFO"/>
<logger name="com.epmet.dao" level="INFO"/>

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

@ -391,6 +391,53 @@
WHERE i.DEL_FLAG = '0'
AND i.ISSUE_STATUS = 'voting'
AND i.CREATED_BY = #{userId}
ORDER BY i.CREATED_TIME DESC
</select>
<!-- 查询我发起的议题(可根据状态查询)-->
<select id="selectMyPubIssues" parameterType="map" resultType="com.epmet.dto.IssueDTO">
SELECT
i.*,
UNIX_TIMESTAMP(i.CLOSED_TIME) AS closedTimeStamp,
UNIX_TIMESTAMP(i.SHIFTED_TIME) AS shiftedTimeStamp,
m.PROJECT_ID
FROM
issue i
left join issue_project_relation m
on(i.id=m.ISSUE_ID and m.del_flag='0')
WHERE
i.DEL_FLAG = '0'
AND i.CREATED_BY = #{userId}
<if test ='null != issueStatus and "" != issueStatus'>
and i.ISSUE_STATUS=#{issueStatus}
</if>
<if test="issueStatus == 'shift_project'">
ORDER BY
m.CREATED_TIME DESC
</if>
<if test="issueStatus == 'closed'">
ORDER BY
i.CLOSED_TIME DESC
</if>
LIMIT #{pageNo}, #{pageSize}
</select>
<!-- 个人中心-我发表的话题列表-已转议题列表 -->
<select id="myShiftIssueTopics" resultType="com.epmet.dto.result.MyShiftIssueTopicsResultDTO">
SELECT
SOURCE_ID AS topicId,
UNIX_TIMESTAMP(CREATED_TIME) AS shiftIssueTime,
SUGGESTION,
ISSUE_TITLE,
GRID_ID
FROM issue
WHERE DEL_FLAG = '0'
AND ISSUE_STATUS != 'shift_project'
AND CUSTOMER_ID = #{customerId}
AND
<foreach collection="topicIds" item="topicId" separator=" OR ">
SOURCE_ID = #{topicId}
</foreach>
ORDER BY CREATED_TIME DESC
</select>
</mapper>

1
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml

@ -85,5 +85,6 @@
WHERE i.DEL_FLAG = '0'
AND vd.DEL_FLAG = '0'
AND vd.CREATED_BY = #{userId}
ORDER BY i.CREATED_TIME DESC
</select>
</mapper>

8
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectDTO.java

@ -17,9 +17,11 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import java.util.List;
/**
@ -113,4 +115,8 @@ public class ProjectDTO implements Serializable {
*/
private Date updatedTime;
/**
* 当前处理部门名称列表
*/
private List<String> currentDepartmentNameList;
}

10
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/ProjectRelatedPersonnelDTO.java

@ -58,6 +58,16 @@ public class ProjectRelatedPersonnelDTO implements Serializable {
*/
private String userId;
/**
* 来源类型(话题:topic 议题:issue)
*/
private String sourceType;
/**
* 来源Id(话题或议题Id)
*/
private String sourceId;
/**
* 删除标识
*/

20
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ProjectByCreateTopicUserFormDTO {
public interface ListByUserGroup {}
@NotBlank(message = "客户ID不能为空", groups = { ListByUserGroup.class })
private String customerId;
@NotBlank(message = "用户ID不能为空", groups = { ListByUserGroup.class })
private String userId;
private Integer pageNo = 1;
private Integer pageSize = 10;
}

46
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesClosedResultDTO.java

@ -0,0 +1,46 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 个人中心-我发起的议题列表-已关闭返参DTO
*
* @author yinzuomei@elink-cn.com
* @date 2020/11/11 13:39
*/
@Data
public class MyPubIssuesClosedResultDTO implements Serializable {
private static final long serialVersionUID = -265465326846671555L;
/**
* 议题id
*/
private String issueId;
/**
* 议题标题
*/
private String issueTitle;
/**
* 建议
*/
private String suggestion;
/**
* 议题关闭时间时间戳
*/
private Long closedTime;
/**
* 话题发表于哪个组
*/
private String topicReleaseGroupName;
/**
* 话题发表于哪个网格
*/
private String topicReleaseGridName;
}

48
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPubIssuesShiftProjectResultDTO.java

@ -0,0 +1,48 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 个人中心-我发起的议题列表-已转项目 返参DTO
*
* @author yinzuomei@elink-cn.com
* @date 2020/11/11 12:18
*/
@Data
public class MyPubIssuesShiftProjectResultDTO implements Serializable {
private static final long serialVersionUID = -7183751225506622772L;
/**
* 项目id
*/
private String projectId;
/**
* 话题发表网格id
*/
private String topicReleaseGridName;
/**
* 当前处理部门名称列表
*/
private List<String> departmentNameList;
/**
* 项目标题
*/
private String projectTitle;
/**
* 转项目时间时间戳
*/
private Long shiftProjectTime;
/**
* 话题发表于哪个组
*/
private String topicReleaseGroupName;
private String issueId;
}

18
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
import java.util.List;
@Data
public class ProjectOfCreateTopicUserResultDTO {
private String topicId;
private String projectId;
private String gridId;
private Long shiftProjectTime;
private List<String> departmentNameList;
private String projectTitle;
private String releaseGridId;
}

30
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java

@ -1,18 +1,18 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.MyPartProjectsResultDTO;
import com.epmet.dto.result.PendProjectListResultDTO;
import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO;
import com.epmet.dto.result.ProcesslistResultDTO;
import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO;
import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.cloud.openfeign.FeignClient;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -24,6 +24,7 @@ import java.util.List;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:32
*/
// @FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallback = GovProjectOpenFeignClientFallback.class,url = "localhost:8102")
@FeignClient(name = ServiceConstant.GOV_PROJECT_SERVER, fallback = GovProjectOpenFeignClientFallback.class)
public interface GovProjectOpenFeignClient {
/**
@ -55,4 +56,23 @@ public interface GovProjectOpenFeignClient {
*/
@PostMapping("gov/project/project/issuetoprojectlist")
Result<List<MyPartProjectsResultDTO>> issueToProjectList(MyPartProjectsFormDTO formDTO);
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dto.ProjectDTO>>
* @param projectIds 项目id数组
* @author yinzuomei
* @description 根据项目id查询项目基本信息
* @Date 2020/11/11 17:40
**/
@PostMapping("gov/project/project/queryprojectinfobyids")
Result<List<ProjectDTO>> queryProjectInfoByIds(@RequestBody List<String> projectIds);
/**
* @Description 根据话题创建人查询项目列表
* @return
* @author wxz
* @date 2020.11.13 11:09
*/
@PostMapping("gov/project/project/list-by-createtopic-userid")
Result<List<ProjectOfCreateTopicUserResultDTO>> listProjectsByCreateTopicUserId(@RequestBody ProjectByCreateTopicUserFormDTO form);
}

20
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java

@ -5,11 +5,12 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.ProcessListFormDTO;
import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.result.MyPartProjectsResultDTO;
import com.epmet.dto.result.PendProjectListResultDTO;
import com.epmet.dto.result.ProcessAndCurrentDeptResultDTO;
import com.epmet.dto.result.ProcesslistResultDTO;
import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO;
import com.epmet.feign.GovProjectOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component;
@ -51,4 +52,21 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli
public Result<List<MyPartProjectsResultDTO>> issueToProjectList(MyPartProjectsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "issueToProjectList", formDTO);
}
/**
* @param projectIds 项目id数组
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.dto.ProjectDTO>>
* @author yinzuomei
* @description 根据项目id查询项目基本信息
* @Date 2020/11/11 17:40
**/
@Override
public Result<List<ProjectDTO>> queryProjectInfoByIds(List<String> projectIds) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "queryProjectInfoByIds", projectIds);
}
@Override
public Result<List<ProjectOfCreateTopicUserResultDTO>> listProjectsByCreateTopicUserId(ProjectByCreateTopicUserFormDTO form) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "listProjectsByCreateTopicUserId", form);
}
}

26
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java

@ -18,8 +18,6 @@
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.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
@ -27,13 +25,10 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.LatestListFormDTO;
import com.epmet.dto.form.ProjectListFromDTO;
import com.epmet.dto.form.ShiftProjectFormDTO;
import com.epmet.dto.form.ShiftProjectsFromDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.excel.ProjectExcel;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
@ -192,4 +187,21 @@ public class ProjectController {
return new Result<List<MyPartProjectsResultDTO>>().ok(projectService.issueToProjectList(formDTO));
}
@PostMapping("queryprojectinfobyids")
public Result<List<ProjectDTO>> queryProjectInfoByIds(@RequestBody List<String> projectIds){
return new Result<List<ProjectDTO>>().ok(projectService.queryProjectInfoByIds(projectIds));
}
/**
* @Description
* @return
* @author wxz
* @date 2020.11.13 09:49
*/
@PostMapping("list-by-createtopic-userid")
public Result<List<ProjectOfCreateTopicUserResultDTO>> listProjectsByCreateTopicUserId(@RequestBody ProjectByCreateTopicUserFormDTO form) {
ValidatorUtils.validateEntity(form, ProjectByCreateTopicUserFormDTO.ListByUserGroup.class);
List<ProjectOfCreateTopicUserResultDTO> projects = projectService.listProjectsByCreateTopicUserId(form.getUserId(), form.getCustomerId(), form.getPageNo(), form.getPageSize());
return new Result().ok(projects);
}
}

9
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java

@ -26,6 +26,7 @@ import com.epmet.dto.form.ShiftProjectsFromDTO;
import com.epmet.dto.result.LatestListResultDTO;
import com.epmet.dto.result.MyPartProjectsResultDTO;
import com.epmet.dto.result.ProjectDetailResultDTO;
import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO;
import com.epmet.entity.ProjectEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -139,4 +140,12 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
List<MyPartProjectsResultDTO> selectIssueProjectList(@Param("customerId") String customerId, @Param("issueList") List<String> issueList,
@Param("pageIndex") int pageIndex, @Param("pageSize") Integer pageSize);
/**
* @Description 根据话题创建人查询项目列表
* @return
* @author wxz
* @date 2020.11.13 09:38
*/
List<ProjectOfCreateTopicUserResultDTO> listProjectsByCreateTopicUserId(@Param("userId") String userId,
@Param("customerId") String customerId);
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectRelatedPersonnelEntity.java

@ -58,4 +58,14 @@ public class ProjectRelatedPersonnelEntity extends BaseEpmetEntity {
*/
private String userId;
/**
* 来源类型(话题:topic 议题:issue)
*/
private String sourceType;
/**
* 来源Id(话题或议题Id)
*/
private String sourceId;
}

6
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/excel/ProjectRelatedPersonnelExcel.java

@ -46,6 +46,12 @@ public class ProjectRelatedPersonnelExcel {
@Excel(name = "用户ID")
private String userId;
@Excel(name = "来源类型")
private String sourceType;
@Excel(name = "来源ID")
private String sourceId;
@Excel(name = "删除标识")
private String delFlag;

11
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java

@ -19,7 +19,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
@ -224,4 +223,14 @@ public interface ProjectService extends BaseService<ProjectEntity> {
* @Description 根据议题Id集合查询对应的项目信息
**/
List<MyPartProjectsResultDTO> issueToProjectList(MyPartProjectsFormDTO formDTO);
List<ProjectDTO> queryProjectInfoByIds(List<String> projectIds);
/**
* @Description 查询用户的项目列表
* @return
* @author wxz
* @date 2020.11.13 09:12
*/
List<ProjectOfCreateTopicUserResultDTO> listProjectsByCreateTopicUserId(String userId, String customerId, Integer pageNo, Integer pageSize);
}

60
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -44,6 +44,7 @@ import com.epmet.feign.*;
import com.epmet.redis.ProjectRedis;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import com.epmet.service.*;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections4.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
@ -688,6 +689,18 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return detentionDays.getData().get(NumConstant.ZERO).getDetentionDays();
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 获取客户下已结案项目列表按结案时间倒序(结案时间结案说明处理部门)
**/
@Override
public List<LatestListResultDTO> getClosedProjectList(LatestListFormDTO formDTO) {
return baseDao.selectClosedProjectList(formDTO);
}
/**
* @param formDTO
* @return
@ -804,7 +817,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
//7:初始化机关-项目时间关联数据
Date current = new Date();
Date current = new Date();
List<String> projectStaffIds = entityList.stream().map(ProjectStaffEntity::getId).distinct().collect(Collectors.toList());
if(!CollectionUtils.isEmpty(projectStaffIds)){
List<ProjectOrgRelationEntity> container = new LinkedList<>();
@ -827,8 +840,12 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
entity1.setApp(AppClientConstant.APP_RESI);
entity1.setGridId(issueDTO.getGridId());
entity1.setUserId(formDTO.getTopicDTO().getCreatedBy());
entity1.setSourceType(AppClientConstant.TOPIC);
entity1.setSourceId(formDTO.getTopicDTO().getId());
ProjectRelatedPersonnelEntity entity2 = ConvertUtils.sourceToTarget(entity1,ProjectRelatedPersonnelEntity.class);
entity2.setUserId(issueDTO.getCreatedBy());
entity2.setSourceType(AppClientConstant.ISSUE);
entity2.setSourceId(issueDTO.getId());
list.add(entity1);
list.add(entity2);
projectRelatedPersonnelService.insertBatch(list);
@ -842,18 +859,6 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return issueProjectResultDTO;
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 获取客户下已结案项目列表按结案时间倒序(结案时间结案说明处理部门)
**/
@Override
public List<LatestListResultDTO> getClosedProjectList(LatestListFormDTO formDTO) {
return baseDao.selectClosedProjectList(formDTO);
}
@Override
public void response(ProjectResponseFormDTO formDTO) {
//公开回复内容审核
@ -1388,4 +1393,33 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return list;
}
@Override
public List<ProjectDTO> queryProjectInfoByIds(List<String> projectIds) {
List<ProjectEntity> entityList=baseDao.selectBatchIds(projectIds);
List<ProjectDTO> projectDTOList=ConvertUtils.sourceToTarget(entityList, ProjectDTO.class);
//2.使用已有方法查询项目当前处理部门信息
projectDTOList.forEach(l -> {
if (ProjectConstant.CLOSED.equals(l.getStatus())) {
l.setCurrentDepartmentNameList(new ArrayList<String>());
} else {
ProjectDTO dto = new ProjectDTO();
dto.setId(l.getId());
l.setCurrentDepartmentNameList(baseDao.selectDepartmentNameList(dto));
}
});
return projectDTOList;
}
@Override
public List<ProjectOfCreateTopicUserResultDTO> listProjectsByCreateTopicUserId(String userId, String customerId, Integer pageNo, Integer pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<ProjectOfCreateTopicUserResultDTO> projects = baseDao.listProjectsByCreateTopicUserId(userId, customerId);
projects.stream().forEach(p -> {
ProjectDTO dto = new ProjectDTO();
dto.setId(p.getProjectId());
List<String> depts = baseDao.selectDepartmentNameList(dto);
p.setDepartmentNameList(depts);
});
return projects;
}
}

14
epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql

@ -0,0 +1,14 @@
ALTER TABLE `project_related_personnel` ADD COLUMN `SOURCE_TYPE` VARCHAR (32) CHARACTER
SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '来源类型(话题:topic 议题:issue)' AFTER `GRID_ID`,
ADD COLUMN `SOURCE_ID` VARCHAR (64) CHARACTER
SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '来源Id(话题或议题Id)' AFTER `SOURCE_TYPE`;
-- 更改项目库的字符集
alter table customer_project_parameter convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project_org_relation convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project_process convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project_related_personnel convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project_satisfaction_detail convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project_satisfaction_statistics convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table project_staff convert to character set utf8mb4 collate utf8mb4_general_ci;

18
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -226,4 +226,22 @@
LIMIT #{pageIndex}, #{pageSize}
</select>
<select id="listProjectsByCreateTopicUserId"
resultType="com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO">
select
rp.SOURCE_ID as topicId,
unix_timestamp(p.CREATED_TIME) as shiftProjectTime,
p.id as projectId,
rp.GRID_ID gridId,
p.TITLE as projectTitle,
rp.GRID_ID releaseGridId
from project_related_personnel rp
inner join project p on (rp.PROJECT_ID = p.ID and p.DEL_FLAG = 0)
where USER_ID = #{userId}
and p.CUSTOMER_ID=#{customerId}
and p.DEL_FLAG=0
and SOURCE_TYPE = 'topic'
order by p.CREATED_TIME desc
</select>
</mapper>

2
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml

@ -8,6 +8,8 @@
<result property="projectId" column="PROJECT_ID"/>
<result property="app" column="APP"/>
<result property="gridId" column="GRID_ID"/>
<result property="sourceId" column="SOURCE_ID"/>
<result property="sourceType" column="SOURCE_TYPE"/>
<result property="userId" column="USER_ID"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/ApplyingMemberResultDTO.java

@ -3,6 +3,7 @@ package com.epmet.resi.group.dto.member.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
@ -45,4 +46,9 @@ public class ApplyingMemberResultDTO implements Serializable {
* 入群被拒 - rejected
*/
private String status;
/**
* 用户徽章Url列表
*/
private List<String> badgeList;
}

6
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupMemberListResultDTO.java

@ -4,6 +4,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description
@ -43,4 +44,9 @@ public class GroupMemberListResultDTO implements Serializable {
* 审核通过 - approved 已禁言 - silent
*/
private String status;
/**
* 用户徽章列表
*/
private List<String> badgeList;
}

20
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java

@ -0,0 +1,20 @@
package com.epmet.resi.group.dto.topic;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class MyCreateTopicsFormDTO {
@NotBlank(message = "客户id不能为空")
private String customerId;
@NotBlank(message = "用户id不能为空")
private String userId;
private Integer pageSize = 10;
private Integer pageNo = 1;
}

30
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/CustomerPageFormDTO.java

@ -0,0 +1,30 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 客户Id 用户Id 分页
* @ClassName CustomerPageFormDTO
* @Auth wangc
* @Date 2020-11-11 23:15
*/
@Data
public class CustomerPageFormDTO implements Serializable {
private static final long serialVersionUID = 8678047078015445193L;
@NotBlank(message = "客户Id不能为空")
private String customerId;
@NotBlank(message = "用户Id不能为空")
private String userId;
@Min(1)
private Integer pageNo;
@Min(1)
private Integer pageSize;
}

14
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicIdListFormDTO.java

@ -0,0 +1,14 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
/**
* @Author zxc
* @DateTime 2020/11/13 4:27 下午
*/
@Data
public class TopicIdListFormDTO{
private String userId;
}

3
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyTopicsResultDTO.java → epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyCreateTopicsResultDTO.java

@ -3,12 +3,13 @@ package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
@Data
public class MyTopicsResultDTO {
public class MyCreateTopicsResultDTO {
private String topicId;
private Long releaseTime;
private String topicContent;
private String releaseGroupName;
private String releaseGridId;
private String releaseGridName;
}

26
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ParticipatedTopicUnitResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 个人中心 参与过的话题返参DTO
* @ClassName ParticipatedTopicUnitResultDTO
* @Auth wangc
* @Date 2020-11-11 23:00
*/
@Data
public class ParticipatedTopicUnitResultDTO implements Serializable {
private static final long serialVersionUID = 1392205563783715932L;
private String topicId;
private String topicReleaseGridName;
private String topicContent;
private Long releaseTime;
private String topicReleaseGroupName;
}

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

@ -1,9 +1,16 @@
package com.epmet.resi.group.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO;
import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.CommonGridAndPageFormDTO;
@ -38,6 +45,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")
public interface ResiGroupOpenFeignClient {
/**
@ -91,4 +99,31 @@ public interface ResiGroupOpenFeignClient {
@PostMapping("/resi/group/group/gov-audit-edit")
Result govAuditEdit(@RequestBody GroupEditionAuditFormDTO param);
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@PostMapping("resi/group/topic/my-part-topics")
Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(@RequestBody CustomerPageFormDTO param);
/**
* @Description 我创建的话题列表
* @return
* @author wxz
* @date 2020.11.10 14:58
*/
@PostMapping("resi/group/topic/my-create-topics")
Result<List<MyCreateTopicsResultDTO>> listMyCreateTopics(@RequestBody MyCreateTopicsFormDTO formDTO);
/**
* @Description 查询我创建的话题
* @Param topicIdListFormDTO
* @author zxc
* @date 2020/11/13 4:32 下午
*/
@PostMapping("resi/group/topic/select-my-create-topic")
Result<List<String>> selectMyCreateTopic(@RequestBody TopicIdListFormDTO topicIdListFormDTO);
}

18
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java

@ -13,11 +13,15 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.form.CreateGroupCodeFormDTO;
import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component;
@ -68,4 +72,18 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectGroupInfo", groupInfoFormDTO);
}
@Override
public Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(CustomerPageFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "myPartTopics", param);
}
@Override
public Result listMyCreateTopics(MyCreateTopicsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listMyTopics", formDTO);
}
@Override
public Result<List<String>> selectMyCreateTopic(TopicIdListFormDTO topicIdListFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "selectMyCreateTopic", topicIdListFormDTO);
}
}

6
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java

@ -297,7 +297,7 @@ public class ResiGroupController {
* @param gridIdList
* @return com.epmet.commons.tools.utils.Result<java.util.List < com.epmet.resi.group.dto.group.GroupProcessingCountResultDTO>>
* @Author yinzuomei
* @Description 传入网格id列表返回每个网格的待审核小组总数
* @Description 传入网格id列表返回每个网格的待审核小组总数+变更小组信息申请数
* @Date 2020/5/13 21:33
**/
@PostMapping("groupprocessingcount")
@ -378,9 +378,9 @@ public class ResiGroupController {
* @return
*/
@PostMapping("submit-edit")
public Result submitGroupEdit(@RequestBody EditGroupFormDTO form){
public Result submitGroupEdit(@RequestBody EditGroupFormDTO form, @LoginUser TokenDto tokenDto){
ValidatorUtils.validateEntity(form, EditGroupFormDTO.SubmitGroupEditVG.class);
resiGroupService.submitGroupEdit(form.getGroupId(), form.getGroupName(), form.getGroupHeadPhoto(), form.getGroupIntroduction());
resiGroupService.submitGroupEdit(form.getGroupId(), form.getGroupName(), form.getGroupHeadPhoto(), form.getGroupIntroduction(), tokenDto.getUserId());
return new Result();
}

8
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/GroupEditSubmitRecordDao.java

@ -81,4 +81,12 @@ public interface GroupEditSubmitRecordDao extends BaseDao<GroupEditSubmitRecordE
* @date 2020.11.03 17:33
*/
int updateAuditResult(@Param("groupId")String groupId,@Param("staffId") String staffId,@Param("auditStatus") String auditStatus,@Param("remark")String remark);
/**
* @param gridId
* @author yinzuomei
* @description 根据网格id查询 待审核的变更小组信息申请 总数
* @Date 2020/11/13 10:05
**/
Integer selectCountAuditingRec(String gridId);
}

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/redis/ResiGroupRedis.java

@ -132,6 +132,16 @@ public class ResiGroupRedis {
return null;
}
/**
* @Description 删除组缓存
* @param groupId
* @return void
* @author wangc
* @date 2020.11.12 14:07
*/
public void delGroup(String groupId){
redisUtils.delete(ResiGroupRedisKeys.getResiGroupInfoKey(groupId));
}
/**
* @param gridId

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java

@ -296,7 +296,7 @@ public interface ResiGroupService extends BaseService<ResiGroupEntity> {
GroupDetailResultDTO getGroupDetail(String groupId);
void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction);
void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId);
/**
* @Description 工作端 查询组变更待审核列表

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

@ -33,7 +33,6 @@ import com.epmet.commons.tools.scan.param.ImgTaskDTO;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.dto.GovTokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.ReadFlagConstant;
@ -64,9 +63,9 @@ import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.*;
import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.group.*;
import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.form.GridIdFormDTO;
import com.epmet.resi.group.dto.group.form.ShouldVoteCountFormDTO;
import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
@ -891,7 +890,9 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
for(String gridId:gridIdList){
GroupProcessingCountResultDTO resultDTO=new GroupProcessingCountResultDTO();
resultDTO.setGridId(gridId);
Integer auditingCount=resiGroupRedis.getWorkGrassrootsGroupRedDotValue(gridId);
Integer auditingCreateGroupCount=resiGroupRedis.getWorkGrassrootsGroupRedDotValue(gridId);
Integer auditingGroupEditRecordCount=groupEditSubmitRecordDao.selectCountAuditingRec(gridId);
Integer auditingCount=auditingCreateGroupCount+auditingGroupEditRecordCount;
if (null == auditingCount) {
resultDTO.setCount(0);
} else {
@ -1117,13 +1118,20 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
}
@Override
public void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction) {
public void submitGroupEdit(String groupId, String groupName, String groupHeadPhoto, String groupIntroduction, String editUserId) {
// 1.判断小组是否存在,判断是否已经在"待审核"状态
ResiGroupEntity group = resiGroupDao.selectById(groupId);
if (group == null) {
throw new RenException(EpmetErrorCode.GROUP_NOT_EXISTS.getCode(), EpmetErrorCode.GROUP_NOT_EXISTS.getMsg());
}
// 判断是否是组长
ResiGroupMemberDTO groupLeader = resiGroupMemberDao.selectLeaderMember(groupId);
if (groupLeader == null || !groupLeader.getCustomerUserId().equals(editUserId)) {
String msg = "只有该组的组长才可以编辑组信息";
throw new RenException(EpmetErrorCode.GROUP_EDIT_ERROR.getCode(), msg, msg, RenException.MessageMode.CODE_INTERNAL_EXTERNAL);
}
// 2.判断是否可以提交编辑
GroupEditSubmitRecordEntity lre = groupEditSubmitRecordDao.getLatestEditSubmitRecord(groupId);
if (lre != null && GroupAuditStatusConstant.UNDER_AUDITING.equals(lre.getAuditStatus())) {
@ -1354,6 +1362,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
baseDao.updateById(_update);
}
resiGroupRedis.subtractWorkGrassrootsPartyAuthRedDotValue(edit.getGridId());
resiGroupRedis.delGroup(param.getGroupId());
}
}

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

@ -31,12 +31,10 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.modules.constant.GroupMemberConstant;
import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.feign.EpmetUserFeignClient;
@ -65,6 +63,7 @@ import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.form.CommonGridIdListFormDTO;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
@ -75,10 +74,12 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 群组成员关系表
@ -118,6 +119,8 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
private ResiGroupRedis resiGroupRedis;
@Autowired
private ResiGroupDao resiGroupDao;
@Autowired
private EpmetUserOpenFeignClient userOpenFeignClient;
@Override
public PageData<ResiGroupMemberDTO> page(Map<String, Object> params) {
@ -329,6 +332,24 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
userResiInfoDTOListResult.getCode(),
userResiInfoDTOListResult.getMsg()));
}
//徽章信息
ResiGroupEntity group = resiGroupDao.selectById(groupMemberListFormDTO.getGroupId());
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR
= userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userIdList));
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){
Map<String, List<UserBadgeUnitFormDTO>> map = badgeR.getData();
list.forEach(member -> {
member.setBadgeList(
CollectionUtils.isEmpty(map.get(member.getUserId())) ?
Collections.EMPTY_LIST:
map.get(member.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) );
});
}else{
list.forEach(member -> member.setBadgeList(Collections.EMPTY_LIST));
}
}
return list;
}
@ -368,6 +389,26 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
}else{
logger.warn(String.format("居民端组长【%s】查看入群待审核列表调用%s服务,获取用户头像显示昵称失败,错误码%s,错误提示%s",applyingMemberFormDTO.getUserId(), ServiceConstant.EPMET_USER_SERVER, userResiInfoDTOListResult.getCode(), userResiInfoDTOListResult.getMsg()));
}
//徽章信息
ResiGroupEntity group = resiGroupDao.selectById(applyingMemberFormDTO.getGroupId());
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR
= userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userIdList));
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){
Map<String, List<UserBadgeUnitFormDTO>> map = badgeR.getData();
list.forEach(member -> {
member.setBadgeList(
CollectionUtils.isEmpty(map.get(member.getApplyUserId())) ?
Collections.EMPTY_LIST:
map.get(member.getApplyUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) );
});
}else{
list.forEach(member -> member.setBadgeList(Collections.EMPTY_LIST));
}
}
return list;
}

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

@ -5,7 +5,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.modules.topic.service.ResiTopicService;
import com.epmet.resi.group.dto.topic.MyTopicsFormDTO;
import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.TopicInfoDTO;
import com.epmet.resi.group.dto.topic.form.*;
@ -265,12 +265,36 @@ public class ResiTopicController {
* @author wxz
* @date 2020.11.10 14:58
*/
@PostMapping("my-topics")
public Result listMyTopics(@RequestBody MyTopicsFormDTO formDTO, @LoginUser TokenDto tokenDto) {
@PostMapping("my-create-topics")
public Result<List<MyCreateTopicsResultDTO>> listMyCreateTopics(@RequestBody MyCreateTopicsFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
List<MyTopicsResultDTO> myTopics = topicService.listMyTopics(formDTO.getCustomerId(), tokenDto.getUserId(), formDTO.getPageNo(), formDTO.getPageSize());
List<MyCreateTopicsResultDTO> myTopics = topicService.listMyCreateTopics(formDTO.getCustomerId(), formDTO.getUserId(), formDTO.getPageNo(), formDTO.getPageSize());
return new Result().ok(myTopics);
}
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@PostMapping("my-part-topics")
public Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(@RequestBody CustomerPageFormDTO param){
ValidatorUtils.validateEntity(param);
return new Result<List<ParticipatedTopicUnitResultDTO>>().ok(topicService.getParticipatedTopics(param));
}
/**
* @Description 查询我创建的话题
* @Param topicIdListFormDTO
* @author zxc
* @date 2020/11/13 4:32 下午
*/
@PostMapping("select-my-create-topic")
public Result<List<String>> selectMyCreateTopic(@RequestBody TopicIdListFormDTO topicIdListFormDTO){
return new Result<List<String>>().ok(topicService.selectMyCreateTopic(topicIdListFormDTO));
}
}

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

@ -24,6 +24,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.CheckTopicPublisherFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.TopicIdListFormDTO;
import com.epmet.resi.group.dto.topic.result.*;
import com.epmet.resi.group.dto.topic.form.TopicInfoFormDTO;
import org.apache.ibatis.annotations.Mapper;
@ -153,7 +154,7 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
*/
CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO);
List<MyTopicsResultDTO> listMyTopics(@Param("userId") String userId, @Param("customerId") String customerId);
List<MyCreateTopicsResultDTO> listMyCreateTopics(@Param("userId") String userId, @Param("customerId") String customerId);
/**
* @Description 根据话题Id集合查询对应的已转成议题的议题Id集合
@ -161,4 +162,21 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
*/
List<IssueGridResultDTO> selectIssueList(@Param("topicList") List<String> topicList);
/**
* @Description 查询我参与过的话题
* @param customerId
* @param userId
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:08
*/
List<ParticipatedTopicUnitResultDTO> selectParticipatedTopics(@Param("customerId") String customerId,@Param("userId") String userId);
/**
* @Description 查询我创建的话题
* @Param topicIdListFormDTO
* @author zxc
* @date 2020/11/13 4:32 下午
*/
List<String> selectMyCreateTopic(TopicIdListFormDTO topicIdListFormDTO);
}

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

@ -30,7 +30,6 @@ 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 org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@ -270,5 +269,22 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @author wxz
* @date 2020.11.10 15:03
*/
List<MyTopicsResultDTO> listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize);
List<MyCreateTopicsResultDTO> listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize);
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
List<ParticipatedTopicUnitResultDTO> getParticipatedTopics(CustomerPageFormDTO param);
/**
* @Description 查询我创建的话题
* @Param topicIdListFormDTO
* @author zxc
* @date 2020/11/13 4:32 下午
*/
List<String> selectMyCreateTopic(TopicIdListFormDTO topicIdListFormDTO);
}

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

@ -37,12 +37,12 @@ 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.utils.ScanContentUtils;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CommonDataFilterResultDTO;
import com.epmet.dto.result.IssueInitiatorResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.modules.constant.GroupMemberConstant;
import com.epmet.modules.constant.ResiGroupRedisKeys;
import com.epmet.modules.feign.EpmetUserFeignClient;
@ -80,7 +80,10 @@ import com.epmet.resi.group.dto.topic.form.*;
import com.epmet.resi.group.dto.topic.form.CheckTopicPublisherFormDTO;
import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO;
import com.epmet.resi.group.dto.topic.result.*;
import com.epmet.resi.group.dto.topic.result.CheckTopicPublisherResultDTO;
import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@ -141,6 +144,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private GovIssueFeignClient govIssueFeignClient;
@ -364,7 +370,36 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
//2.2从缓存中查找用户信息
setCacheUserInfoWithIssue(groupId,latestTenTopics);
}
//3.用户徽章
//3.1首先需要拿到客户Id
ResiGroupEntity group = resiGroupDao.selectById(groupId);
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR
= userOpenFeignClient.userShowBadge(
new UserGroupFormDTO(group.getCustomerId(),
latestTenTopics.stream()
.filter(top -> StringUtils.equals("other",top.getReleaseUserFlag()))
.map(ResiTopicIncludeIssueInfoResultDTO::getUserId)
.distinct().collect(Collectors.toList())));
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){
Map<String, List<UserBadgeUnitFormDTO>> badgeM = badgeR.getData();
latestTenTopics.forEach(top -> {
if(StringUtils.equals("other",top.getReleaseUserFlag())){
top.setBadgeList(
CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ?
Collections.EMPTY_LIST :
badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList())
);
}else top.setBadgeList(Collections.EMPTY_LIST);
});
}else latestTenTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST));
}
}
return new Result<List<ResiTopicIncludeIssueInfoResultDTO>>().ok(latestTenTopics);
}
@ -1383,12 +1418,64 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
}
@Override
public List<MyTopicsResultDTO> listMyTopics(String customerId, String userId, Integer pageNo, Integer pageSize) {
public List<MyCreateTopicsResultDTO> listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<MyTopicsResultDTO> myTopics = resiTopicDao.listMyTopics(userId, customerId);
// todo 查询网格名称,赋值
List<MyCreateTopicsResultDTO> myTopics = resiTopicDao.listMyCreateTopics(userId, customerId);
HashMap<String, String> gridIdAndNames = new HashMap<>();
List<String> gridIds = myTopics.stream().map(c -> c.getReleaseGridId()).collect(Collectors.toList());
Result<List<AllGridsByUserIdResultDTO>> gridsResult = govOrgOpenFeignClient.getGridListByGridIds(gridIds);
if (gridsResult.success()) {
List<AllGridsByUserIdResultDTO> grids = gridsResult.getData();
grids.stream().forEach(g -> gridIdAndNames.put(g.getGridId(), g.getGridName()));
} else {
log.error("【我创建的话题列表】,查询组织-网格名称出错,没有抛出,内部处理。内部消息:{},外部消息:{}", gridsResult.getInternalMsg(), gridsResult.getMsg());
}
for (MyCreateTopicsResultDTO myTopic : myTopics) {
myTopic.setReleaseGridName(gridIdAndNames.get(myTopic.getReleaseGridId()));
}
return myTopics;
}
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@Override
public List<ParticipatedTopicUnitResultDTO> getParticipatedTopics(CustomerPageFormDTO param) {
PageInfo<ParticipatedTopicUnitResultDTO> page =
PageHelper.startPage(Optional.ofNullable(param.getPageNo()).orElse(NumConstant.ONE),
Optional.ofNullable(param.getPageSize()).orElse(NumConstant.ONE)).doSelectPageInfo(() ->
baseDao.selectParticipatedTopics(param.getCustomerId(),param.getUserId()));
List<ParticipatedTopicUnitResultDTO> result = page.getList();
if(CollectionUtils.isEmpty(result)) return Collections.EMPTY_LIST;
Result<List<OrgInfoResultDTO>> gridR = govOrgOpenFeignClient.selectOrgInfo(
new OrgInfoFormDTO(OrgInfoConstant.GRID,result.stream().map(ParticipatedTopicUnitResultDTO :: getTopicReleaseGridName).distinct().collect(Collectors.toList())));
if(gridR.success() && !CollectionUtils.isEmpty(gridR.getData())){
return result.stream().flatMap(topic -> gridR.getData().stream() .filter(grid -> StringUtils.equals(grid.getOrgId(),topic.getTopicReleaseGridName())).map(orgInfo -> {
topic.setTopicReleaseGridName(orgInfo.getOrgId());
return topic;
})).collect(Collectors.toList());
} return Collections.EMPTY_LIST;
}
/**
* @Description 查询我创建的话题
* @Param topicIdListFormDTO
* @author zxc
* @date 2020/11/13 4:32 下午
*/
@Override
public List<String> selectMyCreateTopic(TopicIdListFormDTO topicIdListFormDTO) {
return baseDao.selectMyCreateTopic(topicIdListFormDTO);
}
}

12
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/GroupEditSubmitRecordDao.xml

@ -135,4 +135,16 @@
STAFF_ID IS NULL
LIMIT 1
</update>
<!-- 根据网格id查询 待审核的变更小组信息申请 总数 -->
<select id="selectCountAuditingRec" resultType="java.lang.Integer">
SELECT
count( 1 ) AS total
FROM
group_edit_submit_record m
WHERE
m.DEL_FLAG = '0'
AND m.AUDIT_STATUS = 'under_auditting'
AND m.GRID_ID = #{gridId}
</select>
</mapper>

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

@ -447,11 +447,12 @@
AND id = #{topicId}
</select>
<select id="listMyTopics" resultType="com.epmet.resi.group.dto.topic.result.MyTopicsResultDTO">
<select id="listMyCreateTopics" resultType="com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO">
select t.id as topicId,
t.topic_content as topicContent,
unix_timestamp(t.created_time) as releaseTime,
g.GROUP_NAME as releaseGroupName
g.GROUP_NAME as releaseGroupName,
g.GRID_ID as releaseGridId
from resi_topic t
inner join resi_group g on (t.GROUP_ID = g.ID and g.CUSTOMER_ID = #{customerId})
where t.CREATED_BY = #{userId}
@ -473,5 +474,38 @@
</foreach>
</select>
<!-- 查询我参与过的话题 -->
<select id="selectParticipatedTopics" resultType="com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO">
SELECT
topic.id AS topicId,
topic.topic_content,
UNIX_TIMESTAMP(topic.created_time) AS releaseTime,
groupp.group_name AS topicReleaseGroupName,
groupp.grid_id AS topicReleaseGridName
FROM
resi_topic topic LEFT JOIN resi_group groupp ON topic.group_id = groupp.ID AND groupp.del_flag = '0' AND groupp.customer_id = #{customerId}
WHERE
topic.del_flag = '0'
AND
topic.id IN (
SELECT DISTINCT topic_id FROM resi_topic_comment WHERE
del_flag = '0' AND created_by = #{userId}
)
AND topic.created_by <![CDATA[ <> ]]> #{userId}
ORDER BY topic.created_time desc
</select>
<!-- 查询我创建的话题 -->
<select id="selectMyCreateTopic" resultType="java.lang.String">
SELECT
id
FROM
resi_topic
WHERE
del_flag = '0'
AND STATUS = 'discussing'
AND created_by = #{userId}
</select>
</mapper>

13
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java

@ -0,0 +1,13 @@
package com.epmet.resi.mine.dto.from;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class MyCreateTopicsFormDTO {
@NotBlank(message = "客户id不能为空")
private String customerId;
private Integer pageNo = 1;
private Integer pageSize = 10;
}

38
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftIssueTopicsFormDTO.java

@ -0,0 +1,38 @@
package com.epmet.resi.mine.dto.from;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2020/11/13 3:30 下午
*/
@Data
public class MyShiftIssueTopicsFormDTO implements Serializable {
private static final long serialVersionUID = -3943178729586797400L;
public interface MyShiftIssueTopics{}
/**
* 页码
*/
@NotNull(message = "页码不能为空",groups = {MyShiftIssueTopics.class})
private Integer pageNo;
/**
* 每页数量
*/
@NotNull(message = "每页数量不能为空",groups = {MyShiftIssueTopics.class})
private Integer pageSize;
@NotBlank(message = "客户ID不能为空",groups = {MyShiftIssueTopics.class})
private String customerId;
private String userId;
}

8
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyTopicsFormDTO.java → epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java

@ -1,14 +1,14 @@
package com.epmet.resi.group.dto.topic;
package com.epmet.resi.mine.dto.from;
import lombok.Data;
@Data
public class MyTopicsFormDTO {
public class MyShiftProjectTopicsFormDTO {
private String customerId;
private Integer pageSize = 10;
private Integer pageNo = 1;
private Integer pageSize = 10;
}

13
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java

@ -0,0 +1,13 @@
package com.epmet.resi.mine.dto.result;
import lombok.Data;
@Data
public class MyCreateTopicsResultDTO {
private String topicId;
private Long releaseTime;
private String topicContent;
private String releaseGroupName;
private String releaseGridId;
private String releaseGridName;
}

41
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftIssueTopicsResultDTO.java

@ -0,0 +1,41 @@
package com.epmet.resi.mine.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2020/11/13 3:31 下午
*/
@Data
public class MyShiftIssueTopicsResultDTO implements Serializable {
private static final long serialVersionUID = -703102629653169023L;
/**
* 话题ID
*/
private String topicId;
/**
* 转议题时间
*/
private Long shiftIssueTime;
/**
* 建议
*/
private String suggestion;
/**
* 议题标题
*/
private String issueTitle;
/**
* 话题发表网格名称
*/
private String releaseGridName;
}

15
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java

@ -0,0 +1,15 @@
package com.epmet.resi.mine.dto.result;
import lombok.Data;
import java.util.List;
@Data
public class MyShiftProjectTopicsResultDTO {
private String topicId;
private String gridId;
private Long shiftProjectTime;
private List<String> departmentNameList;
private String projectTitle;
private String releaseGridName;
}

27
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java

@ -9,6 +9,8 @@ import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO;
import com.epmet.dto.result.MyPartProjectsResultDTO;
import com.epmet.dto.result.MyPubIssuesAuditingResultDTO;
import com.epmet.dto.result.MyPubIssuesClosedResultDTO;
import com.epmet.dto.result.MyPubIssuesShiftProjectResultDTO;
import com.epmet.modules.person.service.IssueService;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.beans.factory.annotation.Autowired;
@ -67,4 +69,29 @@ public class IssueController {
return new Result<List<MyPubIssuesAuditingResultDTO>>().ok(issueService.myPubIssuesAuditing(tokenDto,myPubIssuesAuditingFormDTO));
}
/**
* @param formDTO
* @author yinzuomei
* @description 个人中心-我发起的议题列表-已转项目
* @Date 2020/11/11 13:33
**/
@PostMapping("my-pub-issues/shift-project")
public Result<List<MyPubIssuesShiftProjectResultDTO>> getMyPubIssuesShiftProject(@RequestBody MyPubIssuesAuditingFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, MyPubIssuesAuditingFormDTO.MyPubIssuesAuditing.class);
formDTO.setUserId(loginUserUtil.getLoginUserId());
return new Result<List<MyPubIssuesShiftProjectResultDTO>>().ok(issueService.getMyPubIssuesShiftProject(formDTO));
}
/**
* @param formDTO
* @author yinzuomei
* @description 个人中心-我发起的议题列表-已关闭
* @Date 2020/11/11 13:39
**/
@PostMapping("my-pub-issues/closed")
public Result<List<MyPubIssuesClosedResultDTO>> getMyPubIssuesClosed(@RequestBody MyPubIssuesAuditingFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, MyPubIssuesAuditingFormDTO.MyPubIssuesAuditing.class);
formDTO.setUserId(loginUserUtil.getLoginUserId());
return new Result<List<MyPubIssuesClosedResultDTO>>().ok(issueService.getMyPubIssuesClosed(formDTO));
}
}

94
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java

@ -0,0 +1,94 @@
package com.epmet.modules.person.controller;
import com.epmet.commons.tools.annotation.LoginUser;
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.modules.person.service.TopicService;
import com.epmet.resi.group.dto.topic.form.CustomerPageFormDTO;
import com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyCreateTopicsFormDTO;
import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO;
import com.epmet.resi.mine.dto.from.MyShiftProjectTopicsFormDTO;
import com.epmet.resi.mine.dto.result.MyCreateTopicsResultDTO;
import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO;
import com.epmet.resi.mine.dto.result.MyShiftProjectTopicsResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description 个人中心-话题
* @ClassName TopicController
* @Auth wangc
* @Date 2020-11-12 14:33
*/
@RestController
@RequestMapping("topic")
public class TopicController {
@Autowired
private ResiGroupOpenFeignClient groupFeign;
@Autowired
private TopicService topicService;
/**
* @Description 个人中心-我参与过的话题
* @param param
* @return java.util.List<com.epmet.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO>
* @author wangc
* @date 2020.11.11 23:20
*/
@PostMapping("my-part-topics")
Result<List<ParticipatedTopicUnitResultDTO>> myPartTopics(@LoginUser TokenDto token , @RequestBody CustomerPageFormDTO param){
param.setUserId(token.getUserId());
ValidatorUtils.validateEntity(param);
return groupFeign.myPartTopics(param);
}
/**
* @Description 查询我的已转项目的话题列表
* @return
* @author wxz
* @date 2020.11.13 10:13
*/
@PostMapping("my-shiftproject-topics")
public Result<List<MyShiftProjectTopicsResultDTO>> listMyShiftProjectTopics(@RequestBody MyShiftProjectTopicsFormDTO form, @LoginUser TokenDto tokenDto) {
ValidatorUtils.validateEntity(form);
List<MyShiftProjectTopicsResultDTO> topics = topicService.listMyShiftProjectTopics(tokenDto.getUserId(), form.getCustomerId(), form.getPageNo(), form.getPageSize());
return new Result<List<MyShiftProjectTopicsResultDTO>>().ok(topics);
}
/**
* @Description 我创建的话题列表
* @return
* @author wxz
* @date 2020.11.13 15:09
*/
@PostMapping("my-create-topics")
public Result<List<MyCreateTopicsResultDTO>> listMyCreateTopics(@RequestBody MyCreateTopicsFormDTO form, @LoginUser TokenDto tokenDto) {
ValidatorUtils.validateEntity(form);
List<MyCreateTopicsResultDTO> topics = topicService.listMyCreateTopics(form.getCustomerId(), tokenDto.getUserId(), form.getPageNo(), form.getPageSize());
return new Result<List<MyCreateTopicsResultDTO>>().ok(topics);
}
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param tokenDto
* @Param myShiftIssueTopicsFormDTO
* @author zxc
* @date 2020/11/13 3:42 下午
*/
@PostMapping("my-shiftissue-topics")
public Result<List<MyShiftIssueTopicsResultDTO>> myShiftIssueTopics(@LoginUser TokenDto tokenDto, @RequestBody MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO){
ValidatorUtils.validateEntity(myShiftIssueTopicsFormDTO, MyShiftIssueTopicsFormDTO.MyShiftIssueTopics.class);
return new Result<List<MyShiftIssueTopicsResultDTO>>().ok(topicService.myShiftIssueTopics(tokenDto,myShiftIssueTopicsFormDTO));
}
}

18
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java

@ -5,6 +5,8 @@ import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO;
import com.epmet.dto.result.MyPartProjectsResultDTO;
import com.epmet.dto.result.MyPubIssuesAuditingResultDTO;
import com.epmet.dto.result.MyPubIssuesClosedResultDTO;
import com.epmet.dto.result.MyPubIssuesShiftProjectResultDTO;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import java.util.List;
@ -37,4 +39,20 @@ public interface IssueService {
* @date 2020/11/11 9:24 上午
*/
List<MyPubIssuesAuditingResultDTO> myPubIssuesAuditing(TokenDto tokenDto, MyPubIssuesAuditingFormDTO myPubIssuesAuditingFormDTO);
/**
* @param formDTO
* @author yinzuomei
* @description 个人中心-我发起的议题列表-已转项目
* @Date 2020/11/11 13:35
**/
List<MyPubIssuesShiftProjectResultDTO> getMyPubIssuesShiftProject(MyPubIssuesAuditingFormDTO formDTO);
/**
* @param formDTO
* @author yinzuomei
* @description 个人中心-我发起的议题列表-已关闭
* @Date 2020/11/11 13:48
**/
List<MyPubIssuesClosedResultDTO> getMyPubIssuesClosed(MyPubIssuesAuditingFormDTO formDTO);
}

39
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java

@ -0,0 +1,39 @@
package com.epmet.modules.person.service;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO;
import com.epmet.resi.mine.dto.result.MyCreateTopicsResultDTO;
import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO;
import com.epmet.resi.mine.dto.result.MyShiftProjectTopicsResultDTO;
import java.util.List;
/**
* 话题service
*/
public interface TopicService {
/**
* @Description 列出我的已转项目的话题列表
* @return
* @author wxz
* @date 2020.11.13 10:17
*/
List<MyShiftProjectTopicsResultDTO> listMyShiftProjectTopics(String userId, String customerId, Integer pageNo, Integer pageSize);
/**
* @Description 我创建的话题列表
* @return
* @author wxz
* @date 2020.11.13 15:00
*/
List<MyCreateTopicsResultDTO> listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize);
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param tokenDto
* @Param myShiftIssueTopicsResultDTO
* @author zxc
* @date 2020/11/13 3:42 下午
*/
List<MyShiftIssueTopicsResultDTO> myShiftIssueTopics(TokenDto tokenDto, MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO);
}

119
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java

@ -4,20 +4,23 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.IssueOpenConstant;
import com.epmet.dto.IssueDTO;
import com.epmet.dto.ProjectDTO;
import com.epmet.dto.form.MyPartIssuesFormDTO;
import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO;
import com.epmet.dto.result.MyPartProjectsResultDTO;
import com.epmet.dto.result.MyPubIssuesAuditingResultDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.GovProjectOpenFeignClient;
import com.epmet.modules.person.service.IssueService;
import com.epmet.resi.group.dto.group.form.GroupInfoFormDTO;
import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -141,6 +144,114 @@ public class IssueServiceImpl implements IssueService {
if (!listResult.success()){
throw new RenException("查询我发起的议题列表-表决中失败......");
}
if (CollectionUtils.isEmpty(listResult.getData())){
return new ArrayList<>();
}
return listResult.getData();
}
/**
* @param formDTO
* @author yinzuomei
* @description 个人中心-我发起的议题列表-已转项目 按照转项目时间排序
* @Date 2020/11/11 13:35
**/
@Override
public List<MyPubIssuesShiftProjectResultDTO> getMyPubIssuesShiftProject(MyPubIssuesAuditingFormDTO formDTO) {
//查询我发起的议题,并且 已转项目
formDTO.setIssueStatus(IssueOpenConstant.ISSUE_SHIFT_PROJECT);
Result<List<IssueDTO>> issueResult=issueOpenFeignClient.getMyPubIssues(formDTO);
if(null==issueResult||CollectionUtils.isEmpty(issueResult.getData())){
return new ArrayList<>();
}
//议题来源话题id集合
List<String> topicIds=new ArrayList<>();
List<String> projectIds=new ArrayList<>();
List<String> gridIds=new ArrayList<>();
issueResult.getData().forEach(issueDTO ->{
if(IssueOpenConstant.SOURCE_TYPE_RT.equals(issueDTO.getSourceType())&& StringUtils.isNotBlank(issueDTO.getSourceId())){
topicIds.add(issueDTO.getSourceId());
projectIds.add(issueDTO.getProjectId());
gridIds.add(issueDTO.getGridId());
}
} );
//查询网格名称
Result<List<AllGridsByUserIdResultDTO>> gridNameList = govOrgOpenFeignClient.getGridListByGridIds(gridIds);
if (!gridNameList.success()){
logger.error("查询议题来源网格名称失败......");
}
//查询话题来源小组名称
Result<List<GroupInfoResultDTO>> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(topicIds));
if (!groupNameList.success()){
logger.error("查询议题来源小组名称失败......");
}
//查询项目基本信息
Result<List<ProjectDTO>> projectRes=govProjectOpenFeignClient.queryProjectInfoByIds(projectIds);
if(!projectRes.success()){
logger.error("查询项目信息失败......");
}
List<MyPubIssuesShiftProjectResultDTO> list=new ArrayList<>();
for(IssueDTO issueDTO:issueResult.getData()){
MyPubIssuesShiftProjectResultDTO resultDTO=new MyPubIssuesShiftProjectResultDTO();
resultDTO.setIssueId(issueDTO.getId());
resultDTO.setProjectId(issueDTO.getProjectId());
gridNameList.getData().stream().filter(o -> issueDTO.getGridId().equals(o.getGridId())).forEach(o -> resultDTO.setTopicReleaseGridName(o.getGridName()));
groupNameList.getData().stream().filter(g -> issueDTO.getSourceId().equals(g.getTopicId())).forEach(g -> resultDTO.setTopicReleaseGroupName(g.getTopicGroupName()));
resultDTO.setShiftProjectTime(issueDTO.getShiftedTimeStamp());
projectRes.getData().stream().filter(p->issueDTO.getProjectId().equals(p.getId())).forEach(projectDTO -> resultDTO.setProjectTitle(projectDTO.getTitle()));
//当前处理部门名称列表
projectRes.getData().stream().filter(p->issueDTO.getProjectId().equals(p.getId())).forEach(projectDTO -> resultDTO.setDepartmentNameList(projectDTO.getCurrentDepartmentNameList()));
list.add(resultDTO);
}
return list;
}
/**
* @param formDTO
* @author yinzuomei
* @description 个人中心-我发起的议题列表-已关闭
* @Date 2020/11/11 13:48
**/
@Override
public List<MyPubIssuesClosedResultDTO> getMyPubIssuesClosed(MyPubIssuesAuditingFormDTO formDTO) {
//查询我发起的议题,并且 已关闭的
formDTO.setIssueStatus(IssueOpenConstant.ISSUE_CLOSED);
Result<List<IssueDTO>> issueResult=issueOpenFeignClient.getMyPubIssues(formDTO);
if(null==issueResult||CollectionUtils.isEmpty(issueResult.getData())){
return new ArrayList<>();
}
//议题来源话题id集合
List<String> topicIds=new ArrayList<>();
List<String> gridIds=new ArrayList<>();
issueResult.getData().forEach(issueDTO ->{
if(IssueOpenConstant.SOURCE_TYPE_RT.equals(issueDTO.getSourceType())&& StringUtils.isNotBlank(issueDTO.getSourceId())){
topicIds.add(issueDTO.getSourceId());
gridIds.add(issueDTO.getGridId());
}
} );
//查询网格名称
Result<List<AllGridsByUserIdResultDTO>> gridNameList = govOrgOpenFeignClient.getGridListByGridIds(gridIds);
if (!gridNameList.success()){
logger.error("查询议题来源网格名称失败......");
}
//查询话题来源小组名称
Result<List<GroupInfoResultDTO>> groupNameList = resiGroupOpenFeignClient.selectGroupInfo(new GroupInfoFormDTO(topicIds));
if (!groupNameList.success()){
logger.error("查询议题来源小组名称失败......");
}
List<MyPubIssuesClosedResultDTO> resultDTOList=new ArrayList<>();
for(IssueDTO issueDTO:issueResult.getData()){
MyPubIssuesClosedResultDTO resultDTO=new MyPubIssuesClosedResultDTO();
resultDTO.setIssueId(issueDTO.getId());
resultDTO.setIssueTitle(issueDTO.getIssueTitle());
resultDTO.setSuggestion(issueDTO.getSuggestion());
resultDTO.setClosedTime(issueDTO.getClosedTimeStamp());
gridNameList.getData().stream().filter(o -> issueDTO.getGridId().equals(o.getGridId())).forEach(o -> resultDTO.setTopicReleaseGridName(o.getGridName()));
groupNameList.getData().stream().filter(g -> issueDTO.getSourceId().equals(g.getTopicId())).forEach(g -> resultDTO.setTopicReleaseGroupName(g.getTopicGroupName()));
resultDTOList.add(resultDTO);
}
return resultDTOList;
}
}

112
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java

@ -0,0 +1,112 @@
package com.epmet.modules.person.service.impl;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.ProjectByCreateTopicUserFormDTO;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.ProjectOfCreateTopicUserResultDTO;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.feign.GovProjectOpenFeignClient;
import com.epmet.modules.person.service.TopicService;
import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyShiftIssueTopicsFormDTO;
import com.epmet.resi.mine.dto.result.MyCreateTopicsResultDTO;
import com.epmet.resi.mine.dto.result.MyShiftIssueTopicsResultDTO;
import com.epmet.resi.mine.dto.result.MyShiftProjectTopicsResultDTO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
@Service
public class TopicServiceImpl implements TopicService {
private static Logger logger = LoggerFactory.getLogger(TopicServiceImpl.class);
@Autowired
private GovProjectOpenFeignClient govProjectOpenFeignClient;
@Autowired
private GovOrgOpenFeignClient govOrgOpenFeignClient;
@Autowired
private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
@Autowired
private GovIssueOpenFeignClient govIssueOpenFeignClient;
@Override
public List<MyShiftProjectTopicsResultDTO> listMyShiftProjectTopics(String userId, String customerId, Integer pageNo, Integer pageSize) {
ProjectByCreateTopicUserFormDTO form = new ProjectByCreateTopicUserFormDTO();
form.setCustomerId(customerId);
form.setUserId(userId);
form.setPageNo(pageNo);
form.setPageSize(pageSize);
Result<List<ProjectOfCreateTopicUserResultDTO>> result = govProjectOpenFeignClient.listProjectsByCreateTopicUserId(form);
if (!result.success()) {
throw new RenException(result.getCode(), result.getInternalMsg(), result.getMsg(), RenException.MessageMode.CODE_INTERNAL_EXTERNAL);
}
List<ProjectOfCreateTopicUserResultDTO> projects = result.getData();
List<MyShiftProjectTopicsResultDTO> projectTopics = ConvertUtils.sourceToTarget(projects, MyShiftProjectTopicsResultDTO.class);
List<String> gridIds = projects.stream().map(p -> p.getGridId()).collect(Collectors.toList());
Result<List<AllGridsByUserIdResultDTO>> rst = govOrgOpenFeignClient.getGridListByGridIds(gridIds);
if (!rst.success()) {
logger.error("查询我创建的话题列表(已转议题),根据网格id查询网格名称失败, InternalMsg:{},Msg:{}", rst.getInternalMsg(), rst.getMsg());
} else {
List<AllGridsByUserIdResultDTO> gridInfos = rst.getData();
HashMap<String, String> gridIdAndNames = new HashMap<>();
gridInfos.stream().forEach(g -> gridIdAndNames.put(g.getGridId(), g.getGridName()));
projectTopics.stream().forEach(pt -> pt.setReleaseGridName(gridIdAndNames.get(pt.getGridId())));
}
return projectTopics;
}
@Override
public List<MyCreateTopicsResultDTO> listMyCreateTopics(String customerId, String userId, Integer pageNo, Integer pageSize) {
MyCreateTopicsFormDTO form = new MyCreateTopicsFormDTO();
form.setCustomerId(customerId);
form.setUserId(userId);
form.setPageNo(pageNo);
form.setPageSize(pageSize);
Result<List<com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO >> result = resiGroupOpenFeignClient.listMyCreateTopics(form);
if (!result.success()) {
throw new RenException(result.getCode(), result.getInternalMsg(), result.getMsg(), RenException.MessageMode.CODE_INTERNAL_EXTERNAL);
}
List<com.epmet.resi.group.dto.topic.result.MyCreateTopicsResultDTO > topics = result.getData();
return ConvertUtils.sourceToTarget(topics, MyCreateTopicsResultDTO.class);
}
/**
* @Description 个人中心-我发表的话题列表-已转议题列表
* @Param tokenDto
* @Param myShiftIssueTopicsResultDTO
* @author zxc
* @date 2020/11/13 3:42 下午
*/
@Override
public List<MyShiftIssueTopicsResultDTO> myShiftIssueTopics(TokenDto tokenDto, MyShiftIssueTopicsFormDTO myShiftIssueTopicsFormDTO) {
myShiftIssueTopicsFormDTO.setUserId(tokenDto.getUserId());
Result<List<MyShiftIssueTopicsResultDTO>> listResult = govIssueOpenFeignClient.myShiftIssueTopics(myShiftIssueTopicsFormDTO);
if (!listResult.success()){
throw new RenException("查询我发表的话题列表-已转议题列表失败......");
}
if (CollectionUtils.isEmpty(listResult.getData())){
return new ArrayList<>();
}
return listResult.getData();
}
}

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserAdviceDTO.java

@ -53,6 +53,16 @@ public class UserAdviceDTO implements Serializable {
*/
private String agencyId;
/**
* 组织pids
*/
private String agencyPids;
/**
* 组织parent name
*/
private String agencyAllParentName;
/**
* 组织名
*/

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/GridAuditingBadgeCountResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 网格待审核徽章总数
*
* @author yinzuomei@elink-cn.com
* @date 2020/11/12 15:39
*/
@Data
public class GridAuditingBadgeCountResultDTO implements Serializable {
private static final long serialVersionUID = 5685272249935546444L;
/**
* 网格id
*/
private String gridId;
/**
* 待审核徽章申请单总数
*/
private Long count;
}

9
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -431,4 +431,13 @@ public interface EpmetUserOpenFeignClient {
*/
@PostMapping("/epmetuser/badge/usershowbadge")
Result<Map<String,List<UserBadgeUnitFormDTO>>> userShowBadge(@RequestBody UserGroupFormDTO param);
/**
* @param gridIdList
* @author yinzuomei
* @description 根据网格id,查询每个网格有多少个徽章申请
* @Date 2020/11/12 15:41
**/
@PostMapping(value = "/epmetuser/badge/querygridauditingbadgecount",consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<GridAuditingBadgeCountResultDTO>> queryGridAuditingBadgeCount(@RequestBody List<String> gridIdList);
}

11
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -300,4 +300,15 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<Map<String, List<UserBadgeUnitFormDTO>>> userShowBadge(UserGroupFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "userShowBadge", param);
}
/**
* @param gridIdList
* @author yinzuomei
* @description 根据网格id, 查询每个网格有多少个徽章申请
* @Date 2020/11/12 15:41
**/
@Override
public Result<List<GridAuditingBadgeCountResultDTO>> queryGridAuditingBadgeCount(List<String> gridIdList) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "queryGridAuditingBadgeCount", gridIdList);
}
}

23
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java

@ -5,14 +5,14 @@ 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.BadgeAuditRecordResultDTO;
import com.epmet.dto.result.BadgeAuditingResultDTO;
import com.epmet.dto.result.BadgeDetailResultDTO;
import com.epmet.dto.result.BadgeListResultDTO;
import com.epmet.dto.result.*;
import com.epmet.redis.UserBadgeRedis;
import com.epmet.service.BadgeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@ -165,4 +165,17 @@ public class BadgeController {
ValidatorUtils.validateEntity(param);
return new Result<Map<String,List<UserBadgeUnitFormDTO>>>().ok(badgeRedis.batchObtainUserBadge(param.getCustomerId(),param.getUserIds()));
}
/**
* @param gridIdList
* @author yinzuomei
* @description 根据网格id, 查询每个网格有多少个徽章申请单
* @Date 2020/11/12 15:51
**/
@PostMapping("querygridauditingbadgecount")
public Result<List<GridAuditingBadgeCountResultDTO>> queryGridAuditingBadgeCount(@RequestBody List<String> gridIdList){
return new Result<List<GridAuditingBadgeCountResultDTO>>().ok(badgeService.queryGridAuditingBadgeCount(gridIdList));
}
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java

@ -159,4 +159,12 @@ public interface BadgeDao extends BaseDao<BadgeEntity> {
* @date 2020/11/6 14:46
*/
void insertBadge(BadgeDTO dto);
/**
* @param gridIdList
* @author yinzuomei
* @description 根据网格id, 查询每个网格有多少个徽章申请
* @Date 2020/11/12 15:59
**/
List<GridAuditingBadgeCountResultDTO> queryGridAuditingBadgeCount(@Param("gridIdList") List<String> gridIdList);
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/entity/UserAdviceEntity.java

@ -53,6 +53,16 @@ public class UserAdviceEntity extends BaseEpmetEntity {
*/
private String agencyId;
/**
* 组织pids
*/
private String agencyPids;
/**
* 组织parent name
*/
private String agencyAllParentName;
/**
* 组织名
*/

6
epmet-user/epmet-user-server/src/main/java/com/epmet/excel/UserAdviceExcel.java

@ -43,6 +43,12 @@ public class UserAdviceExcel {
@Excel(name = "组织ID")
private String agencyId;
@Excel(name = "组织PIDs")
private String agencyPids;
@Excel(name = "组织ParentName")
private String agencyAllParentName;
@Excel(name = "组织名")
private String agencyName;

13
epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java

@ -25,10 +25,7 @@ import com.epmet.dto.form.AddBadgeFormDTO;
import com.epmet.dto.form.BadgeAuditFormDTO;
import com.epmet.dto.form.BadgeFormDTO;
import com.epmet.dto.form.EditBadgeFormDTO;
import com.epmet.dto.result.BadgeAuditRecordResultDTO;
import com.epmet.dto.result.BadgeAuditingResultDTO;
import com.epmet.dto.result.BadgeDetailResultDTO;
import com.epmet.dto.result.BadgeListResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.BadgeEntity;
import java.util.List;
@ -182,4 +179,12 @@ public interface BadgeService extends BaseService<BadgeEntity> {
void audit(TokenDto tokenDto, BadgeAuditFormDTO formDTO);
void testCache();
/**
* @param gridIdList
* @author yinzuomei
* @description 根据网格id, 查询每个网格有多少个徽章申请
* @Date 2020/11/12 15:56
**/
List<GridAuditingBadgeCountResultDTO> queryGridAuditingBadgeCount(List<String> gridIdList);
}

19
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java

@ -39,10 +39,7 @@ import com.epmet.dto.BadgeDTO;
import com.epmet.dto.ResiUserBadgeDTO;
import com.epmet.dto.UserBadgeCertificateRecordDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.BadgeAuditRecordResultDTO;
import com.epmet.dto.result.BadgeAuditingResultDTO;
import com.epmet.dto.result.BadgeDetailResultDTO;
import com.epmet.dto.result.BadgeListResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.BadgeCertificationConfigEntity;
import com.epmet.entity.BadgeEntity;
import com.epmet.feign.EpmetMessageOpenFeignClient;
@ -415,4 +412,18 @@ public class BadgeServiceImpl extends BaseServiceImpl<BadgeDao, BadgeEntity> imp
System.out.println(cache);
}
/**
* @param gridIdList
* @author yinzuomei
* @description 根据网格id, 查询每个网格有多少个徽章申请
* @Date 2020/11/12 15:56
**/
@Override
public List<GridAuditingBadgeCountResultDTO> queryGridAuditingBadgeCount(List<String> gridIdList) {
if(CollectionUtils.isEmpty(gridIdList)){
return new ArrayList<>();
}
return baseDao.queryGridAuditingBadgeCount(gridIdList);
}
}

17
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java

@ -202,6 +202,10 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
AdviceDetailResultDTO adviceDetailResultDTO = new AdviceDetailResultDTO();
BeanUtils.copyProperties(userAdviceEntity, adviceDetailResultDTO);
adviceDetailResultDTO.setAdviceId(userAdviceEntity.getId());
//如果parentName不为空,拼接agencyName
if (StringUtils.isNotBlank(userAdviceEntity.getAgencyAllParentName())){
adviceDetailResultDTO.setAgencyName(userAdviceEntity.getAgencyAllParentName()+"-"+userAdviceEntity.getAgencyName());
}
//拼接建议类型
if (!"*".equals(userAdviceEntity.getAdviceType())) {
StringBuilder type = new StringBuilder();
@ -248,6 +252,8 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
//wrapper
QueryWrapper<UserAdviceEntity> wrapper = new QueryWrapper<>();
//del_flag
wrapper.eq("DEL_FLAG","0");
//客户Id
wrapper.eq(StringUtils.isNotBlank(dto.getCustomerId()), "CUSTOMER_ID", dto.getCustomerId());
//是否回复
@ -258,14 +264,19 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
wrapper.eq("REPLY_USER_ID", "");
wrapper.eq("REPLY_CONTENT", "");
}
// 组织id
wrapper.eq(StringUtils.isNotBlank(dto.getAgencyId()), "AGENCY_ID", dto.getAgencyId());
//建议类型
wrapper.like(StringUtils.isNotBlank(dto.getAdviceType()), "ADVICE_TYPE", dto.getAdviceType());
//开始时间
wrapper.ge(dto.getStartTime() != null, "CREATED_TIME", dto.getStartTime());
//结束时间
wrapper.le(dto.getEndTime() != null, "CREATED_TIME", dto.getEndTime());
// 组织id
if (StringUtils.isNotBlank(dto.getAgencyId())){
wrapper.and(wrapper1 ->wrapper1.eq("AGENCY_ID", dto.getAgencyId())
.or()
.like("AGENCY_PIDS", dto.getAgencyId()));
}
IPage<UserAdviceEntity> result = baseDao.selectPage(page, wrapper);
@ -341,6 +352,8 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
Result<CustomerAgencyDTO> agencyById = govOrgOpenFeignClient.getAgencyById(gridInfoResultDTOResult.getData().getParentAgencyId());
if (agencyById.success()){
userAdviceDTO.setAgencyName(agencyById.getData().getAllParentName());
userAdviceDTO.setAgencyAllParentName(agencyById.getData().getAllParentName());
userAdviceDTO.setAgencyPids(agencyById.getData().getPids());
}else {
logger.error("agencyId:{},获取组织详情失败",gridInfoResultDTOResult.getData().getParentAgencyId());
}

44
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.7__add_useradvice.sql

@ -0,0 +1,44 @@
CREATE TABLE `user_advice` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID',
`CUSTOMER_NAME` varchar(64) NOT NULL COMMENT '客户名',
`AGENCY_ID` varchar(64) NOT NULL COMMENT '组织ID',
`AGENCY_PIDS` varchar(1024) NOT NULL COMMENT '组织PIDs',
`AGENCY_ALL_PARENT_NAME` varchar(1024) COMMENT '组织parent name',
`AGENCY_NAME` varchar(64) NOT NULL COMMENT '组织名',
`GRID_ID` varchar(64) NOT NULL COMMENT '网格ID',
`GRID_NAME` varchar(64) NOT NULL COMMENT '网格名',
`USER_ID` varchar(64) NOT NULL COMMENT 'userid',
`USER_NAME` varchar(32) NOT NULL COMMENT '用户姓名',
`REG_PHONE` varchar(32) NOT NULL COMMENT '用户注册手机号',
`ADVICE_CONTENT` varchar(500) NOT NULL COMMENT '建议描述',
`PHONE` varchar(32) DEFAULT NULL COMMENT '填写手机号',
`ADVICE_TIME` datetime NOT NULL COMMENT '建议时间',
`ADVICE_TYPE` varchar(32) DEFAULT NULL COMMENT '问题分类(gov政府software软件,逗号分隔)',
`REPLY_CONTENT` varchar(500) DEFAULT NULL COMMENT '回复内容',
`REPLY_USER_ID` varchar(64) DEFAULT NULL COMMENT '回复人id',
`REPLY_USER_NAME` varchar(32) DEFAULT NULL COMMENT '回复人姓名',
`REPLY_TIME` datetime DEFAULT NULL COMMENT '回复时间',
`GOV_CONTENT` varchar(500) DEFAULT NULL COMMENT '政府存证文字',
`DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标志',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户建议表';
CREATE TABLE `user_advice_img` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`ADVICE_ID` varchar(64) NOT NULL COMMENT '建议id',
`TYPE` varchar(10) NOT NULL COMMENT '图片类型,resi是用户上传的建议图片,oper是运营上传的代替政府回复的存证',
`IMG_URL` varchar(255) NOT NULL COMMENT '图片url',
`DEL_FLAG` varchar(1) NOT NULL COMMENT '删除标志',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户建议图片';

15
epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml

@ -252,4 +252,19 @@
) AS temp ORDER BY temp.UPDATED_TIME DESC
</select>
<!-- 根据网格id, 查询每个网格有多少个徽章申请 -->
<select id="queryGridAuditingBadgeCount" resultType="com.epmet.dto.result.GridAuditingBadgeCountResultDTO">
SELECT
m.GRID_ID as gridId,
count(1) as count
FROM
user_badge_certificate_record m
WHERE
m.DEL_FLAG = '0'
AND m.AUDIT_STATUS = 'auditing'
<foreach collection="gridIdList" item="gridId" open="AND ( " separator=" OR " close=" ) ">
m.GRID_ID =#{gridId}
</foreach>
group by m.GRID_ID
</select>
</mapper>

2
epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml

@ -8,6 +8,8 @@
<result property="customerId" column="CUSTOMER_ID"/>
<result property="customerName" column="CUSTOMER_NAME"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="agencyPids" column="AGENCY_PIDS"/>
<result property="agencyAllParentName" column="AGENCY_ALL_PARENT_NAME"/>
<result property="agencyName" column="AGENCY_NAME"/>
<result property="gridId" column="GRID_ID"/>
<result property="gridName" column="GRID_NAME"/>

Loading…
Cancel
Save