Browse Source

个人中心-我参与的项目列表

master
sunyuchao 5 years ago
parent
commit
fe99f824be
  1. 10
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  2. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
  3. 6
      epmet-module/gov-project/gov-project-client/pom.xml
  4. 53
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/MyPartProjectsResultDTO.java
  5. 9
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/GovProjectOpenFeignClient.java
  6. 7
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/feign/fallback/GovProjectOpenFeignClientFallback.java
  7. 17
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
  8. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  9. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  10. 26
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  11. 20
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml
  12. 6
      epmet-module/resi-group/resi-group-client/pom.xml
  13. 28
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/IssueGridResultDTO.java
  14. 14
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  15. 13
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  16. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java
  17. 8
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java
  18. 7
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  19. 7
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java
  20. 21
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  21. 18
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml
  22. 16
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  23. 37
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyPartProjectsFormDTO.java
  24. 18
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/controller/IssueController.java
  25. 7
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/IssueService.java
  26. 79
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/person/service/impl/IssueServiceImpl.java

10
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<List<OrgInfoResultDTO>> selectOrgInfo(@RequestBody OrgInfoFormDTO orgInfoFormDTO);
/**
* @param gridIdList
* @return
* @Description 根据网格Id集合获取网格列表信息
* @Author sun
*/
@PostMapping("/gov/org/customergrid/getgridlistbygridids")
Result<List<AllGridsByUserIdResultDTO>> getGridListByGridIds(List<String> gridIdList);
}

5
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<List<OrgInfoResultDTO>> selectOrgInfo(OrgInfoFormDTO orgInfoFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "selectOrgInfo", orgInfoFormDTO);
}
@Override
public Result<List<AllGridsByUserIdResultDTO>> getGridListByGridIds(List<String> gridIdList) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridListByGridIds", gridIdList);
}
}

6
epmet-module/gov-project/gov-project-client/pom.xml

@ -17,5 +17,11 @@
<artifactId>epmet-commons-tools</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>resi-mine-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

53
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<String> departmentNameList;
/**
* 转项目时间时间戳
*/
private Long shiftProjectTime;
/**
* 议题Id用户数据整合使用(项目出自哪个网格"组织-网格")
*/
@JsonIgnore
private String issueId;
/**
* 项目状态(待处理 pending结案closed)用于查询当前处理部门信息
*/
@JsonIgnore
private String status;
}

9
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<ProcessAndCurrentDeptResultDTO> getProcessList(@RequestBody ProcessListFormDTO fromDTO);
/**
* @Description 根据议题Id集合查询对应的项目信息
* @author sun
*/
@PostMapping("gov/project/project/issuetoprojectlist")
Result<List<MyPartProjectsResultDTO>> issueToProjectList(MyPartProjectsFormDTO formDTO);
}

7
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<ProcessAndCurrentDeptResultDTO> getProcessList(ProcessListFormDTO fromDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "getProcessList", fromDTO);
}
@Override
public Result<List<MyPartProjectsResultDTO>> issueToProjectList(MyPartProjectsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_PROJECT_SERVER, "issueToProjectList", formDTO);
}
}

17
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<List<MyPartProjectsResultDTO>> issueToProjectList(@RequestBody MyPartProjectsFormDTO formDTO) {
return new Result<List<MyPartProjectsResultDTO>>().ok(projectService.issueToProjectList(formDTO));
}
}

9
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<ProjectEntity> {
* @date 2020.10.26 11:20
*/
List<String> selectAllCustomerIds();
/**
* @Author sun
* @Description 根据议题ID集合查询对应的项目基本信息
**/
List<MyPartProjectsResultDTO> selectIssueProjectList(@Param("customerId") String customerId, @Param("issueList") List<String> issueList,
@Param("pageIndex") int pageIndex, @Param("pageSize") Integer pageSize);
}

8
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<ProjectEntity> {
* @date 2020.10.26 10:54
*/
void projectProcessCostTimeDataCompensation();
/**
* @param formDTO
* @Author sun
* @Description 根据议题Id集合查询对应的项目信息
**/
List<MyPartProjectsResultDTO> issueToProjectList(MyPartProjectsFormDTO formDTO);
}

