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