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

[营销分析][新增]商户发券

release_toaliyun_real
Burce 6 лет назад
Родитель
Сommit
5e64ee83f9
3 измененных файлов: 45 добавлений и 0 удалений
  1. +1
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java
  2. +30
    -0
      mallinkService/src/main/java/com/iformall/service/impl/MarkingDataReportServiceImpl.java
  3. +14
    -0
      mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml

+ 1
- 0
mallinkService/src/main/java/com/iformall/mapper/WxCouponOrderMapper.java Просмотреть файл

@@ -65,6 +65,7 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> {


List<MarkingSceneDataVo> queryForSceneRepotyHistoryVerified(HashMap<String,Object> params); List<MarkingSceneDataVo> queryForSceneRepotyHistoryVerified(HashMap<String,Object> params);
List<MarkingSceneDataVo> queryForSceneRepotyHistoryOrdered(HashMap<String,Object> params); List<MarkingSceneDataVo> queryForSceneRepotyHistoryOrdered(HashMap<String,Object> params);
List<MarkingSceneDataVo> queryForSceneRepotyMechantHistoryOrdered(HashMap<String,Object> params);








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

@@ -315,6 +315,11 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1));
queryDto.setEndTime(convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); queryDto.setEndTime(convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1));
} }

//TODO 商户发券数据,下个版本需求
if(Objects.equals(markingCouponDataReportDto.getType(),EnumCouponSendSendType.MERCHANT.getCode())) {
markingCouponDataReportDto.setType(null);
}
//停车发券数 停车发券被核销数, 核销发券数 核销发券被核销数, B端刷卡支付发券数 刷卡支付发券被核销数 //停车发券数 停车发券被核销数, 核销发券数 核销发券被核销数, B端刷卡支付发券数 刷卡支付发券被核销数
PageHelper.startPage(pageIndex, pageSize); PageHelper.startPage(pageIndex, pageSize);
List<MarkingSceneDataVo> list; List<MarkingSceneDataVo> list;
@@ -331,6 +336,9 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
}else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())){ }else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.C_ORDER.getCode())){
queryDto.setChannelType(EnumCouponSendSendType.C_ORDER.getCode()); queryDto.setChannelType(EnumCouponSendSendType.C_ORDER.getCode());
list = wxCouponActionLogMapper.sceneDataList(queryDto); list = wxCouponActionLogMapper.sceneDataList(queryDto);
}else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.MERCHANT.getCode())){
queryDto.setChannelType(markingCouponDataReportDto.getType());
list = wxCouponActionLogMapper.sceneDataList(queryDto);
}else{ }else{
PageHelper.clearPage(); PageHelper.clearPage();
list = new ArrayList<>(); list = new ArrayList<>();
@@ -382,6 +390,17 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
params.put("channelType", EnumCouponSendSendType.C_ORDER.getCode()); params.put("channelType", EnumCouponSendSendType.C_ORDER.getCode());
List<MarkingSceneDataReportVo> list4 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params); List<MarkingSceneDataReportVo> list4 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params);
countMap = list4.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount())); countMap = list4.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount()));
} else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.MERCHANT.getCode())){
//购买发数
params.clear();
params.put("tenantId", tenantId);
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<MarkingSceneDataReportVo> list5 = wxCouponActionLogMapper.sceneDataJoinCouponOrderList(params);
countMap = list5.stream().collect(Collectors.toMap(MarkingSceneDataReportVo::getXTime, p -> p.getTempCount()));
} }


Map<String, Integer> triggerCountMap = new HashMap<>(); Map<String, Integer> triggerCountMap = new HashMap<>();
@@ -429,6 +448,17 @@ public class MarkingDataReportServiceImpl implements MarkingDataReportService {
params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1)); params.put("endTime", convertDateAndAdd(markingCouponDataReportDto.getEndTime(), 1));
List<MarkingSceneDataVo> markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyHistoryOrdered(params); 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()));
}else if (markingCouponDataReportDto.getType().equals(EnumCouponSendSendType.MERCHANT.getCode())) {
//购买发券数
params.clear();
params.put("tenantId", tenantId);
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<MarkingSceneDataVo> markingSceneDataVos = wxCouponOrderMapper.queryForSceneRepotyMechantHistoryOrdered(params);
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);


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

@@ -213,6 +213,20 @@
group by xTime group by xTime
</select> </select>


<select id="queryForSceneRepotyMechantHistoryOrdered" resultType="com.iformall.domain.vo.MarkingSceneDataVo" parameterType="hashmap">
select DATE_FORMAT(update_date,'%Y-%m-%d') xTime, count(c.id) triggerCount
from wx_coupon_order c left join wx_coupon_action_log cal on cal.tenant_id = c.tenant_id
where cal.coupon_order_id=c.id
and c.tenant_id=#{tenantId}
<if test=" null != channelType and null != channelType">
and cal.channel_type=#{channelType}
</if>
<if test=" null != startTime and null != endTime">
and c.create_date BETWEEN #{startTime} and #{endTime}
</if>
group by xTime
</select>

<select id="queryPriceTotal" parameterType="com.iformall.domain.po.WxCouponOrder" resultType="java.lang.Integer" > <select id="queryPriceTotal" parameterType="com.iformall.domain.po.WxCouponOrder" resultType="java.lang.Integer" >
SELECT IFNULL(SUM(coupon_price),0) from wx_coupon_order SELECT IFNULL(SUM(coupon_price),0) from wx_coupon_order
where 1=1 where 1=1


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