26
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<ProjectDao, ProjectEntit
ProjectOrgPeriodResultDTO target = dest.get(seq);
if(null != target) target.setPeriodTillReplyFirstly(staffResponseTraceUnit.getCreatedTime());
}
/**
* @param formDTO
* @Author sun
* @Description 根据议题Id集合查询对应的项目信息
**/
@Override
public List<MyPartProjectsResultDTO> issueToProjectList(MyPartProjectsFormDTO formDTO) {
//1.根据议题ID集合查询对应的项目基本信息
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
List<MyPartProjectsResultDTO> list = baseDao.selectIssueProjectList(formDTO.getCustomerId(), formDTO.getIssueList(), pageIndex, formDTO.getPageSize());
//2.使用已有方法查询项目当前处理部门信息
list.forEach(l -> {
if (ProjectConstant.CLOSED.equals(l.getStatus())) {
l.setDepartmentNameList(new ArrayList<String>());
} else {
ProjectDTO dto = new ProjectDTO();
dto.setId(l.getProjectId());
l.setDepartmentNameList(baseDao.selectDepartmentNameList(dto));
}
});
return list;
}
}

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

@ -206,4 +206,24 @@
DEL_FLAG = '0'
</select>
<select id="selectIssueProjectList" resultType="com.epmet.dto.result.MyPartProjectsResultDTO">
SELECT
id AS "projectId",
title AS "projectTitle",
UNIX_TIMESTAMP(created_time) AS "shiftProjectTime",
origin_id AS "issueId",
status AS "status"
FROM
project
WHERE
del_flag = '0'
AND origin = 'issue'
AND customer_id = #{customerId}
<foreach collection="issueList" item="issueId" open="AND( " separator=" OR " index="index" close=")">
origin_id = #{issueId}
</foreach>
ORDER BY CREATED_TIME DESC
LIMIT #{pageIndex}, #{pageSize}
</select>
</mapper>

6
epmet-module/resi-group/resi-group-client/pom.xml

@ -26,6 +26,12 @@
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>resi-mine-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

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

14
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<List<IssueGridResultDTO>> topicToIssueList(MyPartProjectsFormDTO formDTO);
}

13
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<List<IssueGridResultDTO>> topicToIssueList(MyPartProjectsFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicToIssueList", formDTO);
}
}

11
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<List<IssueGridResultDTO>> topicToIssueList(@RequestBody MyPartProjectsFormDTO formDTO) {
return new Result<List<IssueGridResultDTO>>().ok(commentService.topicToIssueList(formDTO));
}
}

8
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<ResiTopicCommentEntity> {
* @Date 2020.04.01 17:15
**/
List<ResiCommentResultDTO> getCommentList(ResiQueryCommentFormDTO queryCommentFormDTO);
/**
* @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合
* @author sun
*/
List<String> selectTopicList(@Param("userId") String userId);
}

7
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<ResiTopicEntity> {
CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO);
List<MyTopicsResultDTO> listMyTopics(@Param("userId") String userId, @Param("customerId") String customerId);
/**
* @Description 根据话题Id集合查询对应的已转成议题的议题Id集合
* @author sun
*/
List<IssueGridResultDTO> selectIssueList(@Param("topicList") List<String> topicList);
}

7
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<ResiTopicCommentEnt
**/
Result<List<ResiCommentResultDTO>> getCommentListGov(ResiQueryCommentFormDTO commentFormDTO);
/**
* @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合
* @author sun
*/
List<IssueGridResultDTO> topicToIssueList(MyPartProjectsFormDTO formDTO);
}

21
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<ResiTopicCommen
@Autowired
ResiGroupMemberDao resiGroupMemberDao;
ResiTopicDao resiTopicdDao;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@Value("${openapi.scan.method.textSyncScan}")
@ -347,4 +352,20 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
}
}
/**
* @Description 查询用户参与的且不是自己发表的话题对应的议题Id集合
* @author sun
*/
@Override
public List<IssueGridResultDTO> topicToIssueList(MyPartProjectsFormDTO formDTO) {
List<IssueGridResultDTO> list = new ArrayList<>();
//1.查询用户评论过的切不是自己发起的话题列表
List<String> topicList = baseDao.selectTopicList(formDTO.getUserId());
if (topicList.size() < NumConstant.ONE) {
return list;
}
//2.查询话题Id集合对应的已转成议题的议题Id集合
return resiTopicdDao.selectIssueList(topicList);
}
}

