|
|
@@ -11,9 +11,11 @@ import com.iformall.domain.vo.TouchUsersReportVo; |
|
|
import com.iformall.enums.EnumCarCmd; |
|
|
import com.iformall.enums.EnumCarCmd; |
|
|
import com.iformall.enums.EnumCouponSendSendType; |
|
|
import com.iformall.enums.EnumCouponSendSendType; |
|
|
import com.iformall.enums.EnumCouponType; |
|
|
import com.iformall.enums.EnumCouponType; |
|
|
|
|
|
import com.iformall.enums.EnumOrderType; |
|
|
import com.iformall.mapper.*; |
|
|
import com.iformall.mapper.*; |
|
|
import com.iformall.service.MarkingDataReportService; |
|
|
import com.iformall.service.MarkingDataReportService; |
|
|
import com.iformall.utils.DateUtils; |
|
|
import com.iformall.utils.DateUtils; |
|
|
|
|
|
import net.bytebuddy.asm.Advice; |
|
|
import org.slf4j.Logger; |
|
|
import org.slf4j.Logger; |
|
|
import org.slf4j.LoggerFactory; |
|
|
import org.slf4j.LoggerFactory; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
@@ -40,6 +42,8 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
private WxUserVisitMapper wxUserVisitMapper; |
|
|
private WxUserVisitMapper wxUserVisitMapper; |
|
|
@Autowired |
|
|
@Autowired |
|
|
private WxCouponMapper wxCouponMapper; |
|
|
private WxCouponMapper wxCouponMapper; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private WxOrderMapper wxOrderMapper; |
|
|
|
|
|
|
|
|
//取本月第一天 |
|
|
//取本月第一天 |
|
|
private Date getFirstDayOfMonth() { |
|
|
private Date getFirstDayOfMonth() { |
|
|
@@ -190,7 +194,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params1.put("endTime", addDay(1)); |
|
|
params1.put("endTime", addDay(1)); |
|
|
params1.put("channelType", EnumCouponSendSendType.CAR_STOP);//停车 |
|
|
params1.put("channelType", EnumCouponSendSendType.CAR_STOP);//停车 |
|
|
List<MarkingSceneDataReportVo> list1 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params1); |
|
|
List<MarkingSceneDataReportVo> list1 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params1); |
|
|
Map<String, Integer> parkCountMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p -> p.getTempCount())); |
|
|
|
|
|
|
|
|
Map<String, Integer> parkCountMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); |
|
|
//核销发券被核销数 |
|
|
//核销发券被核销数 |
|
|
HashMap<String, Object> params2 = new HashMap<>(); |
|
|
HashMap<String, Object> params2 = new HashMap<>(); |
|
|
params2.put("tenantId", tenantId); |
|
|
params2.put("tenantId", tenantId); |
|
|
@@ -198,11 +202,21 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params2.put("endTime", addDay(1)); |
|
|
params2.put("endTime", addDay(1)); |
|
|
params2.put("channelType", EnumCouponSendSendType.COUPON_VERIFY);//核销 |
|
|
params2.put("channelType", EnumCouponSendSendType.COUPON_VERIFY);//核销 |
|
|
List<MarkingSceneDataReportVo> list2 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); |
|
|
List<MarkingSceneDataReportVo> list2 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); |
|
|
Map<String, Integer> verifyCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getxTime, p -> p.getTempCount())); |
|
|
|
|
|
|
|
|
Map<String, Integer> verifyCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); |
|
|
|
|
|
// B端刷卡支付被核销数 |
|
|
|
|
|
// TODO |
|
|
|
|
|
HashMap<String, Object> params3 = new HashMap<>(); |
|
|
|
|
|
params3.put("tenantId", tenantId); |
|
|
|
|
|
params3.put("startTime", getFirstDayOfMonth()); |
|
|
|
|
|
params3.put("endTime", addDay(1)); |
|
|
|
|
|
params3.put("channelType", EnumCouponSendSendType.B_MICROPAY);//B端刷卡支付 |
|
|
|
|
|
List<MarkingSceneDataReportVo> list3 = wxCouponActionLogMapper.sceneDataMapJoinCouponOrder(params2); |
|
|
|
|
|
Map<String, Integer> microPayCountMap = list2.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); |
|
|
|
|
|
|
|
|
for (MarkingSceneDataReportVo vo : list) { |
|
|
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()); |
|
|
String startdate = DateUtils.getTimeBefore(30, new Date()); |
|
|
@@ -212,16 +226,18 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
List<MarkingSceneDataReportVo> tempDatalist =new LinkedList<>(); |
|
|
List<MarkingSceneDataReportVo> tempDatalist =new LinkedList<>(); |
|
|
|
|
|
|
|
|
for(String tj:tjList){ |
|
|
for(String tj:tjList){ |
|
|
Optional<MarkingSceneDataReportVo> first = list.stream().filter(c -> c.getxTime().equals(tj)).findFirst(); |
|
|
|
|
|
|
|
|
Optional<MarkingSceneDataReportVo> first = list.stream().filter(c -> c.getXTime().equals(tj)).findFirst(); |
|
|
if(!first.isPresent()){ |
|
|
if(!first.isPresent()){ |
|
|
MarkingSceneDataReportVo markingSceneDataReportVo = new MarkingSceneDataReportVo(); |
|
|
MarkingSceneDataReportVo markingSceneDataReportVo = new MarkingSceneDataReportVo(); |
|
|
markingSceneDataReportVo.setxTime(tj); |
|
|
|
|
|
|
|
|
markingSceneDataReportVo.setXTime(tj); |
|
|
|
|
|
markingSceneDataReportVo.setCarCount(0); |
|
|
markingSceneDataReportVo.setParkCount(0); |
|
|
markingSceneDataReportVo.setParkCount(0); |
|
|
markingSceneDataReportVo.setVerifyCount(0); |
|
|
markingSceneDataReportVo.setVerifyCount(0); |
|
|
|
|
|
markingSceneDataReportVo.setMicroPayCount(0); |
|
|
markingSceneDataReportVo.setTempCount(0); |
|
|
markingSceneDataReportVo.setTempCount(0); |
|
|
markingSceneDataReportVo.setCarCount(0); |
|
|
|
|
|
markingSceneDataReportVo.setParkSendCount(0); |
|
|
markingSceneDataReportVo.setParkSendCount(0); |
|
|
markingSceneDataReportVo.setVerifySendCount(0); |
|
|
markingSceneDataReportVo.setVerifySendCount(0); |
|
|
|
|
|
markingSceneDataReportVo.setMicroPaySendCount(0); |
|
|
tempDatalist.add(markingSceneDataReportVo); |
|
|
tempDatalist.add(markingSceneDataReportVo); |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
@@ -279,14 +295,14 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params.put("startTime", convertDate(markingCouponDataReportDto.getStartTime())); |
|
|
params.put("startTime", convertDate(markingCouponDataReportDto.getStartTime())); |
|
|
if (markingCouponDataReportDto.getEndTime() != null) |
|
|
if (markingCouponDataReportDto.getEndTime() != null) |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
//停车发券数 停车发券被核销数 核销发券数 核销发券被核销数 |
|
|
|
|
|
|
|
|
//停车发券数 停车发券被核销数, 核销发券数 核销发券被核销数, B端刷卡支付发券数 刷卡支付发券被核销数 |
|
|
PageHelper.startPage(pageIndex, pageSize); |
|
|
PageHelper.startPage(pageIndex, pageSize); |
|
|
List<MarkingSceneDataReportVo> templist = wxCouponActionLogMapper.sceneDataList(params); |
|
|
List<MarkingSceneDataReportVo> templist = wxCouponActionLogMapper.sceneDataList(params); |
|
|
|
|
|
|
|
|
List<MarkingSceneDataVo> list = new ArrayList<>(); |
|
|
List<MarkingSceneDataVo> list = new ArrayList<>(); |
|
|
for (MarkingSceneDataReportVo temp: templist) { |
|
|
for (MarkingSceneDataReportVo temp: templist) { |
|
|
MarkingSceneDataVo vo = new MarkingSceneDataVo(); |
|
|
MarkingSceneDataVo vo = new MarkingSceneDataVo(); |
|
|
vo.setxTime(temp.getxTime()); |
|
|
|
|
|
|
|
|
vo.setxTime(temp.getXTime()); |
|
|
if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.CAR_STOP.getCode())) { |
|
|
if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.CAR_STOP.getCode())) { |
|
|
vo.setSendCount(temp.getParkSendCount()); |
|
|
vo.setSendCount(temp.getParkSendCount()); |
|
|
}else{ |
|
|
}else{ |
|
|
@@ -307,8 +323,19 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
params.put("channelType", EnumCouponSendSendType.CAR_STOP.getCode()); |
|
|
params.put("channelType", EnumCouponSendSendType.CAR_STOP.getCode()); |
|
|
List<MarkingSceneDataReportVo> list1 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); |
|
|
List<MarkingSceneDataReportVo> 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<MarkingSceneDataReportVo> list1 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); |
|
|
|
|
|
countMap = list1.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); |
|
|
|
|
|
} else{ |
|
|
//核销发券被核销数 |
|
|
//核销发券被核销数 |
|
|
params.clear(); |
|
|
params.clear(); |
|
|
params.put("tenantId", tenantId); |
|
|
params.put("tenantId", tenantId); |
|
|
@@ -318,7 +345,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
params.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode()); |
|
|
params.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode()); |
|
|
List<MarkingSceneDataReportVo> list2 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); |
|
|
List<MarkingSceneDataReportVo> 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<String, Integer> triggerCountMap = new HashMap<>(); |
|
|
Map<String, Integer> triggerCountMap = new HashMap<>(); |
|
|
@@ -334,7 +361,18 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); |
|
|
params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); |
|
|
List<MarkingSceneDataVo> markingSceneDataVos = wxCarCmdLogMapper.queryForSceneRepotyHistoryCar(params); |
|
|
List<MarkingSceneDataVo> markingSceneDataVos = wxCarCmdLogMapper.queryForSceneRepotyHistoryCar(params); |
|
|
triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getxTime, p -> p.getTriggerCount())); |
|
|
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<MarkingSceneDataVo> markingSceneDataVos = wxOrderMapper.queryForSceneRepotyHistory(params); |
|
|
|
|
|
triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getxTime, p -> p.getTriggerCount())); |
|
|
|
|
|
} else { |
|
|
//获取核销数 |
|
|
//获取核销数 |
|
|
params.clear(); |
|
|
params.clear(); |
|
|
params.put("tenantId", tenantId); |
|
|
params.put("tenantId", tenantId); |
|
|
@@ -344,7 +382,6 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService { |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
params.put("endTime", convertDateAndAdd(convertDate(markingCouponDataReportDto.getEndTime()), 1)); |
|
|
List<MarkingSceneDataVo> markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryVerified(params); |
|
|
List<MarkingSceneDataVo> markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryVerified(params); |
|
|
triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getxTime, p -> p.getTriggerCount())); |
|
|
triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getxTime, p -> p.getTriggerCount())); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
NumberFormat nf = NumberFormat.getPercentInstance(); |
|
|
NumberFormat nf = NumberFormat.getPercentInstance(); |
|
|
nf.setMinimumFractionDigits(2); |
|
|
nf.setMinimumFractionDigits(2); |
|
|
|