Просмотр исходного кода

[场景发券][修改][图表统计]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
417b10b9ab
3 измененных файлов: 23 добавлений и 24 удалений
  1. +2
    -1
      mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java
  2. +18
    -20
      mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java
  3. +3
    -3
      mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml

+ 2
- 1
mallinkService/src/main/java/com/iformall/domain/vo/MarkingSceneDataVo.java Просмотреть файл

@@ -14,5 +14,6 @@ public class MarkingSceneDataVo {
private int sendCount; //场景营销发券数
private int verifiedCount; //场景营销券核销数
private String verifiedPercent; //场景营销核销比
private String xTime; //时间
private String xtime; //时间

}

+ 18
- 20
mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java Просмотреть файл

@@ -390,7 +390,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
params.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode());
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 if(markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.B_MICROPAY.getCode())){ // B端刷卡支付发券
//获取B端刷卡数
params.clear();
@@ -401,7 +401,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
params.put("endTime", convertDateAndAdd(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()));
triggerCountMap = markingSceneDataVos.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getTriggerCount()));
} else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.COUPON_VERIFY.getCode())) {
//获取核销数
params.clear();
@@ -411,7 +411,7 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
if (markingCouponDataReportDto.getEndTime() != null)
params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1));
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()));
}else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())) {
//购买发券数
params.clear();
@@ -421,13 +421,13 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
if (markingCouponDataReportDto.getEndTime() != null)
params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1));
List<MarkingSceneDataVo> markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryOrdered(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();
nf.setMinimumFractionDigits(2);
for (MarkingSceneDataVo vo : list) {
vo.setVerifiedCount(countMap.get(vo.getXTime()) == null ? 0 : countMap.get(vo.getXTime()));
vo.setTriggerCount(triggerCountMap.get(vo.getXTime()) == null ? 0 : triggerCountMap.get(vo.getXTime()));
vo.setVerifiedCount(countMap.get(vo.getXtime()) == null ? 0 : countMap.get(vo.getXtime()));
vo.setTriggerCount(triggerCountMap.get(vo.getXtime()) == null ? 0 : triggerCountMap.get(vo.getXtime()));
if(vo.getSendCount()==0){
vo.setVerifiedPercent("--");
}else {
@@ -444,20 +444,18 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
MarkingCouponDataReportDto markingCouponDataReportDto = new MarkingCouponDataReportDto();
markingCouponDataReportDto.setTenantId(tenantId);

//if (StringUtils.isNotBlank(startDate))
//markingCouponDataReportDto.setStartTime(startDate);
// if (StringUtils.isNotBlank(endDate))
//markingCouponDataReportDto.setEndTime(endDate);

Date starttime = DateUtils.stringToDate(startDate);
markingCouponDataReportDto.setStartTime(starttime);
Date endtime = DateUtils.stringToDate(endDate, "yyyy-MM-dd 23:59:59");
markingCouponDataReportDto.setEndTime(endtime);

List<String> days = DateUtils.getTjTimeList(startDate.substring(0,10),endDate.substring(0,10),"0");
TreeMap<String, Object> historyMap = new TreeMap<>();

//停车发券
// params.put("channelType", EnumCouponSendSendType.CAR_STOP.getCode());
// markingCouponDataReportDto.setCouponType();
markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.CAR_STOP.getCode());
List<MarkingSceneDataVo> carStopList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto);
Map<String, Integer> countMap = carStopList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount()));
Map<String, Integer> countMap = carStopList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount()));
for (String date:days) {
historyMap.put(date.substring(5,date.length()).replace("-","/"),"0");
}
@@ -468,9 +466,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
result.put("carStopHistory",historyMap);

//核销发券
// params.put("channelType", EnumCouponSendSendType.COUPON_VERIFY.getCode());
markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.COUPON_VERIFY.getCode());
List<MarkingSceneDataVo> couponVerifyList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto);
countMap = couponVerifyList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount()));
countMap = couponVerifyList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount()));
historyMap = new TreeMap<>();
for (String date:days) {
historyMap.put(date.substring(5,date.length()).replace("-","/"),"0");
@@ -482,9 +480,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
result.put("couponVerifyHistory",historyMap);

//交易发券
//params.put("channelType", EnumCouponSendSendType.C_ORDER.getCode());
markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.C_ORDER.getCode());
List<MarkingSceneDataVo> orderList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto);
countMap = orderList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount()));
countMap = orderList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount()));
historyMap = new TreeMap<>();
for (String date:days) {
historyMap.put(date.substring(5,date.length()).replace("-","/"),"0");
@@ -496,9 +494,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
result.put("orderHistory",historyMap);

//收银台发券
// params.put("channelType", EnumCouponSendSendType.B_MICROPAY.getCode());
markingCouponDataReportDto.setChannelType(EnumCouponSendSendType.B_MICROPAY.getCode());
List<MarkingSceneDataVo> micropayList = wxCouponActionLogMapper.sceneDataList(markingCouponDataReportDto);
countMap = micropayList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXTime, p -> p.getSendCount()));
countMap = micropayList.stream().collect(Collectors.toMap(MarkingSceneDataVo::getXtime, p -> p.getSendCount()));
historyMap = new TreeMap<>();
for (String date:days) {
historyMap.put(date.substring(5,date.length()).replace("-","/"),"0");


+ 3
- 3
mallinkService/src/main/resources/mapper/WxCouponActionLogMapper.xml Просмотреть файл

@@ -131,7 +131,7 @@
</select>

<select id="sceneDataList" resultType="com.iformall.domain.vo.MarkingSceneDataVo" parameterType="hashmap">
select DATE_FORMAT(create_time,'%Y-%m-%d') as xTime,
select DATE_FORMAT(create_time,'%Y-%m-%d') as xtime,
Count(*) as sendCount
from wx_coupon_action_log
where tenant_id=#{tenantId}
@@ -142,9 +142,9 @@
<if test=" null != endTime ">
and create_time &lt;= #{endTime}
</if>
group by xTime
group by xtime
<if test=" null != sortColumns"> order by ${sortColumns} </if>
<if test=" null == sortColumns"> order by xTime desc </if>
<if test=" null == sortColumns">order by xtime desc</if>
</select>

<select id="sceneDataJoinCouponOrderList" resultType="com.iformall.domain.vo.MarkingSceneDataReportVo" parameterType="hashmap">


Загрузка…
Отмена
Сохранить