18
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml

@ -70,4 +70,22 @@
#{pageNo},#{pageSize}
</select>
<select id="selectTopicList" resultType="java.lang.String">
SELECT
DISTINCT(topic_id)
FROM
resi_topic_comment
WHERE
del_flag = '0'
AND created_by = #{userId}
AND topic_id NOT IN (
SELECT
id
FROM
resi_topic
WHERE
created_by = #{userId}
)
</select>
</mapper>

16
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
</select>
<select id="selectIssueList" resultType="com.epmet.resi.group.dto.topic.result.IssueGridResultDTO">
SELECT
rt.issue_id AS "gridId",
rg.grid_id AS "issueId"
FROM
resi_topic rt
INNER JOIN resi_group rg ON rt.group_id = rg.id
WHERE
rt.del_flag = '0'
AND rt.shift_issue = '1'<!-- 话题转议题标志 -->
<foreach collection="topicList" item="topicId" open="AND( " separator=" OR " index="index" close=")">
rt.id = #{topicId}
</foreach>
</select>
</mapper>

37
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<String> issueList;
public interface MyProject {}
}

18
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<List<MyPartIssuesResultDTO>>().ok(issueService.myPartIssues(tokenDto));
}
/**
* @Description 个人中心-我参与的项目列表
* @author sun
*/
@PostMapping("my-part-projects")
public Result<List<MyPartProjectsResultDTO>> myPartProjects(@RequestBody MyPartProjectsFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, MyPartProjectsFormDTO.MyProject.class);
formDTO.setUserId(loginUserUtil.getLoginUserId());
return new Result<List<MyPartProjectsResultDTO>>().ok(issueService.myPartProjects(formDTO));
}
}

7
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<MyPartIssuesResultDTO> myPartIssues(TokenDto tokenDto);
/**
* @Description 个人中心-我参与的项目列表
* @author sun
*/
List<MyPartProjectsResultDTO> myPartProjects(MyPartProjectsFormDTO formDTO);
}

79
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<MyPartProjectsResultDTO> myPartProjects(MyPartProjectsFormDTO formDTO) {
List<MyPartProjectsResultDTO> resultList = new ArrayList<>();
//1.查询用户评论过的且以转成议题的议题信息,不包含自己发表的且已转成议题的话题
Result<List<IssueGridResultDTO>> result = resiGroupOpenFeignClient.topicToIssueList(formDTO);
if (!result.success()) {
logger.error(String.format("我参与的项目列表->查询用户参与的议题数据失败,用户Id:%s", formDTO.getUserId()));
throw new RenException("获取用户参与的议题数据失败");
}
List<IssueGridResultDTO> issueGridList = result.getData();
if (issueGridList.size() < NumConstant.ONE) {
return resultList;
}
//议题Id集合
List<String> issueIdList = issueGridList.stream().map(IssueGridResultDTO::getIssueId).collect(Collectors.toList());
issueIdList = issueIdList.stream().distinct().collect(Collectors.toList());
//网格Id集合
List<String> gridIdList = issueGridList.stream().map(IssueGridResultDTO::getGridId).collect(Collectors.toList());
gridIdList = gridIdList.stream().distinct().collect(Collectors.toList());
//2.根据议题Id集合查询对应的项目信息
formDTO.setIssueList(issueIdList);
Result<List<MyPartProjectsResultDTO>> 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<List<AllGridsByUserIdResultDTO>> gridResult = govOrgOpenFeignClient.getGridListByGridIds(gridIdList);
if (!gridResult.success()) {
logger.error("我参与的项目列表->获取网格信息失败");
throw new RenException("获取用户参与的项目数据失败");
}
List<AllGridsByUserIdResultDTO> 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;
}
}

Loading…
Cancel
Save