From 504f293f6ef0a239d8e1d3b888d0906b5f33bcf8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 8 Dec 2021 22:54:45 +0800 Subject: [PATCH] zancun --- .../result/IssueProjectCategory.java | 19 +++++++ .../resigroup/form/UserTopicPageFormDTO.java | 19 +++++++ .../dto/resigroup/result/UserTopicResDTO.java | 26 ++++++++++ .../controller/ResiGroupController.java | 12 +++++ .../dataaggre/dao/govproject/ProjectDao.java | 4 +- .../dataaggre/dao/resigroup/ResiTopicDao.java | 10 ++++ .../service/govproject/GovProjectService.java | 9 ++++ .../impl/GovProjectServiceImpl.java | 33 ++++++++++++ .../service/resigroup/ResiGroupService.java | 4 ++ .../resigroup/impl/ResiGroupServiceImpl.java | 50 +++++++++++++++++-- .../mapper/govproject/ProjectDao.xml | 21 ++++++++ .../mapper/resigroup/ResiTopicDao.xml | 18 +++++++ 12 files changed, 220 insertions(+), 5 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java new file mode 100644 index 0000000000..e0a028ee3d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/IssueProjectCategory.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Set; + +@Data +public class IssueProjectCategory implements Serializable { + private static final long serialVersionUID = -2226298165882293959L; + private String issueId; + private String projectId; + private Set categoryPidsList; + + /** + * 这个项目对应的所有一级项目分类编码 + */ + private Set firstCategoryCodeList; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java new file mode 100644 index 0000000000..cfedd6e6d9 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/UserTopicPageFormDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dataaggre.dto.resigroup.form; + +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.util.List; + +@Data +public class UserTopicPageFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + //@NotBlank(message = "epmetUserId不能为空" , groups = AddUserInternalGroup.class) + private List epmetUserIdList; + @NotNull(message = "pageNo不能为空",groups = AddUserInternalGroup.class) + private Integer pageNo; + @NotNull(message = "pageSize不能为空",groups = AddUserInternalGroup.class) + private Integer pageSize; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java new file mode 100644 index 0000000000..98bf53a3e6 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/UserTopicResDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dataaggre.dto.resigroup.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +/** + * 个人分析,发布话题分页列表 + */ +@Data +public class UserTopicResDTO implements Serializable { + private String topicId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date releaseTime; + private String topicContent; + private Boolean shiftIssue; + private String issueId; + private Boolean shiftProject=false; + private String projectId=""; + //不返给前端了。 + private Set projectFirstCategoryCodeList=new HashSet<>(); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java index 259b22cff0..8dc1a34527 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/ResiGroupController.java @@ -1,12 +1,15 @@ package com.epmet.dataaggre.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.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dataaggre.dto.resigroup.form.CandidateListFormDTO; import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO; +import com.epmet.dataaggre.dto.resigroup.result.UserTopicResDTO; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.form.PageUserReportEventFormDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -39,4 +42,13 @@ public class ResiGroupController { return new Result>().ok(resiGroupService.candidateList(formDTO)); } + /** + * 数字赋能平台-个人分析,发布话题分页列表 + * @return + */ + @PostMapping("pageusertopic") + public Result> pageUserTopic(@RequestBody PageUserReportEventFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, PageUserReportEventFormDTO.AddUserInternalGroup.class); + return new Result>().ok(resiGroupService.pageUserTopic(formDTO)); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 0fb0c154dc..2a433d58d7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -18,6 +18,7 @@ package com.epmet.dataaggre.dao.govproject; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; @@ -25,7 +26,6 @@ import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectDistributionResultDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectInfoDTO; import com.epmet.dataaggre.dto.govproject.result.ProjectStatusListResultDTO; -import com.epmet.dataaggre.dto.govproject.result.ProjectTotalResultDTO; import com.epmet.dataaggre.entity.govproject.ProjectEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -79,4 +79,6 @@ public interface ProjectDao extends BaseDao { * @author sun */ List getProjectStatusList(ProjectTotalFormDTO formDTO); + + List selectProjectIssueCategory(@Param("issueIds") List issueIds); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java index cd57936e2f..c41c85d0de 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiTopicDao.java @@ -19,7 +19,9 @@ package com.epmet.dataaggre.dao.resigroup; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; +import com.epmet.dataaggre.dto.resigroup.result.UserTopicResDTO; import com.epmet.dataaggre.entity.resigroup.ResiTopicEntity; +import com.epmet.dto.form.PageUserReportEventFormDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -35,4 +37,12 @@ import java.util.List; public interface ResiTopicDao extends BaseDao { List selectTopicInfoByIds(@Param("list") List topicIds); + + /** + * 数据分析-个人档案-发布话题列表 + * + * @param formDTO + * @return + */ + List selectListTopic(PageUserReportEventFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java index 41d6b64379..d118a05746 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java @@ -1,6 +1,7 @@ package com.epmet.dataaggre.service.govproject; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; @@ -85,4 +86,12 @@ public interface GovProjectService { * @author sun */ ProjectAnalysisResultDTO projectAnalysis(ProjectAnalysisFormDTO formDTO); + + /** + * 找出这些议题中对应的项目id,以及项目对应的一级分类编码 + * + * @param issueIds + * @return + */ + List getIssueProjectFirstCategory(List issueIds); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index ff484007b3..de145afac2 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.dataaggre.service.govproject.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; @@ -12,6 +13,7 @@ import com.epmet.dataaggre.constant.ProjectConstant; import com.epmet.dataaggre.dao.govproject.ProjectDao; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectMonthResultDTO; import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; +import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; @@ -384,4 +386,35 @@ public class GovProjectServiceImpl implements GovProjectService { return null; } + /** + * 找出这些议题中对应的项目id,以及项目对应的一级分类编码 + * + * @param issueIds + * @return + */ + @Override + public List getIssueProjectFirstCategory(List issueIds) { + List list=projectDao.selectProjectIssueCategory(issueIds); + if(CollectionUtils.isNotEmpty(list)){ + for(IssueProjectCategory projectCategory:list){ + Set firt=new HashSet<>(); + for(String pids:projectCategory.getCategoryPidsList()){ + if(pids.contains(StrConstant.COLON)){ + String[] pidAtt=pids.split(StrConstant.COLON); + firt.add(pidAtt[0]); + break; + } + if(pids.contains(StrConstant.COMMA)){ + String[] pidAtt=pids.split(StrConstant.COMMA); + firt.add(pidAtt[0]); + break; + } + firt.add(pids); + } + projectCategory.setFirstCategoryCodeList(firt); + } + } + return list; + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java index 68f4afb4ee..4aaaa113e7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java @@ -1,9 +1,11 @@ package com.epmet.dataaggre.service.resigroup; +import com.epmet.commons.tools.page.PageData; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; import com.epmet.dataaggre.dto.resigroup.form.*; import com.epmet.dataaggre.dto.resigroup.result.*; +import com.epmet.dto.form.PageUserReportEventFormDTO; import java.util.List; @@ -61,4 +63,6 @@ public interface ResiGroupService { * @return com.epmet.dataaggre.dto.resigroup.result.GroupActRankResultDTO */ List querySubRankList(GroupActRankFormDTO formDTO); + + PageData pageUserTopic(PageUserReportEventFormDTO formDTO); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java index 374db9eedf..f81c5d9a39 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java @@ -3,12 +3,15 @@ package com.epmet.dataaggre.service.resigroup.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.resigroup.ResiGroupDao; import com.epmet.dataaggre.dao.resigroup.ResiTopicDao; import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; +import com.epmet.dataaggre.dto.govproject.result.IssueProjectCategory; import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; import com.epmet.dataaggre.dto.resigroup.form.*; @@ -18,7 +21,9 @@ import com.epmet.dataaggre.redis.ResiGroupRedis; import com.epmet.dataaggre.service.datastats.DataStatsService; import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.govorg.GovOrgService; +import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.form.PageUserReportEventFormDTO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; @@ -27,10 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,6 +55,8 @@ public class ResiGroupServiceImpl implements ResiGroupService { private DataStatsService dataStatsService; @Autowired private GovOrgService govOrgService; + @Autowired + private GovProjectService govProjectService; @Override public List selectTopicInfoByIds(List topicIds) { @@ -358,4 +362,42 @@ public class ResiGroupServiceImpl implements ResiGroupService { } return resultDTOList; } + + /** + * 数据分析-个人档案-发布话题列表 + * + * @param formDTO + * @return + */ + @Override + public PageData pageUserTopic(PageUserReportEventFormDTO formDTO) { + if (org.apache.commons.collections4.CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) { + return new PageData(new ArrayList<>(), NumConstant.ZERO); + } + PageInfo pageInfo = PageHelper.startPage(formDTO.getPageNo(), + formDTO.getPageSize()).doSelectPageInfo(() -> resiTopicDao.selectListTopic(formDTO)); + List list =pageInfo.getList(); + //根据议题id查询出每个议题对应的项目id,以及项目分类编码 + List issueIds=list.stream().filter(dto -> StringUtils.isNotBlank(dto.getIssueId())).map(UserTopicResDTO::getIssueId).collect(Collectors.toList()); + if(org.apache.commons.collections4.CollectionUtils.isNotEmpty(issueIds)){ + List categoryList= govProjectService.getIssueProjectFirstCategory(issueIds); + for(UserTopicResDTO topicResDTO :pageInfo.getList()){ + topicResDTO.setShiftProject(false); + topicResDTO.setProjectId(StrConstant.EPMETY_STR); + + topicResDTO.setProjectFirstCategoryCodeList(new HashSet<>()); + for(IssueProjectCategory category:categoryList){ + if(StringUtils.isNotBlank(category.getProjectId())){ + topicResDTO.setShiftProject(true); + topicResDTO.setProjectId(category.getProjectId()); + + topicResDTO.setProjectFirstCategoryCodeList(category.getFirstCategoryCodeList()); + break; + } + } + + } + } + return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index 6b88005261..1d23d8562d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -174,4 +174,25 @@ ORDER BY created_time DESC + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml index bd46639c94..763dcd98df 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiTopicDao.xml @@ -22,4 +22,22 @@ #{topicId} + + + \ No newline at end of file