diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataReportVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataReportVo.java index 089acbd2c..b374d2eb5 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataReportVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataReportVo.java @@ -1,89 +1,22 @@ package com.iformall.domain.vo; +import lombok.Data; + /** * Created by syf on 2018/8/29. */ +@Data public class MarkingSceneDataReportVo { private String xTime; - private int parkSendCount; //停车发放 - private int verifySendCount; //核销发放 - private int parkCount; //停车核销数 - private int verifyCount; //核销 核销数 + private int parkSendCount; // 停车发放 + private int verifySendCount; // 核销发放 + private int microPaySendCount; // B端刷卡支付发放 + private int parkCount; // 停车核销数 + private int verifyCount; // 核销核销数 + private int microPayCount; // 核销核销数 private int tempCount; - private Integer carCount; //车辆进场数 - private String verifyPercent; + private Integer carCount; // 车辆进场数 + private String verifyPercent; private int total; - - public int getTotal() { - return verifySendCount+parkSendCount; - } - - public void setTotal(int total) { - this.total = total; - } - - public int getTempCount() { - return tempCount; - } - - public void setTempCount(int tempCount) { - this.tempCount = tempCount; - } - - public String getxTime() { - return xTime; - } - - public void setxTime(String xTime) { - this.xTime = xTime; - } - - public int getParkSendCount() { - return parkSendCount; - } - - public void setParkSendCount(int parkSendCount) { - this.parkSendCount = parkSendCount; - } - - public int getVerifySendCount() { - return verifySendCount; - } - - public void setVerifySendCount(int verifySendCount) { - this.verifySendCount = verifySendCount; - } - - public int getParkCount() { - return parkCount; - } - - public void setParkCount(int parkCount) { - this.parkCount = parkCount; - } - - public int getVerifyCount() { - return verifyCount; - } - - public void setVerifyCount(int verifyCount) { - this.verifyCount = verifyCount; - } - - public Integer getCarCount() { - return carCount; - } - - public void setCarCount(Integer carCount) { - this.carCount = carCount; - } - - public String getVerifyPercent() { - return verifyPercent; - } - - public void setVerifyPercent(String verifyPercent) { - this.verifyPercent = verifyPercent; - } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java index 71e851d68..3a0c8cba9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java @@ -6,9 +6,9 @@ package com.iformall.domain.vo; * 场景营销数据VO */ public class MarkingSceneDataVo { - private int triggerCount; //某日进车数量/某日核销数量 - private int sendCount; //场景营销发券数 - private int verifiedCount; //场景营销券核销数 + private int triggerCount; //某日进车数量/某日核销数量/某日B端刷卡支付数量 + private int sendCount; //场景营销发券数 + private int verifiedCount; //场景营销券核销数 private String verifiedPercent; //场景营销核销比 private String xTime; //时间 diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index 3e77d0462..b6aa93e61 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -2,6 +2,7 @@ package com.iformall.mapper; import java.util.*; import com.iformall.common.CommonMapper; +import com.iformall.domain.vo.MarkingSceneDataVo; import com.iformall.domain.vo.WxOrderCVo; import com.iformall.domain.po.WxOrder; import com.iformall.domain.vo.WxOrderPayVo; @@ -22,4 +23,6 @@ public interface WxOrderMapper extends CommonMapper { Map dayMicroPayAmountList(Map dateMap); List findListOfMicroPayOrderByDate(Map dateMap); + List queryForSceneRepotyHistory(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 11da52d90..232dfbc0f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java @@ -11,9 +11,11 @@ import com.iformall.domain.vo.TouchUsersReportVo; import com.iformall.enums.EnumCarCmd; import com.iformall.enums.EnumCouponSendSendType; import com.iformall.enums.EnumCouponType; +import com.iformall.enums.EnumOrderType; import com.iformall.mapper.*; import com.iformall.service.MarkingDataReportService; import com.iformall.utils.DateUtils; +import net.bytebuddy.asm.Advice; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -40,6 +42,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { private WxUserVisitMapper wxUserVisitMapper; @Autowired private WxCouponMapper wxCouponMapper; + @Autowired + private WxOrderMapper wxOrderMapper; //取本月第一天 private Date getFirstDayOfMonth() { @@ -190,7 +194,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params1.put("endTime", addDay(1)); params1.put("channelType", EnumCouponSendSendType.CAR_STOP);//停车 List list1 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params1); - Map parkCountMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p -> p.getTempCount())); + Map parkCountMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); //核销发券被核销数 HashMap params2 = new HashMap<>(); params2.put("tenantId", tenantId); @@ -198,11 +202,21 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params2.put("endTime", addDay(1)); params2.put("channelType", EnumCouponSendSendType.COUPON_VERIFY);//核销 List list2 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); - Map verifyCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p -> p.getTempCount())); + Map verifyCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); + // B端刷卡支付被核销数 + // TODO + HashMap params3 = new HashMap<>(); + params3.put("tenantId", tenantId); + params3.put("startTime", getFirstDayOfMonth()); + params3.put("endTime", addDay(1)); + params3.put("channelType", EnumCouponSendSendType.B_MICROPAY);//B端刷卡支付 + List list3 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); + Map microPayCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); for (MarkingSceneDataReportVo vo : list) { - vo.setParkCount(parkCountMap.get(vo.getxTime()) == null ? 0 : parkCountMap.get(vo.getxTime())); - vo.setVerifyCount(verifyCountMap.get(vo.getxTime()) == null ? 0 : verifyCountMap.get(vo.getxTime())); + vo.setParkCount(parkCountMap.get(vo.getXTime()) == null ? 0 : parkCountMap.get(vo.getXTime())); + vo.setVerifyCount(verifyCountMap.get(vo.getXTime()) == null ? 0 : verifyCountMap.get(vo.getXTime())); + vo.setMicroPayCount(microPayCountMap.get(vo.getXTime()) == null ? 0 : microPayCountMap.get(vo.getXTime())); } String startdate = DateUtils.getTimeBefore(30, new Date()); @@ -212,16 +226,18 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { List tempDatalist =new LinkedList<>(); for(String tj:tjList){ - Optional first = list.stream().filter(c -> c.getxTime().equals(tj)).findFirst(); + Optional first = list.stream().filter(c -> c.getXTime().equals(tj)).findFirst(); if(!first.isPresent()){ MarkingSceneDataReportVo markingSceneDataReportVo = new MarkingSceneDataReportVo(); - markingSceneDataReportVo.setxTime(tj); + markingSceneDataReportVo.setXTime(tj); + markingSceneDataReportVo.setCarCount(0); markingSceneDataReportVo.setParkCount(0); markingSceneDataReportVo.setVerifyCount(0); + markingSceneDataReportVo.setMicroPayCount(0); markingSceneDataReportVo.setTempCount(0); - markingSceneDataReportVo.setCarCount(0); markingSceneDataReportVo.setParkSendCount(0); markingSceneDataReportVo.setVerifySendCount(0); + markingSceneDataReportVo.setMicroPaySendCount(0); tempDatalist.add(markingSceneDataReportVo); continue; } @@ -279,14 +295,14 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("startTime", convertDate(markingCouponDataReportDto.getStartTime())); if (markingCouponDataReportDto.getEndTime() != null) params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); - //停车发券数 停车发券被核销数 核销发券数 核销发券被核销数 + //停车发券数 停车发券被核销数, 核销发券数 核销发券被核销数, B端刷卡支付发券数 刷卡支付发券被核销数 PageHelper.startPage(pageIndex, pageSize); List templist = wxCouponActionLogMapper.sceneDataList(params); List list = new ArrayList<>(); for (MarkingSceneDataReportVo temp: templist) { MarkingSceneDataVo vo = new MarkingSceneDataVo(); - vo.setxTime(temp.getxTime()); + vo.setxTime(temp.getXTime()); if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.CAR_STOP.getCode())) { vo.setSendCount(temp.getParkSendCount()); }else{ @@ -307,8 +323,19 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("endTime", convertDateAndAdd(convertDate(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{ + countMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); + } else if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())){ // B端刷卡支付 + //B端刷卡发券 被核销数 + params.clear(); + params.put("tenantId", tenantId); + if (markingCouponDataReportDto.getStartTime() != null) + params.put("startTime", convertDate(markingCouponDataReportDto.getStartTime())); + if (markingCouponDataReportDto.getEndTime() != null) + params.put("endTime", convertDateAndAdd(convertDate(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{ //核销发券被核销数 params.clear(); params.put("tenantId", tenantId); @@ -318,7 +345,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); params.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode()); List list2 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); - countMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p -> p.getTempCount())); + countMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); } Map triggerCountMap = new HashMap<>(); @@ -334,7 +361,18 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); List markingSceneDataVos = wxCarCmdLogMapper.queryForSceneRepotyHistoryCar(params); triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getxTime, p -> p.getTriggerCount())); - }else { + } else if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())){ // B端刷卡支付发券 + //获取B端刷卡数 + params.clear(); + params.put("tenantId", tenantId); + if (markingCouponDataReportDto.getStartTime() != null) + params.put("startTime", convertDate(markingCouponDataReportDto.getStartTime())); + if (markingCouponDataReportDto.getEndTime() != null) + params.put("endTime", convertDateAndAdd(convertDate(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 { //获取核销数 params.clear(); params.put("tenantId", tenantId); @@ -344,7 +382,6 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); List markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryVerified(params); triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getxTime, p -> p.getTriggerCount())); - } NumberFormat nf = NumberFormat.getPercentInstance(); nf.setMinimumFractionDigits(2); diff --git a/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml index e54f563bc..9b78a215b 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml @@ -118,7 +118,11 @@ (select Count(*) from wx_coupon_action_log c where DATE_FORMAT(create_time,'%Y-%m-%d')=xTime and c.channel_type=3 - and tenant_id=#{tenantId}) as verifySendCount + and tenant_id=#{tenantId}) as verifySendCount, + (select Count(*) from wx_coupon_action_log c + where DATE_FORMAT(create_time,'%Y-%m-%d')=xTime + and c.channel_type=4 + and tenant_id=#{tenantId}) as microPaySendCount from wx_coupon_action_log where tenant_id=#{tenantId} diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index 5f74a3a74..f2ffa605c 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -324,5 +324,15 @@ order by o.create_date desc + +