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; import com.matrix.system.hiveErp.util.StatisticsTimeUtil; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.*; @Controller @RequestMapping(value = "admin/analysis") public class CustomerAnalysis { @Autowired TjVipSumDao tjVipSumDao; @Autowired SysShopInfoDao shopInfoDao; /** * 到店次数趋势统计 * * @return @RequestMapping(value = "/vipVisitTendency") public @ResponseBody AjaxResult vipVisit(StatisticsParamVo statisticsParam) { AjaxResult result = new AjaxResult(); //计算横坐标 List xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); Map yAxisMap = tjVipSumDao.countVisitByTime(buidParam(xAxis),null); Integer[] series= getSeries(yAxisMap); //构造返回对象 Map data=new HashMap<>(); data.put("series",series); data.put("xAxis", getFormartDateList(xAxis,statisticsParam)); result.setMapInfo(data); 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 xAxis = StatisticsTimeUtil.getTimeSpace(statisticsParam.getBeginTime(), statisticsParam.getEndTime(), statisticsParam.getStatisticsUnit()); //获取所有门店 List shops= shopInfoDao.selectShopInfo(user.getCompanyId()); List 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 yAxisMap = tjVipSumDao.countVisitByTime(buidParam(xAxis),shop.getId()); storeInfoSeries.setData(getSeries(yAxisMap)); series.add(storeInfoSeries); } //构造返回对象 Map 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中的值为数组 * @param yAxisMap * @return */ private Integer[] getSeries(Map yAxisMap) { if (MapUtils.isNotEmpty(yAxisMap)) { Integer[] seroes = new Integer[yAxisMap.size()-1]; for (int index=0; index xAxis,StatisticsParamVo statisticsParam) { String[] dates=new String[xAxis.size()]; String dataFmt=""; switch (statisticsParam.getStatisticsUnit()){ case "时": dataFmt= DateUtil.DATE_FORMAT_HH; break; case "日": dataFmt=DateUtil.DATE_FORMAT_DD; break; case "月": dataFmt=DateUtil.MONTH; break; case "年": dataFmt=DateUtil.YEAR; break; } for(int i=0 ; i buidParam(List xAxis) { List daoParams = new ArrayList<>(); for(int i=0 ;i