Browse Source

Merge branch 'dev_personal_center' into dev_temp

dev_shibei_match
wxz 5 years ago
parent
commit
67c3bc6d14
  1. 8
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/RenException.java
  2. 2
      epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/RemindServiceImpl.java
  3. 38
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/MyShiftIssueTopicsFormDTO.java
  4. 43
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/MyShiftIssueTopicsResultDTO.java
  5. 11
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java
  6. 7
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java
  7. 12
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java
  8. 9
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueDao.java
  9. 10
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java
  10. 38
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  11. 7
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java
  12. 19
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueDao.xml
  13. 20
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ProjectByCreateTopicUserFormDTO.java
  14. 18
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectOfCreateTopicUserResultDTO.java
  15. 11
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
  16. 7
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
  17. 20
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
  18. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  19. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  20. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  21. 9
      epmet-module/gov-project/gov-project-server/src/main/resources/db/migration/V0.0.4__alter_project_related_personnel.sql
  22. 18
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  23. 2
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectRelatedPersonnelDao.xml
  24. 20
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/MyCreateTopicsFormDTO.java
  25. 14
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/TopicIdListFormDTO.java
  26. 2
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/MyCreateTopicsResultDTO.java
  27. 21
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  28. 11
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  29. 19
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  30. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  31. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  32. 43
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  33. 14
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  34. 13
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyCreateTopicsFormDTO.java
  35. 38
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftIssueTopicsFormDTO.java
  36. 8
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyShiftProjectTopicsFormDTO.java
  37. 13
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyCreateTopicsResultDTO.java
  38. 41
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftIssueTopicsResultDTO.java
  39. 15
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyShiftProjectTopicsResultDTO.java
  40. 50
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/TopicController.java
  41. 39
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/TopicService.java
  42. 3
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java
  43. 112
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/TopicServiceImpl.java

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

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

@ -126,7 +126,7 @@ public class RemindServiceImpl implements RemindService {
}
}
} else {
logger.error(String.format("查询网昂个内待审核热心居民数失败,%s",resiGroupProcessingCountResult.getMsg()));
logger.error(String.format("查询网内待审核热心居民数失败,%s",resiGroupProcessingCountResult.getMsg()));
}
return false;
}

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

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

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

@ -8,6 +8,8 @@ import com.epmet.dto.form.MyPubIssuesAuditingFormDTO;
import com.epmet.dto.result.MyPartIssuesResultDTO;
import com.epmet.dto.result.MyPubIssuesAuditingResultDTO;
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;
@ -53,4 +55,13 @@ public interface GovIssueOpenFeignClient {
**/
@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);
}

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

@ -9,6 +9,8 @@ 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;
@ -35,4 +37,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient
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);
}
}

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

@ -167,5 +167,17 @@ public class IssueController {
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));
}
}

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

@ -167,4 +167,13 @@ public interface IssueDao extends BaseDao<IssueEntity> {
@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);
}

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

@ -235,4 +235,14 @@ public interface IssueService extends BaseService<IssueEntity> {
* @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);
}

38
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("查询议题来源小组名称失败......");
@ -893,4 +894,37 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
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.error("查询我创建的话题集合为空");
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;
}

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

@ -421,4 +421,23 @@
</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>

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

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

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

@ -4,10 +4,12 @@ import com.epmet.commons.tools.constant.ServiceConstant;
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.ProjectOfCreateTopicUserResultDTO;
import com.epmet.feign.fallback.GovProjectOpenFeignClientFallback;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.cloud.openfeign.FeignClient;
@ -64,4 +66,13 @@ public interface GovProjectOpenFeignClient {
**/
@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);
}

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

@ -5,10 +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.ProjectOfCreateTopicUserResultDTO;
import com.epmet.feign.GovProjectOpenFeignClient;
import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import org.springframework.stereotype.Component;
@ -62,4 +64,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli
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);
}
}

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

@ -17,7 +17,9 @@
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.AssertUtils;
@ -26,10 +28,7 @@ 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.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 +191,17 @@ public class ProjectController {
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);
}

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

@ -225,4 +225,12 @@ public interface ProjectService extends BaseService<ProjectEntity> {
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);
}

13
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;
@ -1409,4 +1410,16 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
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;
}
}

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

@ -3,3 +3,12 @@ SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '来源类型(话题:topic
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"/>

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

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

2
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,7 +3,7 @@ package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
@Data
public class MyTopicsResultDTO {
public class MyCreateTopicsResultDTO {
private String topicId;
private Long releaseTime;

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

@ -4,8 +4,11 @@ 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;
@ -86,4 +89,22 @@ public interface ResiGroupOpenFeignClient {
*/
@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);
}

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

@ -13,7 +13,9 @@ 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.resi.group.dto.topic.result.ParticipatedTopicUnitResultDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
@ -60,4 +62,13 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
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);
}
}

19
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,10 +265,10 @@ 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);
}
@ -285,5 +285,16 @@ public class ResiTopicController {
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));
}
}

11
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集合
@ -170,4 +171,12 @@ public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
* @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);
}

11
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,7 +269,7 @@ 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 个人中心-我参与过的话题
@ -280,4 +279,12 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @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);
}

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

@ -40,10 +40,7 @@ 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.OrgInfoResultDTO;
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;
@ -83,6 +80,8 @@ 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;
@ -1419,25 +1418,22 @@ 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);
List<MyCreateTopicsResultDTO> myTopics = resiTopicDao.listMyCreateTopics(userId, customerId);
HashMap<String, String> gridIdAndNames = new HashMap<>();
Set<String> gridIds = myTopics.stream().map(c -> c.getReleaseGridId()).collect(Collectors.toSet());
OrgInfoFormDTO form = new OrgInfoFormDTO();
form.setOrgType(OrgInfoConstant.GRID);
form.setOrgIds(new ArrayList<>(gridIds));
Result<List<OrgInfoResultDTO>> gridInfoResult = govOrgOpenFeignClient.selectOrgInfo(form);
if (gridInfoResult.success()) {
List<OrgInfoResultDTO> grids = gridInfoResult.getData();
for (OrgInfoResultDTO grid : grids) {
gridIdAndNames.put(grid.getOrgId(), grid.getOrgName());
}
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 (MyTopicsResultDTO myTopic : myTopics) {
for (MyCreateTopicsResultDTO myTopic : myTopics) {
myTopic.setReleaseGridName(gridIdAndNames.get(myTopic.getReleaseGridId()));
}
@ -1469,6 +1465,17 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
})).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);
}
}

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

@ -447,7 +447,7 @@
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,
@ -495,5 +495,17 @@
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;
}

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

@ -4,9 +4,16 @@ 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;
@ -28,6 +35,9 @@ public class TopicController {
@Autowired
private ResiGroupOpenFeignClient groupFeign;
@Autowired
private TopicService topicService;
/**
* @Description 个人中心-我参与过的话题
* @param param
@ -41,4 +51,44 @@ public class TopicController {
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));
}
}

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

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

@ -146,6 +146,9 @@ public class IssueServiceImpl implements IssueService {
if (!listResult.success()){
throw new RenException("查询我发起的议题列表-表决中失败......");
}
if (CollectionUtils.isEmpty(listResult.getData())){
return new ArrayList<>();
}
return listResult.getData();
}

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();
}
}
Loading…
Cancel
Save