diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 75ff263b54..e0e5cb9608 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -284,4 +284,14 @@ public interface GovOrgOpenFeignClient { */ @PostMapping("/gov/org/grid/selectorginfo") Result> selectOrgInfo(@RequestBody OrgInfoFormDTO orgInfoFormDTO); + + /** + * @param gridIdList + * @return + * @Description 根据网格Id集合获取网格列表信息 + * @Author sun + */ + @PostMapping("/gov/org/customergrid/getgridlistbygridids") + Result> getGridListByGridIds(List gridIdList); + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 0d164abfed..0a5cab1af6 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -166,4 +166,9 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { public Result> selectOrgInfo(OrgInfoFormDTO orgInfoFormDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectOrgInfo", orgInfoFormDTO); } + + @Override + public Result> getGridListByGridIds(List gridIdList) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridListByGridIds", gridIdList); + } } diff --git a/epmet-module/gov-project/gov-project-client/pom.xml b/epmet-module/gov-project/gov-project-client/pom.xml index 4533eba408..6bf188e6e8 100644 --- a/epmet-module/gov-project/gov-project-client/pom.xml +++ b/epmet-module/gov-project/gov-project-client/pom.xml @@ -17,5 +17,11 @@ epmet-commons-tools 2.0.0 + + com.epmet + resi-mine-client + 2.0.0 + compile + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPartProjectsResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPartProjectsResultDTO.java new file mode 100644 index 0000000000..6375992bab --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPartProjectsResultDTO.java @@ -0,0 +1,53 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @Description 个人中心-我参与的项目列表-接口返参 + * @Auth sun + */ +@Data +public class MyPartProjectsResultDTO implements Serializable { + + private static final long serialVersionUID = 2081387920547808112L; + + /** + * 项目id + */ + private String projectId; + + /** + * 话题发表于哪个网格 + */ + private String topicReleaseGridName; + + /** + * 项目标题 + */ + private String projectTitle; + + /** + * 当前处理部门 + */ + private List departmentNameList; + + /** + * 转项目时间。时间戳 + */ + private Long shiftProjectTime; + + /** + * 议题Id,用户数据整合使用(项目出自哪个网格"组织-网格") + */ + @JsonIgnore + private String issueId; + /** + * 项目状态(待处理 pending,结案closed)用于查询当前处理部门信息 + */ + @JsonIgnore + private String status; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java index 17bd06d5df..24123a18d6 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java @@ -4,9 +4,11 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.ProcessListFormDTO; import com.epmet.dto.ProjectDTO; 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.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; import com.epmet.commons.tools.constant.ServiceConstant; @@ -46,4 +48,11 @@ public interface GovProjectOpenFeignClient { @PostMapping("gov/project/trace/processlistnotrule") Result getProcessList(@RequestBody ProcessListFormDTO fromDTO); + + /** + * @Description 根据议题Id集合查询对应的项目信息 + * @author sun + */ + @PostMapping("gov/project/project/issuetoprojectlist") + Result> issueToProjectList(MyPartProjectsFormDTO formDTO); } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java index b0bb14a9eb..9326b0cdaa 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java @@ -6,10 +6,12 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.ProcessListFormDTO; 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.feign.GovProjectOpenFeignClient; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.stereotype.Component; import java.util.List; @@ -44,4 +46,9 @@ public class GovProjectOpenFeignClientFallback implements GovProjectOpenFeignCli public Result getProcessList(ProcessListFormDTO fromDTO) { return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProcessList", fromDTO); } + + @Override + public Result> issueToProjectList(MyPartProjectsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "issueToProjectList", formDTO); + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index 345fb495a3..d8309d93af 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -34,11 +34,9 @@ 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.result.IssueProjectResultDTO; -import com.epmet.dto.result.LatestListResultDTO; -import com.epmet.dto.result.PendProjectListResultDTO; -import com.epmet.dto.result.ShiftProjectResultDTO; +import com.epmet.dto.result.*; import com.epmet.excel.ProjectExcel; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.ProjectService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -183,4 +181,15 @@ public class ProjectController { projectService.projectProcessCostTimeDataCompensation(); return new Result(); } + + /** + * @param formDTO + * @Author sun + * @Description 根据议题Id集合查询对应的项目信息 + **/ + @PostMapping("issuetoprojectlist") + public Result> issueToProjectList(@RequestBody MyPartProjectsFormDTO formDTO) { + return new Result>().ok(projectService.issueToProjectList(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 0584789909..5657589210 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -24,6 +24,7 @@ import com.epmet.dto.form.LatestListFormDTO; import com.epmet.dto.form.ProjectListFromDTO; 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.entity.ProjectEntity; import org.apache.ibatis.annotations.Mapper; @@ -130,4 +131,12 @@ public interface ProjectDao extends BaseDao { * @date 2020.10.26 11:20 */ List selectAllCustomerIds(); + + /** + * @Author sun + * @Description 根据议题ID集合查询对应的项目基本信息 + **/ + List selectIssueProjectList(@Param("customerId") String customerId, @Param("issueList") List issueList, + @Param("pageIndex") int pageIndex, @Param("pageSize") Integer pageSize); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 2050b5921e..4f339c3a3f 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -24,6 +24,7 @@ import com.epmet.dto.ProjectDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.ProjectEntity; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import java.util.List; import java.util.Map; @@ -216,4 +217,11 @@ public interface ProjectService extends BaseService { * @date 2020.10.26 10:54 */ void projectProcessCostTimeDataCompensation(); + + /** + * @param formDTO + * @Author sun + * @Description 根据议题Id集合查询对应的项目信息 + **/ + List issueToProjectList(MyPartProjectsFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 7808c44d57..f247526cff 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -42,6 +42,7 @@ import com.epmet.dto.result.*; import com.epmet.entity.*; import com.epmet.feign.*; import com.epmet.redis.ProjectRedis; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.*; import org.apache.commons.collections4.CollectionUtils; import lombok.extern.slf4j.Slf4j; @@ -1362,4 +1363,29 @@ public class ProjectServiceImpl extends BaseServiceImpl issueToProjectList(MyPartProjectsFormDTO formDTO) { + //1.根据议题ID集合查询对应的项目基本信息 + int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); + List list = baseDao.selectIssueProjectList(formDTO.getCustomerId(), formDTO.getIssueList(), pageIndex, formDTO.getPageSize()); + //2.使用已有方法查询项目当前处理部门信息 + list.forEach(l -> { + if (ProjectConstant.CLOSED.equals(l.getStatus())) { + l.setDepartmentNameList(new ArrayList()); + } else { + ProjectDTO dto = new ProjectDTO(); + dto.setId(l.getProjectId()); + l.setDepartmentNameList(baseDao.selectDepartmentNameList(dto)); + } + }); + + return list; + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index baf33ff218..985077a6ac 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -206,4 +206,24 @@ DEL_FLAG = '0' + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/pom.xml b/epmet-module/resi-group/resi-group-client/pom.xml index 47b577fe72..f61f543fd3 100644 --- a/epmet-module/resi-group/resi-group-client/pom.xml +++ b/epmet-module/resi-group/resi-group-client/pom.xml @@ -26,6 +26,12 @@ io.springfox springfox-swagger-ui + + com.epmet + resi-mine-client + 2.0.0 + compile + diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/IssueGridResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/IssueGridResultDTO.java new file mode 100644 index 0000000000..5be2656812 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/IssueGridResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.resi.group.dto.topic.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * @Description 话题对应的议题及所属网格数据 + * @Auth sun + */ +@Data +public class IssueGridResultDTO implements Serializable { + private static final long serialVersionUID = -3495808492616727671L; + + /** + * 网格Id + * */ + private String gridId; + + /** + * 议题Id + * */ + private String issueId; + +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 58ff87be1e..51cfb19675 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -1,9 +1,15 @@ package com.epmet.resi.group.feign; +import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.cloud.openfeign.FeignClient; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -13,4 +19,12 @@ import com.epmet.resi.group.feign.fallback.ResiGroupOpenFeignClientFallback; */ @FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupOpenFeignClientFallback.class) public interface ResiGroupOpenFeignClient { + + /** + * @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合 + * @author sun + */ + @PostMapping(value = "/resi/group/comment/topictoissuelist") + Result> topicToIssueList(MyPartProjectsFormDTO formDTO); + } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index df1c7bebf2..c64d520b77 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -1,8 +1,15 @@ package com.epmet.resi.group.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.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.stereotype.Component; +import java.util.List; + /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 * @@ -11,4 +18,10 @@ import org.springframework.stereotype.Component; */ @Component public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClient { + + @Override + public Result> topicToIssueList(MyPartProjectsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicToIssueList", formDTO); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java index 3c214ff828..8685514486 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java @@ -8,6 +8,8 @@ import com.epmet.modules.topic.service.ResiTopicCommentService; import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO; import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO; import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO; +import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -70,4 +72,13 @@ public class ResiCommentController { ValidatorUtils.validateEntity(queryCommentFormDTO); return commentService.getCommentListGov(queryCommentFormDTO); } + + /** + * @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合 + * @author sun + */ + @PostMapping("topictoissuelist") + public Result> topicToIssueList(@RequestBody MyPartProjectsFormDTO formDTO) { + return new Result>().ok(commentService.topicToIssueList(formDTO)); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java index 76ecd5dafd..fd96ebed32 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java @@ -22,7 +22,9 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.comment.entity.ResiTopicCommentEntity; import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO; import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -52,4 +54,10 @@ public interface ResiTopicCommentDao extends BaseDao { * @Date 2020.04.01 17:15 **/ List getCommentList(ResiQueryCommentFormDTO queryCommentFormDTO); + + /** + * @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合 + * @author sun + */ + List selectTopicList(@Param("userId") String userId); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index 80c3b4fb79..1cc8f528fe 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java @@ -154,4 +154,11 @@ public interface ResiTopicDao extends BaseDao { CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); List listMyTopics(@Param("userId") String userId, @Param("customerId") String customerId); + + /** + * @Description 根据话题Id集合查询对应的已转成议题的议题Id集合 + * @author sun + */ + List selectIssueList(@Param("topicList") List topicList); + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java index 107fffcc73..6aa26dbe80 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java @@ -26,6 +26,8 @@ import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO; import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO; import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO; import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO; +import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import java.util.List; @@ -128,4 +130,9 @@ public interface ResiTopicCommentService extends BaseService> getCommentListGov(ResiQueryCommentFormDTO commentFormDTO); + /** + * @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合 + * @author sun + */ + List topicToIssueList(MyPartProjectsFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java index ae74578dcd..6f3b1557d3 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java @@ -43,6 +43,7 @@ import com.epmet.modules.member.dao.ResiGroupMemberDao; import com.epmet.modules.member.redis.ResiGroupMemberRedis; import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.topic.dao.ResiTopicCommentDao; +import com.epmet.modules.topic.dao.ResiTopicDao; import com.epmet.modules.topic.service.ResiTopicCommentService; import com.epmet.modules.topic.service.ResiTopicService; import com.epmet.modules.utils.ModuleConstant; @@ -56,7 +57,9 @@ import com.epmet.resi.group.dto.member.result.ResiGroupMemberInfoRedisResultDTO; import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO; import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO; +import com.epmet.resi.group.dto.topic.result.IssueGridResultDTO; import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO; +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; @@ -94,6 +97,8 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl topicToIssueList(MyPartProjectsFormDTO formDTO) { + List list = new ArrayList<>(); + //1.查询用户评论过的切不是自己发起的话题列表 + List topicList = baseDao.selectTopicList(formDTO.getUserId()); + if (topicList.size() < NumConstant.ONE) { + return list; + } + //2.查询话题Id集合对应的已转成议题的议题Id集合 + return resiTopicdDao.selectIssueList(topicList); + } + } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml index c51f3cdf04..d154e20d6e 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml @@ -70,4 +70,22 @@ #{pageNo},#{pageSize} + + diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index 71c551541e..a735f0f565 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -457,5 +457,21 @@ where t.CREATED_BY = #{userId} order by t.CREATED_TIME desc + + + diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyPartProjectsFormDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyPartProjectsFormDTO.java new file mode 100644 index 0000000000..6ff9ab13ec --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyPartProjectsFormDTO.java @@ -0,0 +1,37 @@ +package com.epmet.resi.mine.dto.from; + +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @Description 个人中心-我参与的项目列表-接口入参 + * @Auth sun + */ +@Data +public class MyPartProjectsFormDTO implements Serializable { + private static final long serialVersionUID = -6534841370041338474L; + @NotBlank(message = "客户Id不能为空", groups = {MyPartProjectsFormDTO.MyProject.class}) + private String customerId; + /** + * 当前页 + * */ + @Min(value = 1) + private Integer pageNo; + /** + * 每页数量 + * */ + private Integer pageSize = 20; + /** + * token中用户Id + */ + private String userId; + /** + * 议题Id集合 + */ + private List issueList; + public interface MyProject {} +} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java index 5723725dfa..ae2ef2eff6 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java @@ -2,11 +2,16 @@ 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.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.result.MyPartIssuesResultDTO; +import com.epmet.dto.result.MyPartProjectsResultDTO; import com.epmet.modules.person.service.IssueService; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; 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; @@ -22,6 +27,8 @@ public class IssueController { @Autowired private IssueService issueService; + @Autowired + private LoginUserUtil loginUserUtil; /** * @Description 个人中心-我参与的议题列表 @@ -34,4 +41,15 @@ public class IssueController { return new Result>().ok(issueService.myPartIssues(tokenDto)); } + /** + * @Description 个人中心-我参与的项目列表 + * @author sun + */ + @PostMapping("my-part-projects") + public Result> myPartProjects(@RequestBody MyPartProjectsFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, MyPartProjectsFormDTO.MyProject.class); + formDTO.setUserId(loginUserUtil.getLoginUserId()); + return new Result>().ok(issueService.myPartProjects(formDTO)); + } + } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java index 4d2758c707..99377c2dba 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java @@ -2,6 +2,8 @@ package com.epmet.modules.person.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.dto.result.MyPartIssuesResultDTO; +import com.epmet.dto.result.MyPartProjectsResultDTO; +import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import java.util.List; @@ -19,4 +21,9 @@ public interface IssueService { */ List myPartIssues(TokenDto tokenDto); + /** + * @Description 个人中心-我参与的项目列表 + * @author sun + */ + List myPartProjects(MyPartProjectsFormDTO formDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java index 832ad74282..5d690daca8 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java @@ -1,19 +1,30 @@ package com.epmet.modules.person.service.impl; +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.dto.form.MyPartIssuesFormDTO; +import com.epmet.dto.result.AllGridsByUserIdResultDTO; import com.epmet.dto.result.MyPartIssuesResultDTO; +import com.epmet.dto.result.MyPartProjectsResultDTO; 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.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.logging.Log; +import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @Author zxc @@ -23,8 +34,16 @@ import java.util.List; @Slf4j public class IssueServiceImpl implements IssueService { + private final Log logger = LogFactory.getLog(getClass()); @Autowired private GovIssueOpenFeignClient issueOpenFeignClient; + @Autowired + private ResiGroupOpenFeignClient resiGroupOpenFeignClient; + @Autowired + private GovProjectOpenFeignClient govProjectOpenFeignClient; + @Autowired + private GovOrgOpenFeignClient govOrgOpenFeignClient; + /** * @Description 个人中心-我参与的议题列表 @@ -45,4 +64,64 @@ public class IssueServiceImpl implements IssueService { } return listResult.getData(); } + + /** + * @Description 个人中心-我参与的项目列表 + * @author sun + */ + @Override + public List myPartProjects(MyPartProjectsFormDTO formDTO) { + List resultList = new ArrayList<>(); + //1.查询用户评论过的且以转成议题的议题信息,不包含自己发表的且已转成议题的话题 + Result> result = resiGroupOpenFeignClient.topicToIssueList(formDTO); + if (!result.success()) { + logger.error(String.format("我参与的项目列表->查询用户参与的议题数据失败,用户Id:%s", formDTO.getUserId())); + throw new RenException("获取用户参与的议题数据失败"); + } + List issueGridList = result.getData(); + if (issueGridList.size() < NumConstant.ONE) { + return resultList; + } + //议题Id集合 + List issueIdList = issueGridList.stream().map(IssueGridResultDTO::getIssueId).collect(Collectors.toList()); + issueIdList = issueIdList.stream().distinct().collect(Collectors.toList()); + //网格Id集合 + List gridIdList = issueGridList.stream().map(IssueGridResultDTO::getGridId).collect(Collectors.toList()); + gridIdList = gridIdList.stream().distinct().collect(Collectors.toList()); + + //2.根据议题Id集合查询对应的项目信息 + formDTO.setIssueList(issueIdList); + Result> projectResult = govProjectOpenFeignClient.issueToProjectList(formDTO); + if (!projectResult.success()) { + logger.error(String.format("我参与的项目列表->查询用户参与的项目数据失败,用户Id:%s", formDTO.getUserId())); + throw new RenException("获取用户参与的项目数据失败"); + } + if (projectResult.getData().size() < NumConstant.ONE) { + return resultList; + } + resultList = projectResult.getData(); + + //3.根据网格Id集合查询网格信息 + Result> gridResult = govOrgOpenFeignClient.getGridListByGridIds(gridIdList); + if (!gridResult.success()) { + logger.error("我参与的项目列表->获取网格信息失败"); + throw new RenException("获取用户参与的项目数据失败"); + } + List gridList = gridResult.getData(); + + //4.封装数据并返回 + resultList.forEach(re -> { + issueGridList.forEach(is -> { + if (re.getIssueId().equals(is.getIssueId())) { + gridList.forEach(g -> { + if (is.getGridId().equals(g.getGridId())) { + re.setTopicReleaseGridName(g.getGridName()); + } + }); + } + }); + }); + + return resultList; + } }