From 48bef1c8e51a2d8ac9c10197e1b5f2a1457d8692 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Wed, 02 Dec 2020 23:31:22 +0800 Subject: [PATCH] 人次统计 --- zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 50 insertions(+), 10 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java index 6703ad4..401caeb 100644 --- a/zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java +++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java @@ -6,10 +6,9 @@ import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.SysShopInfoDao; -import com.matrix.system.hiveErp.analysUtil.SeriesVo; -import com.matrix.system.hiveErp.analysUtil.StatisticsParamVo; +import com.matrix.system.hiveErp.analysUtil.*; import com.matrix.system.hiveErp.dao.TjVipSumDao; -import com.matrix.system.hiveErp.analysUtil.StatisticsTimeUtil; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -41,9 +40,50 @@ * @param statisticsParam * @return */ - @RequestMapping(value = "customerHeadCompare") - public @ResponseBody AjaxResult vipVisitCompare(StatisticsParamVo statisticsParam) { + @RequestMapping(value = "/customerHeadCompare") + public @ResponseBody AjaxResult customerHeadCompare(StatisticsParamVo statisticsParam) { + return getAnalysisResult(statisticsParam, new Caculate() { + @Override + public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId) { + //从员工业绩统计表中,按时间段,门店的维度统计人头数 + return tjVipSumDao.customerHeadCompare(timeSpaceParam,shopId); + } + }); + } + /** + * 会员人次统计 + * 业务说明: + * 一个会员在一天进店一次或者多次即为一个人次 + * @param statisticsParam + * @return + */ + @RequestMapping(value = "/customerEnterCountCompare") + public @ResponseBody AjaxResult customerEnterCountCompare(StatisticsParamVo statisticsParam) { + return getAnalysisResult(statisticsParam, new Caculate() { + @Override + public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId) { + //从员工业绩统计表中,按时间段,门店的维度统计人次 + return tjVipSumDao.customerEnterCountCompare(timeSpaceParam,shopId); + } + }); + } + + + + + + /** + * 按店铺查询数据通用格式执行方法,支持时、日、月、年维度 + * 如: A店铺 B店铺 + * 2020-01-01 12 13 + * 2020-02-02 10 11 + * @param statisticsParam 时间条件 + * @param caculate 循环调用caculate计算该店的数据 + * 查询的数据需满足 只有一个门店只有一行 列名称为 t0,t1,t2 + * @return + */ + private AjaxResult getAnalysisResult(StatisticsParamVo statisticsParam, Caculate caculate) { AjaxResult result = new AjaxResult(); //根据计算横坐标 @@ -62,16 +102,16 @@ int i=0; //按门店统计数据 + List<StatisticsTimeDaoParam> timeSpaceParam = StatisticsTimeUtil.buidParam(xAxis); for(SysShopInfo shop: shops){ legendData[i++]=shop.getShopName(); - + //数据项内容 SeriesVo storeInfoSeries=new SeriesVo(); storeInfoSeries.setName(shop.getShopName()); - - //从员工业绩统计表中,按时间段,门店的维度统计人头数 - Map<String, Integer> yAxisMap = tjVipSumDao.countVisitByTime(StatisticsTimeUtil.buidParam(xAxis),shop.getId()); - + //调用计算器获取数据库统计的结果 + Map<String, Integer> yAxisMap = caculate.exec(timeSpaceParam,shop.getId()); + //把统计结果转成数组格式 storeInfoSeries.setData(StatisticsTimeUtil.getSeries(yAxisMap)); series.add(storeInfoSeries); -- Gitblit v1.9.1