From 8179fcfceec8ce29875e1afdbc18ac0297d6ebc6 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Tue, 15 Sep 2020 15:35:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=94=E6=9D=91=E5=A4=A7=E5=B1=8F-=E9=82=BB?= =?UTF-8?q?=E9=87=8C=E5=85=9A=E7=BE=A4=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/GridNameGroupCountResultDTO.java | 26 ++++++ .../GroupGridgroupcountrankResultDTO.java | 28 ++++++ .../result/GroupPartitopictrendResultDTO.java | 28 ++++++ .../dto/result/GroupSummaryResultDTO.java | 48 ++++++++++ .../KcTopicTrendGridMonthlyResultDTO.java | 26 ++++++ .../controller/screen/KcScreenController.java | 35 ++++++++ .../ScreenKcGroupSummaryGridDailyDao.java | 18 ++++ .../ScreenKcTopicTrendGridMonthlyDao.java | 10 +++ ...ScreenKcVolunteerHeatRankGridDailyDao.java | 2 - .../screen/KcScreenService.java | 23 +++++ .../screen/impl/KcScreenServiceImpl.java | 89 +++++++++++++++++-- .../ScreenKcGroupSummaryGridDailyDao.xml | 53 +++++++++++ .../ScreenKcTopicTrendGridMonthlyDao.xml | 24 ++++- 13 files changed, 399 insertions(+), 11 deletions(-) create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GridNameGroupCountResultDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupGridgroupcountrankResultDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupPartitopictrendResultDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupSummaryResultDTO.java create mode 100644 epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/KcTopicTrendGridMonthlyResultDTO.java diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GridNameGroupCountResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GridNameGroupCountResultDTO.java new file mode 100644 index 0000000000..0f870ea551 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GridNameGroupCountResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.evaluationindex.screen.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 邻里党群-社群数量排名 + * @Author sun + */ +@Data +public class GridNameGroupCountResultDTO implements Serializable { + + private static final long serialVersionUID = 3860268744336541373L; + + /** + * 网格名称 + */ + private String gridName = ""; + + /** + * 社群数量 + */ + private Integer groupCount = 0; + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupGridgroupcountrankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupGridgroupcountrankResultDTO.java new file mode 100644 index 0000000000..fc9799ef03 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupGridgroupcountrankResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.evaluationindex.screen.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.LinkedList; + +/** + * 邻里党群-社群数量排名 + * @Author sun + */ +@Data +public class GroupGridgroupcountrankResultDTO implements Serializable { + + private static final long serialVersionUID = 3860268744336541373L; + + /** + * 网格名称集合 + */ + private LinkedList gridNameDataList; + + /** + * 社群数量集合 + */ + private LinkedList groupCountDataList; + + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupPartitopictrendResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupPartitopictrendResultDTO.java new file mode 100644 index 0000000000..8eb7a406ae --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupPartitopictrendResultDTO.java @@ -0,0 +1,28 @@ +package com.epmet.evaluationindex.screen.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.LinkedList; + +/** + * 邻里党群-话题参与趋势 + * @Author sun + */ +@Data +public class GroupPartitopictrendResultDTO implements Serializable { + + private static final long serialVersionUID = 3860268744336541373L; + + /** + * 横坐标月份集合 + */ + private LinkedList xAxis; + + /** + * 话题数量 集合 + */ + private LinkedList actCountDataList; + + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupSummaryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupSummaryResultDTO.java new file mode 100644 index 0000000000..31325b7b60 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupSummaryResultDTO.java @@ -0,0 +1,48 @@ +package com.epmet.evaluationindex.screen.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * 公益互助-各类总数汇总 + * @Author sun + */ +@Data +public class GroupSummaryResultDTO implements Serializable { + + private static final long serialVersionUID = 3860268744336541373L; + + /** + * 日期Id, 数据更新至:yyyyMMdd + */ + private String dateId = ""; + + /** + * 社群总数 + */ + private Integer groupCount = 0; + /** + * 群员总数 + */ + private Integer memberCount = 0; + /** + * 话题数量 + */ + private Integer topicCount = 0; + /** + * 话题参与量 + */ + private Integer partiCount = 0; + /** + * 转化议题率,这个后端自己算 + */ + private String shiftIssueRatio = ""; + /** + * 话题转议题总数 + */ + @JsonIgnore + private Integer shiftIssueCount = 0; + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/KcTopicTrendGridMonthlyResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/KcTopicTrendGridMonthlyResultDTO.java new file mode 100644 index 0000000000..c7febe5772 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/KcTopicTrendGridMonthlyResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.evaluationindex.screen.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 邻里党群-话题参与趋势 + * @Author sun + */ +@Data +public class KcTopicTrendGridMonthlyResultDTO implements Serializable { + + private static final long serialVersionUID = 3860268744336541373L; + + /** + * 月id :yyyyMM + */ + private String monthId = ""; + + /** + * 话题数量(所在月新增话题数) + */ + private Integer topicCount = 0; + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java index 46d86bb709..ce5efe3dba 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java @@ -117,4 +117,39 @@ public class KcScreenController { return new Result>().ok(kcScreenService.heartVolunteerrank(formDTO)); } + + /** + * @param externalAppRequestParam + * @Description 邻里党群-各类总数 + * @author sun + */ + @ExternalAppRequestAuth + @PostMapping("group/summary") + public Result groupSummary(ExternalAppRequestParam externalAppRequestParam){ + return new Result().ok(kcScreenService.groupSummary(externalAppRequestParam)); + } + + /** + * @param externalAppRequestParam + * @Description 邻里党群-话题参与趋势 + * @author sun + */ + @ExternalAppRequestAuth + @PostMapping("group/partitopictrend") + public Result groupPartitopictrend(ExternalAppRequestParam externalAppRequestParam){ + return new Result().ok(kcScreenService.groupPartitopictrend(externalAppRequestParam)); + } + + /** + * @param externalAppRequestParam + * @Description 邻里党群-社群数量排名 + * @author sun + */ + @ExternalAppRequestAuth + @PostMapping("group/gridgroupcountrank") + public Result groupGridgroupcountrank(ExternalAppRequestParam externalAppRequestParam){ + return new Result().ok(kcScreenService.groupGridgroupcountrank(externalAppRequestParam)); + } + + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcGroupSummaryGridDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcGroupSummaryGridDailyDao.java index 3b92aa4fa1..e6871db1b0 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcGroupSummaryGridDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcGroupSummaryGridDailyDao.java @@ -17,7 +17,12 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.evaluationindex.screen.dto.result.GridNameGroupCountResultDTO; +import com.epmet.evaluationindex.screen.dto.result.GroupSummaryResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.LinkedList; /** * KC-小组分析各类总数(先根据customerId+dateId删除) @@ -28,4 +33,17 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcGroupSummaryGridDailyDao { + /** + * @param customerId + * @Description 邻里党群-各类总数 + * @author sun + */ + GroupSummaryResultDTO selectGroupSummaryDaily(@Param("customerId") String customerId); + + /** + * @param customerId + * @Description 按日期降序,查询客户最近一天所有网格数据,按每个网格的社区总数降序排列 + * @author sun + */ + LinkedList selectGridDailyList(@Param("customerId") String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcTopicTrendGridMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcTopicTrendGridMonthlyDao.java index 8c8e181b0f..12ec47650b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcTopicTrendGridMonthlyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcTopicTrendGridMonthlyDao.java @@ -17,7 +17,11 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.evaluationindex.screen.dto.result.KcTopicTrendGridMonthlyResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * KC-话题参与趋势(先根据customerId+monthId删除) @@ -28,4 +32,10 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcTopicTrendGridMonthlyDao { + /** + * @param customerId + * @Description 按客户查询最近十二个月所有网格汇总数据 + * @author sun + */ + List selectActTrendMonthly(@Param("customerId") String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcVolunteerHeatRankGridDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcVolunteerHeatRankGridDailyDao.java index cb57c5ef36..d7646b243d 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcVolunteerHeatRankGridDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcVolunteerHeatRankGridDailyDao.java @@ -18,10 +18,8 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; import com.epmet.evaluationindex.screen.dto.form.HeartVolunteerrankFormDTO; -import com.epmet.evaluationindex.screen.dto.result.HeartSummaryResultDTO; import com.epmet.evaluationindex.screen.dto.result.HeartVolunteerrankResultDTO; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java index 3dce8b8545..0cbb285c2a 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java @@ -54,4 +54,27 @@ public interface KcScreenService { KcIssueSummary getIssueSummary(String customerId); KcPartiTrendResultDTO getIssuePartiTrend(String customerId); + + + /** + * @param externalAppRequestParam + * @Description 邻里党群-各类总数 + * @author sun + */ + GroupSummaryResultDTO groupSummary(ExternalAppRequestParam externalAppRequestParam); + + /** + * @param externalAppRequestParam + * @Description 邻里党群-话题参与趋势 + * @author sun + */ + GroupPartitopictrendResultDTO groupPartitopictrend(ExternalAppRequestParam externalAppRequestParam); + + /** + * @param externalAppRequestParam + * @Description 邻里党群-社群数量排名 + * @author sun + */ + GroupGridgroupcountrankResultDTO groupGridgroupcountrank(ExternalAppRequestParam externalAppRequestParam); + } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java index 94bc4dcd55..54a8df17e1 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java @@ -5,24 +5,19 @@ import com.epmet.commons.extappauth.bean.ExternalAppRequestParam; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.datareport.dao.evaluationindex.screenkc.*; -import com.epmet.datareport.dao.evaluationindex.screenkc.ScreenKcIssueSummaryGridDailyDao; -import com.epmet.datareport.dao.evaluationindex.screenkc.ScreenKcIssueTrendGridMonthlyDao; -import com.epmet.datareport.dao.evaluationindex.screenkc.ScreenKcPlatformSummaryDailyDao; import com.epmet.datareport.service.evaluationindex.screen.KcScreenService; import com.epmet.datareport.utils.DateUtils; -import com.epmet.evaluationindex.screen.dto.form.HeartVolunteerrankFormDTO; -import com.epmet.evaluationindex.screen.dto.result.*; import com.epmet.dto.result.issue.KcIssueSummary; import com.epmet.dto.result.issue.KcPartiTrendResultDTO; -import com.epmet.evaluationindex.screen.dto.result.HomepageSummaryResultDTO; +import com.epmet.evaluationindex.screen.dto.form.HeartVolunteerrankFormDTO; +import com.epmet.evaluationindex.screen.dto.result.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.NumberFormat; import java.util.LinkedList; import java.util.List; -import java.util.List; - /** * 孔村大屏api * @@ -53,6 +48,11 @@ public class KcScreenServiceImpl implements KcScreenService { @Autowired private ScreenKcIssueTrendGridMonthlyDao trendGridMonthlyDao; + @Autowired + private ScreenKcGroupSummaryGridDailyDao screenKcGroupSummaryGridDailyDao; + @Autowired + private ScreenKcTopicTrendGridMonthlyDao screenKcTopicTrendGridMonthlyDao; + /** * @param externalAppRequestParam * @Description 首页-平台各类总数 @@ -150,4 +150,77 @@ public class KcScreenServiceImpl implements KcScreenService { return result; } + /** + * @param externalAppRequestParam + * @Description 邻里党群-各类总数 + * @author sun + */ + @Override + public GroupSummaryResultDTO groupSummary(ExternalAppRequestParam externalAppRequestParam) { + //1.按客户查询最近一天各网格各项数据的汇总值 + GroupSummaryResultDTO resultDTO = screenKcGroupSummaryGridDailyDao.selectGroupSummaryDaily(externalAppRequestParam.getCustomerId()); + if (null == resultDTO) { + return new GroupSummaryResultDTO(); + } + + //2.计算转化议题率,保留两位小数 + if (resultDTO.getTopicCount() < NumConstant.ONE || resultDTO.getShiftIssueCount() < NumConstant.ONE) { + resultDTO.setShiftIssueRatio("0%"); + } else { + NumberFormat numberFormat = NumberFormat.getInstance(); + //设置精确到小数点后2位 + numberFormat.setMaximumFractionDigits(2); + String ratio = numberFormat.format((float) resultDTO.getShiftIssueCount() / (float) resultDTO.getTopicCount() * 100); + resultDTO.setShiftIssueRatio(ratio + "%"); + } + + return resultDTO; + } + + /** + * @param externalAppRequestParam + * @Description 邻里党群-话题参与趋势 + * @author sun + */ + @Override + public GroupPartitopictrendResultDTO groupPartitopictrend(ExternalAppRequestParam externalAppRequestParam) { + GroupPartitopictrendResultDTO resultDTO = new GroupPartitopictrendResultDTO(); + LinkedList xAxis = new LinkedList<>(); + LinkedList actCountDataList = new LinkedList<>(); + //1.按客户查询最近十二个月所有网格汇总数据 + List list = screenKcTopicTrendGridMonthlyDao.selectActTrendMonthly(externalAppRequestParam.getCustomerId()); + //2.倒序遍历封装数据 + for (int i = list.size() - 1; i >= 0; i--) { + xAxis.add(list.get(i).getMonthId()); + actCountDataList.add(list.get(i).getTopicCount()); + } + //3.封装数据并返回 + resultDTO.setXAxis(xAxis); + resultDTO.setActCountDataList(actCountDataList); + return resultDTO; + } + + /** + * @param externalAppRequestParam + * @Description 邻里党群-社群数量排名 + * @author sun + */ + @Override + public GroupGridgroupcountrankResultDTO groupGridgroupcountrank(ExternalAppRequestParam externalAppRequestParam) { + GroupGridgroupcountrankResultDTO resultDTO = new GroupGridgroupcountrankResultDTO(); + LinkedList gridNameDataList = new LinkedList<>(); + LinkedList groupCountDataList = new LinkedList<>(); + //1.按日期降序,查询客户最近一天所有网格数据,按每个网格的社区总数降序排列 + LinkedList list = screenKcGroupSummaryGridDailyDao.selectGridDailyList(externalAppRequestParam.getCustomerId()); + //2.封装数据 + list.forEach(l -> { + gridNameDataList.add(l.getGridName()); + groupCountDataList.add(l.getGroupCount()); + }); + resultDTO.setGridNameDataList(gridNameDataList); + resultDTO.setGroupCountDataList(groupCountDataList); + + return resultDTO; + } + } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcGroupSummaryGridDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcGroupSummaryGridDailyDao.xml index 03bbdb55c2..d461ab19d2 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcGroupSummaryGridDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcGroupSummaryGridDailyDao.xml @@ -3,5 +3,58 @@ + + + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcTopicTrendGridMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcTopicTrendGridMonthlyDao.xml index f6eb105077..5fed5bda9c 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcTopicTrendGridMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcTopicTrendGridMonthlyDao.xml @@ -4,5 +4,27 @@ - +