From b65bed18e05354cd62addab145ed1078546d5d20 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 22 Feb 2022 15:41:04 +0800 Subject: [PATCH] =?UTF-8?q?/=E3=80=82=20baobiao=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/MarkingDataReportController.java | 5 + .../mapper/WxCouponActionLogMapper.java | 6 +- .../service/WxCouponActionLogService.java | 17 +- .../impl/MarkingDataReportServiceImpl.java | 265 +++--------------- .../service/impl/WxCarCmdLogServiceImpl.java | 1 - .../service/impl/WxChartServiceImpl.java | 12 +- .../impl/WxCouponActionLogServiceImpl.java | 71 +++++ .../resources/mapper/WxCarCmdLogMapper.xml | 17 +- .../mapper/WxCouponActionLogMapper.xml | 38 +-- .../main/resources/mapper/WxMallMapper.xml | 8 +- 10 files changed, 159 insertions(+), 281 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java index 8dbc0324f..1c9e41601 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/MarkingDataReportController.java @@ -11,6 +11,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -72,6 +73,10 @@ public class MarkingDataReportController extends BaseController { @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) public ResultData findSceneDataList(@ModelAttribute MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] MarkingDataReportController::findSceneDataList"); + if(StringUtils.isBlank(getTenantInfo().getTenantId())){ + //todo 集团版查询数据待重构 + return new ResultData("集团版查询数据待重构"); + } return new ResultData(markingDataReportService.getSceneDataList(getTenantInfo(), markingCouponDataReportDto, pageNum, pageSize)); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponActionLogMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponActionLogMapper.java index 1edfc4c6b..2771c8190 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponActionLogMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponActionLogMapper.java @@ -21,9 +21,9 @@ public interface WxCouponActionLogMapper extends CommonMapper sceneDataMap(HashMap params); // will be deleted - void updateCreateTimeMd(HashMap params); + void updateCreateTimeMd(@Param("tenantId") String tenantId); - List getSceneDataMap(HashMap params); + List getSceneDataMap(@Param("tenantId") String tenantId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); List sceneDataMapJoinCouponOrder(HashMap params); @@ -40,7 +40,7 @@ public interface WxCouponActionLogMapper extends CommonMapper tenantEntitys, @Param("tenantId") String tenantId, @Param("parentTenantId") String parentTenantId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); + int getCountByDateLimit(@Param("tenantId") String tenantId, @Param("startTime") Date startTime, @Param("endTime") Date endTime); int getCountByChannelId(@Param("tenantId")String tenantId,@Param("parentTenantId")String parentTenantId,@Param("channelType") int channelType,@Param("channelId")Long channelId); diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponActionLogService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponActionLogService.java index bddd6bdca..24eb363f5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponActionLogService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponActionLogService.java @@ -1,10 +1,16 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; +import com.iformall.domain.dto.MarkingCouponDataReportDto; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.WxCouponActionLog; +import com.iformall.domain.vo.MarkingSceneDataReportVo; +import com.iformall.domain.vo.MarkingSceneDataVo; import com.iformall.domain.vo.WxCouponActionLogVo; +import java.util.Date; +import java.util.HashMap; +import java.util.List; import java.util.Map; public interface WxCouponActionLogService { @@ -55,5 +61,14 @@ public interface WxCouponActionLogService { * @return */ PageInfo getActionLog(Map params, Integer pageNum, Integer pageSize) ; - + + int getCountByDateLimit(TenantEntity tenantEntity, Date startTime, Date endTime); + + void updateCreateTimeMd(TenantEntity tenantEntity); + + Map getSceneDataMap(TenantEntity tenantEntity, Date startTime, Date endTime); + + List sceneDataList(MarkingCouponDataReportDto queryDto); + + List sceneDataJoinCouponOrderList(HashMap params); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java index 02d60f0e0..0501ddbb1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -16,6 +16,7 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.*; import com.iformall.service.ExcelService; import com.iformall.service.MarkingDataReportService; +import com.iformall.service.WxCouponActionLogService; import com.iformall.service.WxCouponOrderService; import com.iformall.utils.DateUtils; import org.apache.commons.collections.map.HashedMap; @@ -44,7 +45,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { @Autowired private WxCouponOrderMapper wxCouponOrderMapper; @Autowired - private WxCouponActionLogMapper wxCouponActionLogMapper; + private WxCouponActionLogService wxCouponActionLogService; @Autowired private WxCarCmdLogMapper wxCarCmdLogMapper; @Autowired @@ -164,11 +165,10 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { @Override public Map getSceneData(TenantEntity tenantEntity) { - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); //今日营销投放券数 - int todaySceneCount = wxCouponActionLogMapper.getCountByDateLimit(tenantEntitys, tenantEntity.getTenantId(), tenantEntity.getParentTenantId(), addDay(0), addDay(1)); - int yesterdayCount = wxCouponActionLogMapper.getCountByDateLimit(tenantEntitys, tenantEntity.getTenantId(), tenantEntity.getParentTenantId(), addDay(-1), addDay(0)); - int lastWeekCount = wxCouponActionLogMapper.getCountByDateLimit(tenantEntitys, tenantEntity.getTenantId(), tenantEntity.getParentTenantId(), addDay(-7), addDay(-6)); + int todaySceneCount = wxCouponActionLogService.getCountByDateLimit(tenantEntity, addDay(0), addDay(1)); + int yesterdayCount = wxCouponActionLogService.getCountByDateLimit(tenantEntity, addDay(-1), addDay(0)); + int lastWeekCount = wxCouponActionLogService.getCountByDateLimit(tenantEntity, addDay(-7), addDay(-6)); NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2);//控制保留小数点后几位,2:表示保留2位小数点 @@ -180,74 +180,17 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { if (lastWeekCount != 0) { sceneUpWeek = nf.format((todaySceneCount - lastWeekCount) / (float) lastWeekCount); } + HashMap returnMap = new HashMap<>(); + returnMap.put("todaySceneCount", todaySceneCount);//今日领取数 + returnMap.put("yesterdayCount", yesterdayCount);//昨日领取数 + returnMap.put("sceneDownDay", sceneDownDay);//比昨日下降 + returnMap.put("lastWeekCount", lastWeekCount);//上周领取数 + returnMap.put("sceneUpWeek", sceneUpWeek);//比上周提升 - HashMap params = new HashMap<>(); - params.put("tenantEntitys", tenantEntitys); - params.put("tenantId", tenantEntity.getTenantId()); -// if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { -// params.put("parentTenantId", tenantEntity.getParentTenantId()); -// } - params.put("startTime", addDay(-30)); - params.put("endTime", addDay(1)); - //停车发券数 停车发券被核销数 核销发券数 核销发券被核销数 - for (TenantEntity t:tenantEntitys) { - params.put("tenantId", t.getTenantId()); - wxCouponActionLogMapper.updateCreateTimeMd(params); - } - - List sceneList = wxCouponActionLogMapper.getSceneDataMap(params); + //处理数据 + wxCouponActionLogService.updateCreateTimeMd(tenantEntity); - //停车发券被核销数 - HashMap params1 = new HashMap<>(); - params1.put("tenantEntitys", tenantEntitys); - params1.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params1.put("parentTenantId", tenantEntity.getParentTenantId()); - } - params1.put("startTime", addDay(-30)); - params1.put("endTime", addDay(1)); - params1.put("channelType", EnumCouponSendSendType.CAR_STOP.getCode());//停车 - List list1 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params1); - Map parkCountMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - - //核销发券被核销数 - HashMap params2 = new HashMap<>(); - params2.put("tenantEntitys", tenantEntitys); - params2.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params2.put("parentTenantId", tenantEntity.getParentTenantId()); - } - params2.put("startTime", addDay(-30)); - params2.put("endTime", addDay(1)); - params2.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode());//核销 - List list2 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); - Map verifyCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - - // B端刷卡支付被核销数 - HashMap params3 = new HashMap<>(); - params3.put("tenantEntitys", tenantEntitys); - params3.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params3.put("parentTenantId", tenantEntity.getParentTenantId()); - } - params3.put("startTime", addDay(-30)); - params3.put("endTime", addDay(1)); - params3.put("channelType", EnumCouponSendSendType.B_MICROPAY.getCode());//B端刷卡支付 - List list3 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params3); - Map microPayCountMap = list3.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - - // 购买发券被核销数 - HashMap params4 = new HashMap<>(); - params4.put("tenantEntitys", tenantEntitys); - params4.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params4.put("parentTenantId", tenantEntity.getParentTenantId()); - } - params4.put("startTime", addDay(-30)); - params4.put("endTime", addDay(1)); - params4.put("channelType", EnumCouponSendSendType.C_ORDER.getCode());//买券 - List list4 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params4); - Map OrderCountMap = list4.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); + Map sceneMap = wxCouponActionLogService.getSceneDataMap(tenantEntity,addDay(-30),addDay(1)); String startdate = DateUtils.getTimeBefore(30, new Date()); String enddate = DateUtils.getTimeBefore(1,new Date()); @@ -258,37 +201,14 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { for(String tj:tjList){ MarkingSceneDataReportVo msdVo = new MarkingSceneDataReportVo(); msdVo.setXTime(tj); - Optional carStop = sceneList.stream().filter(c -> c.getXTime().equals(tj) && c.getChannelType() == EnumCouponSendSendType.CAR_STOP.getCode()).findFirst(); - if (!carStop.isPresent()) { - msdVo.setParkSendCount(0); - } else { - MarkingSceneDataReportTVo tvo = carStop.get(); - msdVo.setParkSendCount(tvo.getCount()); - } - - Optional couponVerify = sceneList.stream().filter(c -> c.getXTime().equals(tj) && c.getChannelType() == EnumCouponSendSendType.COUPON_VERIFY.getCode()).findFirst(); - if(!couponVerify.isPresent()) { - msdVo.setVerifySendCount(0); - } else { - MarkingSceneDataReportTVo tvo = couponVerify.get(); - msdVo.setVerifySendCount(tvo.getCount()); - } - - Optional microPay = sceneList.stream().filter(c -> c.getXTime().equals(tj) && c.getChannelType() == EnumCouponSendSendType.B_MICROPAY.getCode()).findFirst(); - if(!microPay.isPresent()) { - msdVo.setMicroPaySendCount(0); - } else { - MarkingSceneDataReportTVo tvo = microPay.get(); - msdVo.setMicroPaySendCount(tvo.getCount()); - } - - Optional orderSend = sceneList.stream().filter(c -> c.getXTime().equals(tj) && c.getChannelType() == EnumCouponSendSendType.C_ORDER.getCode()).findFirst(); - if(!orderSend.isPresent()) { - msdVo.setOrderSendCount(0); - } else { - MarkingSceneDataReportTVo tvo = orderSend.get(); - msdVo.setOrderSendCount(tvo.getCount()); - } + Integer count2 = sceneMap.get(tj + "_" + EnumCouponSendSendType.CAR_STOP.getCode()); + msdVo.setParkSendCount(count2==null?0:count2); + Integer count3 = sceneMap.get(tj + "_" + EnumCouponSendSendType.COUPON_VERIFY.getCode()); + msdVo.setVerifySendCount(count3==null?0:count3); + Integer count4 = sceneMap.get(tj + "_" + EnumCouponSendSendType.B_MICROPAY.getCode()); + msdVo.setMicroPaySendCount(count4==null?0:count4); + Integer count5 = sceneMap.get(tj + "_" + EnumCouponSendSendType.C_ORDER.getCode()); + msdVo.setMicroPaySendCount(count5==null?0:count5); msdVo.setTotal(msdVo.getParkSendCount() + msdVo.getVerifySendCount() + @@ -298,11 +218,6 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { tempDatalist.add(msdVo); } - - HashMap returnMap = new HashMap<>(); - returnMap.put("sceneDownDay", sceneDownDay);//比昨日下降 - returnMap.put("sceneUpWeek", sceneUpWeek);//比上周提升 - returnMap.put("todaySceneCount", todaySceneCount);//今日领取数 returnMap.put("sceneDataMap", tempDatalist); return returnMap; } @@ -350,10 +265,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { @Override public PageInfo getSceneDataList(TenantEntity tenantEntity, MarkingCouponDataReportDto markingCouponDataReportDto, Integer pageIndex, Integer pageSize) { - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); MarkingCouponDataReportDto queryDto = new MarkingCouponDataReportDto(); org.springframework.beans.BeanUtils.copyProperties(markingCouponDataReportDto, queryDto); - queryDto.setTenantEntitys(tenantEntitys); queryDto.updateTenantInfo(tenantEntity); HashMap params = new HashMap<>(); @@ -368,142 +281,40 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); queryDto.setEndTime(convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); } + params.put("channelType", markingCouponDataReportDto.getType()); + queryDto.setChannelType(markingCouponDataReportDto.getType()); + - //TODO 商户发券数据,下个版本需求 - if(Objects.equals(markingCouponDataReportDto.getType(),EnumCouponSendSendType.MERCHANT.getCode())) { - markingCouponDataReportDto.setType(null); - } //停车发券数 停车发券被核销数, 核销发券数 核销发券被核销数, B端刷卡支付发券数 刷卡支付发券被核销数 PageHelper.startPage(pageIndex, pageSize); - List list; - - if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.CAR_STOP.getCode())) { - queryDto.setChannelType(EnumCouponSendSendType.CAR_STOP.getCode()); - list = wxCouponActionLogMapper.sceneDataList(queryDto); - }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())) { - queryDto.setChannelType(EnumCouponSendSendType.B_MICROPAY.getCode()); - list = wxCouponActionLogMapper.sceneDataList(queryDto); - }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.COUPON_VERIFY.getCode())){ - queryDto.setChannelType(EnumCouponSendSendType.COUPON_VERIFY.getCode()); - list = wxCouponActionLogMapper.sceneDataList(queryDto); - }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())){ - queryDto.setChannelType(EnumCouponSendSendType.C_ORDER.getCode()); - list = wxCouponActionLogMapper.sceneDataList(queryDto); - }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.MERCHANT.getCode())){ - queryDto.setChannelType(markingCouponDataReportDto.getType()); - list = wxCouponActionLogMapper.sceneDataList(queryDto); - }else{ - PageHelper.clearPage(); - list = new ArrayList<>(); - } - - Map countMap = new HashMap<>(); - - params.clear(); - params.put("tenantEntitys",tenantEntitys); - params.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params.put("parentTenantId", tenantEntity.getParentTenantId()); - } - if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.CAR_STOP.getCode())){ //停车 - //停车发券被核销数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); - params.put("channelType", EnumCouponSendSendType.CAR_STOP.getCode()); - List list1 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); - countMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - } else if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())){ // B端刷卡支付 - //B端刷卡发券 被核销数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); - params.put("channelType", EnumCouponSendSendType.B_MICROPAY.getCode()); - List list2 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); - countMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - } else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.COUPON_VERIFY.getCode())){ - //核销发券被核销数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); - params.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode()); - List list3 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); - countMap = list3.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - } else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())){ - //购买发数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); - params.put("channelType", EnumCouponSendSendType.C_ORDER.getCode()); - List list4 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); - countMap = list4.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - } else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.MERCHANT.getCode())){ - //购买发数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); - params.put("channelType", markingCouponDataReportDto.getType()); - List list5 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); - countMap = list5.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); - } + List list = wxCouponActionLogService.sceneDataList(queryDto); + + List list1 = wxCouponActionLogService.sceneDataJoinCouponOrderList(params); + Map countMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); + Map triggerCountMap = new HashMap<>(); - params.clear(); - params.put("tenantEntitys",tenantEntitys); - params.put("tenantId", tenantEntity.getTenantId()); - if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { - params.put("parentTenantId", tenantEntity.getParentTenantId()); - } if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.CAR_STOP.getCode())){ //停车 //获取车辆进场数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); - params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); + params.put("cmdTypes", EnumCarCmd.getCarIn()); List markingSceneDataVos = wxCarCmdLogMapper.queryForSceneRepotyHistoryCar(params); - triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); } else if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())){ // B端刷卡支付发券 //获取B端刷卡数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); params.put("type", EnumOrderType.MICROPAY.getCode()); List markingSceneDataVos = wxOrderMapper.queryForSceneRepotyHistory(params); triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); } else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.COUPON_VERIFY.getCode())) { //获取核销数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); List markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryVerified(params); triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())) { //购买发券数 - if (markingCouponDataReportDto.getStartTime() != null) - params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); - if (markingCouponDataReportDto.getEndTime() != null) - params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); List markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryOrdered(params); triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.MERCHANT.getCode())) { - //购买发券数 -// if (markingCouponDataReportDto.getStartTime() != null) -// params.put("startTime", convertDateAndAdd(markingCouponDataReportDto.getStartTime(),0)); -// if (markingCouponDataReportDto.getEndTime() != null) -// params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); -// params.put("channelType", markingCouponDataReportDto.getType()); -// List markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyMechantHistoryOrdered(params); -// triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount())); + } NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2); @@ -522,10 +333,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { @Override public Map getSceneDataHistory(TenantEntity tenantEntity, String startDate, String endDate) { Map result = new HashedMap(); - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); MarkingCouponDataReportDto markingCouponDataReportDto = new MarkingCouponDataReportDto(); - markingCouponDataReportDto.setTenantEntitys(tenantEntitys); markingCouponDataReportDto.updateTenantInfo(tenantEntity); Date starttime = DateUtils.stringToDate(startDate); @@ -538,7 +347,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { //停车发券 markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.CAR_STOP.getCode()); - List carStopList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); + List carStopList = wxCouponActionLogService.sceneDataList(markingCouponDataReportDto); Map countMap = carStopList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); for (String date:days) { historyMap.put(date.substring(5,date.length()).replace("-","/"),"0"); @@ -551,7 +360,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { //核销发券 markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.COUPON_VERIFY.getCode()); - List couponVerifyList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); + List couponVerifyList = wxCouponActionLogService.sceneDataList(markingCouponDataReportDto); countMap = couponVerifyList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { @@ -565,7 +374,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { //交易发券 markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.C_ORDER.getCode()); - List orderList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); + List orderList = wxCouponActionLogService.sceneDataList(markingCouponDataReportDto); countMap = orderList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { @@ -579,7 +388,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { //收银台发券 markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.B_MICROPAY.getCode()); - List micropayList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); + List micropayList = wxCouponActionLogService.sceneDataList(markingCouponDataReportDto); countMap = micropayList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { @@ -593,7 +402,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { //商户发券 markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.MERCHANT.getCode()); - List merchantList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto); + List merchantList = wxCouponActionLogService.sceneDataList(markingCouponDataReportDto); countMap = merchantList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount())); historyMap = new TreeMap<>(); for (String date:days) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java index f9ff75f3a..b27e3966b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCarCmdLogServiceImpl.java @@ -82,7 +82,6 @@ public class WxCarCmdLogServiceImpl implements WxCarCmdLogService { if(StringUtils.isBlank(wxCarCmdLog.getTenantId()) && StringUtils.isNotBlank(wxCarCmdLog.getParentTenantId())){ List tenantEntitys = wxMallMapper.getTenantEntitys(wxCarCmdLog); - int count = 0; Map map = new HashMap<>(); for (TenantEntity tenantEntity:tenantEntitys) { wxCarCmdLog.updateTenantInfo(tenantEntity); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 3fca127e3..d551fc123 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -65,6 +65,8 @@ public class WxChartServiceImpl implements WxChartDataService { @Autowired WxCUserCarMapper wxCUserCarMapper; @Autowired + WxCouponActionLogService wxCouponActionLogService; + @Autowired WxCouponActionLogMapper wxCouponActionLogMapper; @Autowired WxCUserMapper wxCUserMapper; @@ -977,9 +979,7 @@ public class WxChartServiceImpl implements WxChartDataService { */ private ResultData getCarPayCarCountInWeek(TenantEntity tenantEntity) { HashMap datamap = new HashMap<>(); - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); HashMap weekParams = new HashMap<>(); - weekParams.put("tenantEntitys", tenantEntitys); weekParams.put("tenantId", tenantEntity.getTenantId()); if (StringUtils.isNotBlank(tenantEntity.getParentTenantId())) { weekParams.put("parentTenantId", tenantEntity.getParentTenantId()); @@ -1040,7 +1040,6 @@ public class WxChartServiceImpl implements WxChartDataService { * @return */ private ResultData getCarNewMemberCount(TenantEntity tenantEntity) { - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); HashMap datamap = new HashMap<>(); String oneWeekStartdate = DateUtils.getTimeBefore(7, new Date()); String oneWeekEndDate = DateUtils.getTimeBefore(1, new Date()); @@ -1187,10 +1186,9 @@ public class WxChartServiceImpl implements WxChartDataService { */ private ResultData getSaleSceneCount(TenantEntity tenantEntity) { HashMap datamap = new HashMap<>(); - List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); - int todaySceneCount = wxCouponActionLogMapper.getCountByDateLimit(tenantEntitys,tenantEntity.getTenantId(), tenantEntity.getParentTenantId(), addDay(0), addDay(1)); - int yesterdayCount = wxCouponActionLogMapper.getCountByDateLimit(tenantEntitys,tenantEntity.getTenantId(), tenantEntity.getParentTenantId(), addDay(-1), addDay(0)); - int lastWeekCount = wxCouponActionLogMapper.getCountByDateLimit(tenantEntitys,tenantEntity.getTenantId(), tenantEntity.getParentTenantId(), addDay(-7), addDay(-6)); + int todaySceneCount = wxCouponActionLogService.getCountByDateLimit(tenantEntity, addDay(0), addDay(1)); + int yesterdayCount = wxCouponActionLogService.getCountByDateLimit(tenantEntity, addDay(-1), addDay(0)); + int lastWeekCount = wxCouponActionLogService.getCountByDateLimit(tenantEntity, addDay(-7), addDay(-6)); NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2);//控制保留小数点后几位,2:表示保留2位小数点 String sceneDownDay = "--"; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponActionLogServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponActionLogServiceImpl.java index 903be3bbf..b7004de21 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponActionLogServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponActionLogServiceImpl.java @@ -2,17 +2,24 @@ package com.iformall.service.impl; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; +import com.iformall.domain.dto.MarkingCouponDataReportDto; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.WxCouponActionLog; +import com.iformall.domain.vo.MarkingSceneDataReportTVo; +import com.iformall.domain.vo.MarkingSceneDataReportVo; +import com.iformall.domain.vo.MarkingSceneDataVo; import com.iformall.domain.vo.WxCouponActionLogVo; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxCouponActionLogMapper; +import com.iformall.mapper.WxMallMapper; import com.iformall.service.WxCouponActionLogService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -27,6 +34,9 @@ public class WxCouponActionLogServiceImpl implements WxCouponActionLogService { @Autowired WxCouponActionLogMapper wxCouponActionLogMapper; + @Autowired + WxMallMapper wxMallMapper; + @Override public PageInfo listAsPage(WxCouponActionLog record, Integer pageIndex, Integer pageSize) { @@ -86,4 +96,65 @@ public class WxCouponActionLogServiceImpl implements WxCouponActionLogService { return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxCouponActionLogMapper.getActionLog(params)); } + @Override + public int getCountByDateLimit(TenantEntity tenantEntity, Date startTime, Date endTime) { + if(StringUtils.isBlank(tenantEntity.getTenantId()) + && StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ + List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); + int count = 0; + for (TenantEntity te:tenantEntitys) { + count += wxCouponActionLogMapper.getCountByDateLimit(te.getTenantId(),startTime,endTime); + } + return count; + } + return wxCouponActionLogMapper.getCountByDateLimit(tenantEntity.getTenantId(),startTime,endTime); + } + + @Override + public void updateCreateTimeMd(TenantEntity tenantEntity) { + if(StringUtils.isBlank(tenantEntity.getTenantId()) + && StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ + List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); + for (TenantEntity te:tenantEntitys) { + wxCouponActionLogMapper.updateCreateTimeMd(te.getTenantId()); + } + } + wxCouponActionLogMapper.updateCreateTimeMd(tenantEntity.getTenantId()); + } + + @Override + public Map getSceneDataMap(TenantEntity tenantEntity, Date startTime, Date endTime) { + if(StringUtils.isBlank(tenantEntity.getTenantId()) + && StringUtils.isNotBlank(tenantEntity.getParentTenantId())){ + List tenantEntitys = wxMallMapper.getTenantEntitys(tenantEntity); + Map map = new HashMap<>(); + for (TenantEntity te:tenantEntitys) { + List sceneDataMap = wxCouponActionLogMapper.getSceneDataMap(te.getTenantId(), startTime, endTime); + Map collect = sceneDataMap.stream().collect(Collectors.toMap(m -> { + return m.getXTime()+"_"+m.getChannelType(); + }, m -> { + return m.getCount(); + })); + collect.forEach((key,value) -> map.merge(key,value,Integer::sum)); + } + return map; + } + List sceneDataMap = wxCouponActionLogMapper.getSceneDataMap(tenantEntity.getTenantId(), startTime, endTime); + return sceneDataMap.stream().collect(Collectors.toMap(m -> { + return m.getXTime()+"_"+m.getChannelType(); + }, m -> { + return m.getCount(); + })); + } + + @Override + public List sceneDataList(MarkingCouponDataReportDto queryDto) { + return wxCouponActionLogMapper.sceneDataList(queryDto); + } + + @Override + public List sceneDataJoinCouponOrderList(HashMap params) { + return wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); + } + } diff --git a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml index c7ae23e6c..a3343136c 100644 --- a/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCarCmdLogMapper.xml @@ -153,18 +153,17 @@ select create_time_md as xTime, channel_type, count(create_time_md + '' + channel_type) as count - from ( - SELECT * from wx_coupon_action_log${tenantEntity.shardTableSuffix} - ) wx_coupon_action_log + from wx_coupon_action_log where channel_type in (2,3,4,5) - and `tenant_id` = #{tenantId} - - - and `parent_tenant_id` = #{parentTenantId} - and create_time >= #{startTime} and create_time <= #{endTime} group by create_time_md, channel_type @@ -172,13 +165,7 @@ update wx_coupon_action_log set create_time_md = DATE_FORMAT(create_time,'%m/%d') - where 1=1 - - and `tenant_id` = #{tenantId} - - - and `parent_tenant_id` = #{parentTenantId} - + where `tenant_id` = #{tenantId} - select COUNT(*) FROM ( - SELECT * from wx_coupon_action_log${tenantEntity.shardTableSuffix} - ) wx_coupon_action_log + select COUNT(*) FROM wx_coupon_action_log where `channel_type` != 0 and `channel_type` != 1 - - and `tenant_id` = #{tenantId} - - - and `parent_tenant_id` = #{parentTenantId} - + and `tenant_id` = #{tenantId} and `create_time` >= #{startTime} and `create_time` <= #{endTime} diff --git a/mallinkService/src/main/resources/mapper/WxMallMapper.xml b/mallinkService/src/main/resources/mapper/WxMallMapper.xml index 51936b4ad..57926db57 100644 --- a/mallinkService/src/main/resources/mapper/WxMallMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMallMapper.xml @@ -221,7 +221,13 @@