From 5dd78634ac8c4b3103cee31fb6ae0daadef784ec Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Thu, 03 Dec 2020 23:07:35 +0800
Subject: [PATCH] 人次统计3
---
zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsTimeUtil.java | 18 ++++-
zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java | 2
zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html | 87 ++++++++++++++++++++++++++--
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml | 28 +++++++++
zq-erp/src/main/java/com/matrix/system/hiveErp/action/DataAnalysisCustomer.java | 21 +++++++
zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/SeriesVo.java | 8 +-
6 files changed, 148 insertions(+), 16 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 401caeb..c25461f 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
@@ -70,6 +70,27 @@
}
+ /**
+ * 到店率
+ * 业务说明:
+ * 门店所有客户人次数除以人头数
+ * @param statisticsParam
+ * @return
+ */
+ @RequestMapping(value = "/customerEnterRateCompare")
+ public @ResponseBody AjaxResult customerEnterRateCompare(StatisticsParamVo statisticsParam) {
+ return getAnalysisResult(statisticsParam, new Caculate() {
+ @Override
+ public Map<String, Integer> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId) {
+ //从员工业绩统计表中,按时间段,门店的维度统计人次
+ return tjVipSumDao.customerEnterRateCompare(timeSpaceParam,shopId);
+ }
+ });
+ }
+
+
+
+
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/SeriesVo.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/SeriesVo.java
index cfbb8a1..9a75390 100644
--- a/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/SeriesVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/SeriesVo.java
@@ -9,13 +9,13 @@
private String name;
- private Integer[] data;
+ private String[] data;
private String type="line";
public SeriesVo() {
}
- public SeriesVo(String name, Integer[] data, String type) {
+ public SeriesVo(String name, String[] data, String type) {
this.name = name;
this.data = data;
this.type = type;
@@ -29,11 +29,11 @@
this.name = name;
}
- public Integer[] getData() {
+ public String[] getData() {
return data;
}
- public void setData(Integer[] data) {
+ public void setData(String[] data) {
this.data = data;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsTimeUtil.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsTimeUtil.java
index ce53cac..fa51f5d 100644
--- a/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsTimeUtil.java
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsTimeUtil.java
@@ -22,17 +22,18 @@
* @param yAxisMap
* @return
*/
- public static Integer[] getSeries(Map<String, Integer> yAxisMap) {
+ public static String[] getSeries(Map<String, Integer> yAxisMap) {
if (MapUtils.isNotEmpty(yAxisMap)) {
- Integer[] seroes = new Integer[yAxisMap.size()-1];
+ String[] seroes = new String[yAxisMap.size()-1];
for (int index=0; index<yAxisMap.size()-1 ; index++) {
if(index<seroes.length){
- seroes[index]=Integer.parseInt(yAxisMap.get("t"+index)+"");
+ System.out.println(yAxisMap.get("t"+index)+"");
+ seroes[index]=yAxisMap.get("t"+index)+"";
}
}
return seroes;
} else {
- return new Integer[0];
+ return new String[0];
}
}
@@ -128,6 +129,9 @@
begin=DateUtil.getDateAfterYear(begin,1);
tims.add(begin);
}
+
+ begin=DateUtil.getDateAfterYear(begin,1);
+ tims.add(begin);
return tims;
}
@@ -142,6 +146,8 @@
begin=DateUtil.getDateAfterMonth(begin,1);
tims.add(begin);
}
+ begin=DateUtil.getDateAfterMonth(begin,1);
+ tims.add(begin);
return tims;
}
@@ -155,6 +161,8 @@
begin=DateUtil.getDateAfter(begin,1);
tims.add(begin);
}
+ begin=DateUtil.getDateAfter(begin,1);
+ tims.add(begin);
return tims;
}
@@ -170,6 +178,8 @@
begin=DateUtil.getDateAfterHours(begin,1);
tims.add(begin);
}
+ begin=DateUtil.getDateAfterHours(begin,1);
+ tims.add(begin);
return tims;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
index 404d626..3e27576 100644
--- a/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
@@ -14,4 +14,6 @@
Map<String,Integer> customerHeadCompare(@Param("list") List<StatisticsTimeDaoParam> daoParams, @Param("shopId") Long shopId);
Map<String, Integer> customerEnterCountCompare(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId);
+
+ Map<String, Integer> customerEnterRateCompare(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId);
}
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
index 4910f53..55ed022 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -40,5 +40,33 @@
from area where id=1
</select>
+ <!-- 到店率 -->
+ <select id="customerEnterRateCompare" resultType="java.util.TreeMap">
+
+ select
+ <foreach collection="list" index="index" item="item" separator="," >
+
+ ifnull( ( (
+ SELECT count(*) from (
+ SELECT DISTINCT vip_id ,date_format(datatime,'%Y-%m-%d') from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+ <if test="shopId !=null and shopId !=0 " >
+ and SHOP_ID = #{shopId}
+ </if>) a
+ )
+ /
+ (
+ SELECT count(*) from (
+ SELECT DISTINCT vip_id from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+ <if test="shopId !=null and shopId !=0 " >
+ and SHOP_ID = #{shopId}
+ </if>) b
+ )
+ ),0 )as t${index}
+
+ </foreach>
+ from area where id=1
+
+ </select>
+
</mapper>
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html
index 3789371..f5a1f04 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html
@@ -11,6 +11,7 @@
<!-- 本框架基本脚本和样式 -->
<script type="text/javascript"
th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+ <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
<style>
.echarts {
@@ -45,7 +46,7 @@
name="endTime" type="text" class="form-control datetimepicker" autocomplete="off"
id="endTime">
</div>
- <div class="form-group mr-20 ">
+ <div class="form-group mr-20 mt-20 ">
<label>统计单位</label>
<select name="statisticsUnit" class=" form-control " id="unitSelect"
style="width: 80px">
@@ -56,20 +57,66 @@
</select>
</div>
</form>
+
+
<!-- 搜索框部分en -->
<div class="row chartsBox " style="margin-top: 40px">
- <div class=" col-md-12">
- <div class="echarts" id="echarts-line-chart1"></div>
+
+ <div class=" col-md-6">
+ <div class="panel panel-info">
+ <div class="panel-heading">门店人次对比分析</div>
+ <div class="panel-body">
+ <div class="echarts" id="echarts-line-chart2"></div>
+ </div>
+ </div>
+ </div>
+ <div class=" col-md-6">
+ <div class="panel panel-info">
+ <div class="panel-heading">门店人头对比分析</div>
+ <div class="panel-body">
+ <div class="echarts" id="echarts-line-chart1"></div>
+ </div>
+ </div>
</div>
</div>
<div class="row chartsBox " style="margin-top: 40px">
- <div class=" col-md-12">
- <div class="echarts" id="echarts-line-chart2"></div>
+ <div class=" col-md-6">
+ <div class="panel panel-info">
+ <div class="panel-heading">门店到店率对比分析</div>
+ <div class="panel-body">
+ <div class="echarts" id="echarts-line-chart3"></div>
+ </div>
+ </div>
+ </div>
+ <div class=" col-md-6">
+ <div class="panel panel-warning">
+ <div class="panel-heading">数据统计说明</div>
+ <div class="panel-body ">
+ <div class="echarts">
+ <ul>
+ <li>
+ <h3>会员人头数</h3>
+ <p>一段时间内某个门店所有进店客户的总人数,同一个人无论进店几次都视为一个人头数</p>
+ </li>
+ <li>
+ <h3>会员人次</h3>
+ <p>一段时间内某个门店一个会员有3天来过门店则人次为3以此类推</p>
+ </li>
+ <li>
+ <h3>到店率</h3>
+ <p>一段时间内某个门店所有客户人次数除以人头数即为到店率</p>
+ </li>
+ </ul>
+
+ </div>
+ </div>
+ </div>
</div>
</div>
+
</div>
@@ -80,7 +127,8 @@
<script type="text/javascript" th:src="@{/plugin/StringUtil.js}"></script>
<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script>
<script type="text/javascript" th:src="@{/js/systools/ChartsUtils.js}"></script>
-
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
<script>
@@ -92,6 +140,7 @@
// 基于准备好的dom,初始化echarts实例
var myChart1 = echarts.init(document.getElementById('echarts-line-chart1'), 'macarons');
var myChart2 = echarts.init(document.getElementById('echarts-line-chart2'), 'macarons');
+ var myChart3 = echarts.init(document.getElementById('echarts-line-chart3'), 'macarons');
/*
点击事件
myChart1.on('click', function (params) {
@@ -99,10 +148,10 @@
});
*/
// 指定图表的配置项和数据
- function getption(title) {
+ function getption() {
return {
title: {
- text: title,
+ text: "",
padding: 20
},
legend: {},
@@ -204,7 +253,29 @@
var chartsUtils2 = new ChartsUtils(loadData2);
chartsUtils2.loadChartData();
+ //加载数据3
+ function loadData3() {
+ //加载门店到店率
+ myChart3.showLoading();
+ $.AjaxProxy({
+ p: MForm.toJson("#serchform"),
+ c: false,
+ }).invoke(basePath+"/admin/analysis/customerEnterRateCompare",
+ function (loj) {
+ var map = loj.getValue("mapInfo");
+ var option = getption("门店到店率对比");
+ option.series = map.series;
+ option.legend.data = map.legendData;
+ option.xAxis.data = map.xAxis;
+ // 使用刚指定的配置项和数据显示图表。
+ myChart3.setOption(option);
+ myChart3.hideLoading();
+ });
+ }
+
+ var chartsUtils3 = new ChartsUtils(loadData3);
+ chartsUtils3.loadChartData();
</script>
--
Gitblit v1.9.1