Browse Source

孔村大屏-邻里党群部分接口

dev_shibei_match
sunyuchao 5 years ago
parent
commit
8179fcfcee
  1. 26
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GridNameGroupCountResultDTO.java
  2. 28
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupGridgroupcountrankResultDTO.java
  3. 28
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupPartitopictrendResultDTO.java
  4. 48
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/GroupSummaryResultDTO.java
  5. 26
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/KcTopicTrendGridMonthlyResultDTO.java
  6. 35
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java
  7. 18
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcGroupSummaryGridDailyDao.java
  8. 10
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcTopicTrendGridMonthlyDao.java
  9. 2
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcVolunteerHeatRankGridDailyDao.java
  10. 23
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java
  11. 89
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java
  12. 53
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcGroupSummaryGridDailyDao.xml
  13. 24
      epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcTopicTrendGridMonthlyDao.xml

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

28
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<String> gridNameDataList;
/**
* 社群数量集合
*/
private LinkedList<Integer> groupCountDataList;
}

28
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<String> xAxis;
/**
* 话题数量 集合
*/
private LinkedList<Integer> actCountDataList;
}

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

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

35
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<List<HeartVolunteerrankResultDTO>>().ok(kcScreenService.heartVolunteerrank(formDTO));
}
/**
* @param externalAppRequestParam
* @Description 邻里党群-各类总数
* @author sun
*/
@ExternalAppRequestAuth
@PostMapping("group/summary")
public Result<GroupSummaryResultDTO> groupSummary(ExternalAppRequestParam externalAppRequestParam){
return new Result<GroupSummaryResultDTO>().ok(kcScreenService.groupSummary(externalAppRequestParam));
}
/**
* @param externalAppRequestParam
* @Description 邻里党群-话题参与趋势
* @author sun
*/
@ExternalAppRequestAuth
@PostMapping("group/partitopictrend")
public Result<GroupPartitopictrendResultDTO> groupPartitopictrend(ExternalAppRequestParam externalAppRequestParam){
return new Result<GroupPartitopictrendResultDTO>().ok(kcScreenService.groupPartitopictrend(externalAppRequestParam));
}
/**
* @param externalAppRequestParam
* @Description 邻里党群-社群数量排名
* @author sun
*/
@ExternalAppRequestAuth
@PostMapping("group/gridgroupcountrank")
public Result<GroupGridgroupcountrankResultDTO> groupGridgroupcountrank(ExternalAppRequestParam externalAppRequestParam){
return new Result<GroupGridgroupcountrankResultDTO>().ok(kcScreenService.groupGridgroupcountrank(externalAppRequestParam));
}
}

18
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<GridNameGroupCountResultDTO> selectGridDailyList(@Param("customerId") String customerId);
}

10
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<KcTopicTrendGridMonthlyResultDTO> selectActTrendMonthly(@Param("customerId") String customerId);
}

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

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

89
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<String> xAxis = new LinkedList<>();
LinkedList<Integer> actCountDataList = new LinkedList<>();
//1.按客户查询最近十二个月所有网格汇总数据
List<KcTopicTrendGridMonthlyResultDTO> 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<String> gridNameDataList = new LinkedList<>();
LinkedList<Integer> groupCountDataList = new LinkedList<>();
//1.按日期降序,查询客户最近一天所有网格数据,按每个网格的社区总数降序排列
LinkedList<GridNameGroupCountResultDTO> 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;
}
}

53
epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcGroupSummaryGridDailyDao.xml

@ -3,5 +3,58 @@
<mapper namespace="com.epmet.datareport.dao.evaluationindex.screenkc.ScreenKcGroupSummaryGridDailyDao">
<select id="selectGroupSummaryDaily" resultType="com.epmet.evaluationindex.screen.dto.result.GroupSummaryResultDTO">
SELECT
date_id,
sum(group_count) "groupCount",
sum(member_count) "memberCount",
sum(topic_count) "topicCount",
sum(parti_count) "partiCount",
sum(shift_issue_count) "shiftIssueCount"
FROM
screen_kc_group_summary_grid_daily
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND date_id = (
select
date_id
from
screen_kc_group_summary_grid_daily
where
del_flag = '0'
and customer_id = #{customerId}
order by
date_id desc,
created_time desc
limit 1
)
</select>
<select id="selectGridDailyList" resultType="com.epmet.evaluationindex.screen.dto.result.GridNameGroupCountResultDTO">
SELECT
grid_name AS "gridName",
group_count AS "groupCount"
FROM
screen_kc_group_summary_grid_daily
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND date_id = (
select
date_id
from
screen_kc_group_summary_grid_daily
where
del_flag = '0'
and customer_id = #{customerId}
order by
date_id desc,
created_time desc
limit 1
)
ORDER BY
group_count DESC
</select>
</mapper>

24
epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcTopicTrendGridMonthlyDao.xml

@ -4,5 +4,27 @@
<mapper namespace="com.epmet.datareport.dao.evaluationindex.screenkc.ScreenKcTopicTrendGridMonthlyDao">
<select id="selectActTrendMonthly" resultType="com.epmet.evaluationindex.screen.dto.result.KcTopicTrendGridMonthlyResultDTO">
SELECT DISTINCT
month_id AS "monthId",
(
select
sum(topic_count)
from
screen_kc_topic_trend_grid_monthly
where
del_flag = '0'
and customer_id = #{customerId}
and month_id = monthId
)
FROM
screen_kc_topic_trend_grid_monthly
WHERE
del_flag = '0'
AND customer_id = #{customerId}
ORDER BY
month_id DESC,
created_time DESC
LIMIT 12
</select>
</mapper>

Loading…
Cancel
Save