From 7efbe93bdb75762f50a1d2d104e05a9e4db49ea2 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Wed, 02 Dec 2020 15:21:39 +0800
Subject: [PATCH] 修改人头统计计算
---
zq-erp/src/main/resources/templates/views/admin/hive-erp/analysis/customerFlow.html | 85 +++++++++++++-------
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml | 22 ++---
zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/SeriesVo.java | 49 ++++++++++++
zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java | 48 +++++++++++
4 files changed, 158 insertions(+), 46 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/SeriesVo.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/SeriesVo.java
new file mode 100644
index 0000000..47289ed
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/Vo/SeriesVo.java
@@ -0,0 +1,49 @@
+package com.matrix.system.hiveErp.Vo;
+
+/**
+ * echart 图表参数
+ */
+public class SeriesVo {
+
+ private String TYPE_LINE="line";
+
+
+ private String name;
+ private Integer[] data;
+ private String type="line";
+
+ public SeriesVo() {
+ }
+
+ public SeriesVo(String name, Integer[] data, String type) {
+ this.name = name;
+ this.data = data;
+ this.type = type;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Integer[] getData() {
+ return data;
+ }
+
+ public void setData(Integer[] data) {
+ this.data = data;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java
index ae3edbf..19d19ad 100644
--- a/zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/action/CustomerAnalysis.java
@@ -1,7 +1,14 @@
package com.matrix.system.hiveErp.action;
+import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.DateUtil;
+import com.matrix.core.tools.WebUtil;
+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.hive.service.SysShopInfoService;
+import com.matrix.system.hiveErp.Vo.SeriesVo;
import com.matrix.system.hiveErp.Vo.StatisticsParamVo;
import com.matrix.system.hiveErp.Vo.StatisticsTimeDaoParam;
import com.matrix.system.hiveErp.dao.TjVipSumDao;
@@ -20,12 +27,17 @@
@Autowired
TjVipSumDao tjVipSumDao;
+
+ @Autowired
+ SysShopInfoDao shopInfoDao;
+
+
/**
* 到店次数趋势统计
*
* @return
- */
- @RequestMapping(value = "/vipVisitTendency ")
+
+ @RequestMapping(value = "/vipVisitTendency")
public @ResponseBody
AjaxResult vipVisit(StatisticsParamVo statisticsParam) {
AjaxResult result = new AjaxResult();
@@ -42,6 +54,38 @@
result.setStatus(AjaxResult.STATUS_SUCCESS);
return result;
}
+ */
+
+
+ @RequestMapping(value = "vipVisitCompare")
+ public @ResponseBody AjaxResult vipVisitCompare(StatisticsParamVo statisticsParam) {
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ AjaxResult result = new AjaxResult();
+ //计算横坐标
+ List<Date> xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit());
+
+ //获取所有门店
+ List<SysShopInfo> shops= shopInfoDao.selectShopInfo(user.getCompanyId());
+ List<SeriesVo> series=new ArrayList<>();
+ String[] legendData=new String[shops.size()];
+ int i=0;
+ for(SysShopInfo shop: shops){
+ legendData[i++]=shop.getShopName();
+ SeriesVo storeInfoSeries=new SeriesVo();
+ storeInfoSeries.setName(shop.getShopName());
+ Map<String, Integer> yAxisMap = tjVipSumDao.countVisitByTime(buidParam(xAxis),shop.getId());
+ storeInfoSeries.setData(getSeries(yAxisMap));
+ series.add(storeInfoSeries);
+ }
+ //构造返回对象
+ Map<Object,Object> data=new HashMap<>();
+ data.put("legendData",legendData);
+ data.put("series",series);
+ data.put("xAxis", getFormartDateList(xAxis,statisticsParam));
+ result.setMapInfo(data);
+ result.setStatus(AjaxResult.STATUS_SUCCESS);
+ return result;
+ }
/**
* 获取map中的值为数组
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 5f7946e..6c5c06f 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -8,25 +8,21 @@
<!-- 人头数统计 -->
<select id="countVisitByTime" resultType="java.util.TreeMap">
-
select
-
<foreach collection="list" index="index" item="item" separator="," >
+ (
+ 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>
- 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>
- ) t
+ ) t
+ ) as t${index}
</foreach>
from area where id=1
</select>
-
-
-
- </mapper>
+</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 f18170b..57e1e13 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
@@ -31,7 +31,8 @@
</button>
</div>
</div>
- <div class="form-group mr-20" id="timeBox">
+ <div class="form-group mr-20 mt-20" id="timeBox">
+
<label>统计范围</label>
<input name="beginTime" type="text" autocomplete="off"
@@ -39,7 +40,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 ">
<label>统计单位</label>
<select name="statisticsUnit" class=" form-control " id="unitSelect"
style="width: 80px">
@@ -52,11 +53,32 @@
</form>
<!-- 搜索框部分en -->
- <div class="row chartsBox">
+ <div class="row chartsBox " style="margin-top: 40px">
<div class=" col-md-12">
<div class="echarts" id="echarts-line-chart2"></div>
</div>
</div>
+
+ <!-- <div class="row chartsBox " style="margin-top: 40px">
+ <div class=" col-md-12" id="table">
+ <table class="table table-striped" >
+ <thead>
+ <tr>
+ <th>时间</th>
+ <th v-for="name in legend" >{{name}}</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr v-for="(item,index) in xAxis">
+ <td>{{item}}</td>
+
+ <td v-for="data in series[index].data" >{{data}}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+-->
</div>
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
@@ -66,6 +88,7 @@
<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>
@@ -76,7 +99,9 @@
// 基于准备好的dom,初始化echarts实例
var myChart2 = echarts.init(document.getElementById('echarts-line-chart2'), 'macarons');
-
+ myChart2.on('click', function (params) {
+ console.log(params);
+ });
// 指定图表的配置项和数据
function getption(title) {
@@ -113,6 +138,12 @@
yAxis: {
type: 'value'
},
+ series: [{
+ name: '人头数',
+ type: 'line',
+ smooth: true,
+ data: [1,2]
+ }],
dataZoom: [
{
id: 'dataZoomX',
@@ -121,23 +152,6 @@
filterMode: 'filter'
}
],
- series: [{
- name: '客流量',
- type: 'line',
- smooth: true,
- data: [],
- markLine: {
- data: [
- {type: 'average', name: '平均值'}
- ]
- },
- markPoint: {
- data: [
- {type: 'max', name: '最大值'},
- {type: 'min', name: '最小值'}
- ]
- },
- }],
animation: true,
animationDuration: 1000,
animationDurationUpdate: 1000,
@@ -151,19 +165,18 @@
//加载数据
function loadData() {
-
-
-
//加载门店客流对比
myChart2.showLoading();
$.AjaxProxy({
p: MForm.toJson("#serchform"),
c: false,
- }).invoke(basePath+"/admin/analysis/vipVisitTendency",
+ }).invoke(basePath+"/admin/analysis/vipVisitCompare",
function (loj) {
var map = loj.getValue("mapInfo");
- var option = getption("门店客流趋势对比");
+ console.log(map);
+ var option = getption("门店人头数对比");
option.series = map.series;
+ console.log("option.series",option.series);
option.legend.data = map.legendData;
option.xAxis.data = map.xAxis;
console.log(option);
@@ -171,18 +184,28 @@
myChart2.setOption(option);
myChart2.hideLoading();
-
-
});
-
-
}
-
var ChartsUtils = new ChartsUtils(loadData);
ChartsUtils.setDataPackTimeValue();
ChartsUtils.loadChartData();
+
+ function buildTable(map){
+ console.log(buildTable,map);
+ var app = new Vue({
+ el: '#table',
+ data: {
+ series : map.series,
+ legend : map.legendData,
+ xAxis : map.xAxis
+ }
+ } );
+ }
+
+
+
</script>
</body>
--
Gitblit v1.9.1