package com.matrix.system.hiveErp.action; import com.matrix.component.redis.RedisClient; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.tools.DataAuthUtil; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.SysShopInfoDao; import com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl; import com.matrix.system.hiveErp.analysUtil.*; import com.matrix.system.hiveErp.dao.TjVipSumDao; 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.*; /** * 会员数据分析 * @author jyy */ @Controller @RequestMapping(value = "admin/analysis") public class DataAnalysisCustomer { @Autowired TjVipSumDao tjVipSumDao; @Autowired SysShopInfoDao shopInfoDao; @Autowired DataAnalysisCustomerServiceImpl dataAnalysisCustomerService; /** * 会员人头数统计 * 业务说明: * 人头指门店所有进店客户的总人数,同一个人在一段时间内无论进店几次都视为一次进店 * 比如:张三1个月来了3次做护理,李四来2次做护理,杨欢来2次做护理,但是只统计客户名字,那人头就是3个 * @param statisticsParam * @return */ @RequestMapping(value = "/customerHeadCompare") public @ResponseBody AjaxResult customerHeadCompare(StatisticsParamVo statisticsParam) { return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate() { @Override public Map exec(List timeSpaceParam, Long shopId, Long companyId) { //从员工业绩统计表中,按时间段,门店的维度统计人头数 return tjVipSumDao.customerHeadCompare(timeSpaceParam,shopId); } }); } /** * 会员人次统计 * 业务说明: * 一个会员在一天进店一次或者多次即为一个人次 * @param statisticsParam * @return */ @RequestMapping(value = "/customerEnterCountCompare") public @ResponseBody AjaxResult customerEnterCountCompare(StatisticsParamVo statisticsParam) { return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate() { @Override public Map exec(List timeSpaceParam, Long shopId, Long companyId) { //从员工业绩统计表中,按时间段,门店的维度统计人次 return tjVipSumDao.customerEnterCountCompare(timeSpaceParam,shopId); } }); } /** * 到店率 * 业务说明: * 门店所有客户人次数除以人头数 * @param statisticsParam * @return */ @RequestMapping(value = "/customerEnterRateCompare") public @ResponseBody AjaxResult customerEnterRateCompare(StatisticsParamVo statisticsParam) { return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate() { @Override public Map exec(List timeSpaceParam, Long shopId, Long companyId) { //从员工业绩统计表中,按时间段,门店的维度统计人次 return tjVipSumDao.customerEnterRateCompare(timeSpaceParam,shopId); } }); } }