package com.matrix.system.hiveErp.action; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.DateUtil; 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; /** * 到店次数趋势统计 * * @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; } /** * 获取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