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

//activity v.2

release_toaliyun_real
xiaohu 1 год назад
Родитель
Сommit
f4f8822df5
53 измененных файлов: 1150 добавлений и 55 удалений
  1. +135
    -5
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoActivitySpecialTopicController.java
  2. +4
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoAmountGiftActivityController.java
  3. +4
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoCashBackActivityController.java
  4. +5
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java
  5. +8
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrant.java
  6. +5
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantAward.java
  7. +9
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantExport.java
  8. +16
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantSettlement.java
  9. +3
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivitySpecialTopic.java
  10. +8
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrant.java
  11. +5
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrantAward.java
  12. +22
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxVtwoActivityStatisticsVo.java
  13. +23
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxVtwoAwardGrantStatistics.java
  14. +28
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxVtwoAwardStatistics.java
  15. +22
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxVtwoMerchantSettlementStatistics.java
  16. +1
    -1
      mallinkService/src/main/java/com/iformall/domain/vo/WxVtwoOrderBusinessStatistics.java
  17. +18
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxVtwoSettlementStatistics.java
  18. +9
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxVtwoActivityGrantAwardMapper.java
  19. +6
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxVtwoActivityGrantMapper.java
  20. +12
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxVtwoActivityGrantSettlementMapper.java
  21. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxVtwoCashBackGrantAwardMapper.java
  22. +6
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxVtwoCashBackGrantMapper.java
  23. +1
    -0
      mallinkService/src/main/java/com/iformall/service/WxOfflineActivityGrantSettlementService.java
  24. +9
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoActivityGrantAwardService.java
  25. +6
    -1
      mallinkService/src/main/java/com/iformall/service/WxVtwoActivityGrantService.java
  26. +15
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoActivityGrantSettlementService.java
  27. +22
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoActivityGrantStatisticsService.java
  28. +9
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoActivityOrderService.java
  29. +5
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoActivitySpecialTopicService.java
  30. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackAwardService.java
  31. +4
    -0
      mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackGrantAwardService.java
  32. +6
    -4
      mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackGrantService.java
  33. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxVtwoSpecialTopicActivityService.java
  34. +34
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantAwardServiceImpl.java
  35. +4
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantExportServiceImpl.java
  36. +29
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantServiceImpl.java
  37. +53
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantSettlementServiceImpl.java
  38. +214
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityGrantStatisticsServiceImpl.java
  39. +59
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivityOrderServiceImpl.java
  40. +42
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoActivitySpecialTopicServiceImpl.java
  41. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoAmountGiftActivityServiceImpl.java
  42. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackActivityServiceImpl.java
  43. +13
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackAwardServiceImpl.java
  44. +19
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantAwardServiceImpl.java
  45. +27
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoCashBackGrantServiceImpl.java
  46. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoPrizeDrawActivityServiceImpl.java
  47. +13
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxVtwoSpecialTopicActivityServiceImpl.java
  48. +33
    -0
      mallinkService/src/main/resources/mapper/WxVtwoActivityGrantAwardMapper.xml
  49. +8
    -3
      mallinkService/src/main/resources/mapper/WxVtwoActivityGrantExportMapper.xml
  50. +32
    -1
      mallinkService/src/main/resources/mapper/WxVtwoActivityGrantMapper.xml
  51. +80
    -0
      mallinkService/src/main/resources/mapper/WxVtwoActivityGrantSettlementMapper.xml
  52. +21
    -0
      mallinkService/src/main/resources/mapper/WxVtwoCashBackGrantAwardMapper.xml
  53. +31
    -1
      mallinkService/src/main/resources/mapper/WxVtwoCashBackGrantMapper.xml

+ 135
- 5
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoActivitySpecialTopicController.java Просмотреть файл

@@ -1,8 +1,8 @@
package com.iformall.controller.market; package com.iformall.controller.market;


import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.annotation.ApiVersion; import com.iformall.annotation.ApiVersion;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.constant.SwaggerConstant; import com.iformall.constant.SwaggerConstant;
@@ -10,8 +10,9 @@ import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxVtwoActivityCreditRule;
import com.iformall.domain.vo.*;
import com.iformall.enums.*; import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.service.*; import com.iformall.service.*;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;


/** /**
* @author alascor * @author alascor
@@ -46,6 +48,15 @@ public class WxVtwoActivitySpecialTopicController extends BaseController {
@Autowired @Autowired
private WxVtwoCashBackActivityService wxVtwoCashBackActivityService; private WxVtwoCashBackActivityService wxVtwoCashBackActivityService;


@Autowired
private WxVtwoActivityOrderService wxVtwoActivityOrderService;

@Autowired
private WxVtwoActivityGrantSettlementService wxVtwoActivityGrantSettlementService;

@Autowired
private WxVtwoActivityGrantStatisticsService wxVtwoActivityGrantStatisticsService;

@ApiVersion(group = SwaggerConstant.V_A_2_0) @ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("分页列表接口") @ApiOperation("分页列表接口")
@GetMapping("list") @GetMapping("list")
@@ -129,9 +140,16 @@ public class WxVtwoActivitySpecialTopicController extends BaseController {
return new ResultData(Result.ERROR,"活动参数异常"); return new ResultData(Result.ERROR,"活动参数异常");
} }
} }

wxVtwoActivitySpecialTopicService.saveOrUpdate(specialTopic);
return new ResultData(specialTopic);
try{
wxVtwoActivitySpecialTopicService.saveOrUpdate(specialTopic);
return new ResultData(specialTopic);
}catch(MallinkException e){
logger.error(e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());
}catch(Exception e){
logger.error("异常:" + e);
return new ResultData(ErrorCode.SYS_SERVER_ERROR);
}
} }


@ApiVersion(group = SwaggerConstant.V_A_2_0) @ApiVersion(group = SwaggerConstant.V_A_2_0)
@@ -173,4 +191,116 @@ public class WxVtwoActivitySpecialTopicController extends BaseController {
return new ResultData(specialTopic); return new ResultData(specialTopic);
} }


@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取参与订单数据报表")
@GetMapping("orderStatistics")
public ResultData recordStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);
return new ResultData(wxVtwoActivityOrderService.orderCountStatistics(statisticsVo));
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取参与订单数据折线图")
@GetMapping("orderStatisticsChart")
public ResultData recordStatisticsChart(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);
return new ResultData(wxVtwoActivityOrderService.orderCountStatisticsChart(statisticsVo));
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取活动营销费用")
@GetMapping("settlementStatistics")
public ResultData settlementStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);
return new ResultData(wxVtwoActivityGrantSettlementService.activitySettlementStatistics(statisticsVo));
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取参与订单品类分布")
@GetMapping("orderBusinessStatistics")
public ResultData orderBusinessStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);
return new ResultData(wxVtwoActivityOrderService.orderBusinessStatistics(statisticsVo));
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取活动项数据统计")
@GetMapping("activityAwardStatistics")
public ResultData activityAwardStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
if(statisticsVo.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(statisticsVo.getActivityType() == null || EnumOfflineActivityType.getEnum(statisticsVo.getActivityType()) == null){
return new ResultData(Result.ERROR,"活动类型为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);

return new ResultData(wxVtwoActivityGrantStatisticsService.activityAwardStatistics(statisticsVo));
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取活动项数据统计折现图")
@GetMapping("activityAwardStatisticsChart")
public ResultData activityAwardStatisticsChart(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
if(statisticsVo.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(statisticsVo.getActivityType() == null || EnumOfflineActivityType.getEnum(statisticsVo.getActivityType()) == null){
return new ResultData(Result.ERROR,"活动类型为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);

return new ResultData(wxVtwoActivityGrantStatisticsService.activityAwardStatisticsChart(statisticsVo));
}

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("获取活动项奖品分布")
@GetMapping("awardItemStatistics")
public ResultData awardItemStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) {
if(statisticsVo.getId() == null){
return new ResultData(Result.ERROR,"ID为空");
}
if(statisticsVo.getActivityId() == null){
return new ResultData(Result.ERROR,"活动ID为空");
}
if(statisticsVo.getActivityType() == null || EnumOfflineActivityType.getEnum(statisticsVo.getActivityType()) == null){
return new ResultData(Result.ERROR,"活动类型为空");
}
TenantEntity tenantInfo = getTenantInfo();
statisticsVo.updateTenantInfo(tenantInfo);
wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo);

return new ResultData(wxVtwoActivityGrantStatisticsService.awardItemStatistics(statisticsVo));
}

} }

+ 4
- 4
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoAmountGiftActivityController.java Просмотреть файл

@@ -10,10 +10,7 @@ import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule;
import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityMode;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoActivityGrantService; import com.iformall.service.WxVtwoActivityGrantService;
import com.iformall.service.WxVtwoActivityOrderService; import com.iformall.service.WxVtwoActivityOrderService;
@@ -289,6 +286,7 @@ public class WxVtwoAmountGiftActivityController extends BaseController {
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){ if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态"); throw new MallinkException(Result.ERROR, "请检查活动状态");
} }

if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){ if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){ if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单"); return new ResultData(Result.ERROR,"请筛选订单");
@@ -302,6 +300,8 @@ public class WxVtwoAmountGiftActivityController extends BaseController {
// if(StringUtils.isBlank(activityGrant.getSignImg())){ // if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空"); // return new ResultData(Result.ERROR,"签名为空");
// } // }
activityGrant.setActivityType(EnumOfflineActivityType.GIFT.getCode());
activityGrant.setActivityName(amountGiftActivity.getName());
activityGrant.setCreateBy(getUserId()); activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName()); activityGrant.setCreateByName(getUser().getName());
try{ try{


+ 4
- 4
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoCashBackActivityController.java Просмотреть файл

@@ -10,10 +10,7 @@ import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule;
import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityMode;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoActivityOrderService; import com.iformall.service.WxVtwoActivityOrderService;
import com.iformall.service.WxVtwoAmountGiftActivityService; import com.iformall.service.WxVtwoAmountGiftActivityService;
@@ -312,6 +309,7 @@ public class WxVtwoCashBackActivityController extends BaseController {
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){ if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态"); throw new MallinkException(Result.ERROR, "请检查活动状态");
} }

if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){ if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){ if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单"); return new ResultData(Result.ERROR,"请筛选订单");
@@ -325,6 +323,8 @@ public class WxVtwoCashBackActivityController extends BaseController {
// if(StringUtils.isBlank(activityGrant.getSignImg())){ // if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空"); // return new ResultData(Result.ERROR,"签名为空");
// } // }
activityGrant.setActivityType(EnumOfflineActivityType.CASHBACK.getCode());
activityGrant.setActivityName(cashBackActivity.getName());
activityGrant.setCreateBy(getUserId()); activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName()); activityGrant.setCreateByName(getUser().getName());
try{ try{


+ 5
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxVtwoPrizeDrawActivityController.java Просмотреть файл

@@ -12,6 +12,9 @@ import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseEntity.SortField; import com.iformall.domain.po.base.BaseEntity.SortField;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.OfflineActivityAwardsItemVo; import com.iformall.domain.vo.OfflineActivityAwardsItemVo;
import com.iformall.domain.vo.OfflineActivityItemStatistics;
import com.iformall.domain.vo.OfflineGantItemStatistics;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.enums.*; import com.iformall.enums.*;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.*; import com.iformall.service.*;
@@ -298,6 +301,8 @@ public class WxVtwoPrizeDrawActivityController extends BaseController {
// if(StringUtils.isBlank(activityGrant.getSignImg())){ // if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空"); // return new ResultData(Result.ERROR,"签名为空");
// } // }
activityGrant.setActivityType(EnumOfflineActivityType.LOTTERY_DRAW.getCode());
activityGrant.setActivityName(prizeDrawActivity.getName());
activityGrant.setCreateBy(getUserId()); activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName()); activityGrant.setCreateByName(getUser().getName());
try{ try{


+ 8
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrant.java Просмотреть файл

@@ -33,6 +33,9 @@ public class WxVtwoActivityGrant extends TenantEntity {
@TableField(value = "activity_id") @TableField(value = "activity_id")
private Long activityId; private Long activityId;


@TableField(value = "activity_type")
private Integer activityType;

/** /**
* *
*/ */
@@ -149,6 +152,11 @@ public class WxVtwoActivityGrant extends TenantEntity {
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;


@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;

/** /**
* 更新时间 * 更新时间
*/ */


+ 5
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantAward.java Просмотреть файл

@@ -122,6 +122,11 @@ public class WxVtwoActivityGrantAward extends TenantEntity {
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;


@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;

/** /**
* 更新时间 * 更新时间
*/ */


+ 9
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantExport.java Просмотреть файл

@@ -28,6 +28,15 @@ public class WxVtwoActivityGrantExport extends TenantEntity {
@TableField(value = "activity_id") @TableField(value = "activity_id")
private Long activityId; private Long activityId;


/**
*
*/
@TableField(value = "activity_type")
private Integer activityType;

@TableField(value = "activity_name")
private String activityName;

/** /**
* 订单id * 订单id
*/ */


+ 16
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivityGrantSettlement.java Просмотреть файл

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;

import lombok.Data; import lombok.Data;


/** /**
@@ -133,9 +135,23 @@ public class WxVtwoActivityGrantSettlement extends TenantEntity {
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;


@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;

/** /**
* 更新时间 * 更新时间
*/ */
@TableField(value = "update_date") @TableField(value = "update_date")
private Date updateDate; private Date updateDate;

@TableField(exist = false)
private List<Long> activityIdList;

@TableField(exist = false)
private List<Long> merchantIdList;

@TableField(exist = false)
private List<Long> awardIdList;
} }

+ 3
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoActivitySpecialTopic.java Просмотреть файл

@@ -87,6 +87,9 @@ public class WxVtwoActivitySpecialTopic extends TenantEntity {
private Date begin; private Date begin;
@TableField(exist = false) @TableField(exist = false)
private Date end; private Date end;

@TableField(exist = false)
private Long activityId;
/** /**
* 是否过期 * 是否过期
*/ */


+ 8
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrant.java Просмотреть файл

@@ -33,6 +33,9 @@ public class WxVtwoCashBackGrant extends TenantEntity {
@TableField(value = "activity_id") @TableField(value = "activity_id")
private Long activityId; private Long activityId;


@TableField(value = "activity_type")
private Integer activityType;

/** /**
* *
*/ */
@@ -179,6 +182,11 @@ public class WxVtwoCashBackGrant extends TenantEntity {
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;


@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;

/** /**
* 更新时间 * 更新时间
*/ */


+ 5
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxVtwoCashBackGrantAward.java Просмотреть файл

@@ -152,6 +152,11 @@ public class WxVtwoCashBackGrantAward extends TenantEntity {
@TableField(value = "create_date") @TableField(value = "create_date")
private Date createDate; private Date createDate;


@TableField(exist = false)
private Date createDateBegin;
@TableField(exist = false)
private Date createDateEnd;

/** /**
* 更新时间 * 更新时间
*/ */


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

@@ -0,0 +1,22 @@
package com.iformall.domain.vo;

import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumYesOrNo;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class WxVtwoActivityStatisticsVo extends TenantEntity {

private Long id;
private Long activityId;
private Integer activityType;

private Date createDateBegin;
private Date createDateEnd;

private List<Long> activityIdList;

}

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

@@ -0,0 +1,23 @@
package com.iformall.domain.vo;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
public class WxVtwoAwardGrantStatistics implements Serializable {

private static final long serialVersionUID = 1L;

private Long awardId;
private String awardName;
private BigDecimal cashBackRatio;

private Integer awardCount;
private BigDecimal awardPrice;

private Double priceRatio;
private Double countRatio;

}

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

@@ -0,0 +1,28 @@
package com.iformall.domain.vo;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
public class WxVtwoAwardStatistics implements Serializable {

private static final long serialVersionUID = 1L;

private String xTime;

private Integer grantCount;//发奖人数(次数)
private Integer orderCount;//订单数量
private BigDecimal orderMoney;//订单总金额

private Integer awardCount;//奖品总个数
private BigDecimal awardPrice;//奖品(返现)总价值

private BigDecimal mallPrice;//商场承担
private BigDecimal merchantPrice;//商户承担

private BigDecimal amountCashBack;//金额返现*
private BigDecimal relatedCashBack;//联单返现*

}

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

@@ -0,0 +1,22 @@
package com.iformall.domain.vo;

import com.iformall.common.SortColumn;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Data
public class WxVtwoMerchantSettlementStatistics extends TenantEntity {

private Long merchantId;
private String merchantName;

private Integer orderCount;
// private BigDecimal orderMoney;
private BigDecimal grantPrice;
private BigDecimal mallPrice;
private BigDecimal merchantPrice;

}

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

@@ -16,6 +16,6 @@ public class WxVtwoOrderBusinessStatistics implements Serializable {
private Integer businessCount; private Integer businessCount;
private BigDecimal sumMoney; private BigDecimal sumMoney;


private Double countRatio;
private Double moneyRatio; private Double moneyRatio;

} }

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

@@ -0,0 +1,18 @@
package com.iformall.domain.vo;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

@Data
public class WxVtwoSettlementStatistics implements Serializable {

private static final long serialVersionUID = 1L;

private BigDecimal grantPrice;
private Integer orderCount;
private Integer merchantCount;
private BigDecimal mallPrice;
private BigDecimal merchantPrice;
}

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

@@ -3,6 +3,8 @@ package com.iformall.mapper;
import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxVtwoActivityGrantAward; import com.iformall.domain.po.WxVtwoActivityGrantAward;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;


import java.util.List; import java.util.List;
@@ -16,6 +18,13 @@ import java.util.List;
public interface WxVtwoActivityGrantAwardMapper extends CommonMapper<WxVtwoActivityGrantAward, Long> { public interface WxVtwoActivityGrantAwardMapper extends CommonMapper<WxVtwoActivityGrantAward, Long> {


void insertList(@Param("grantAwardList")List<WxVtwoActivityGrantAward> grantAwardList); void insertList(@Param("grantAwardList")List<WxVtwoActivityGrantAward> grantAwardList);

WxVtwoAwardStatistics activityAwardCountStatistics(WxVtwoActivityGrantAward grantAward);

List<WxVtwoAwardStatistics> activityAwardCountStatisticsChart(WxVtwoActivityGrantAward grantAward);

List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityGrantAward grantAward);

} }






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

@@ -3,6 +3,9 @@ package com.iformall.mapper;
import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxVtwoActivityGrant; import com.iformall.domain.po.WxVtwoActivityGrant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardStatistics;

import java.util.List;


/** /**
* @author xiaohu * @author xiaohu
@@ -12,6 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface WxVtwoActivityGrantMapper extends CommonMapper<WxVtwoActivityGrant, Long> { public interface WxVtwoActivityGrantMapper extends CommonMapper<WxVtwoActivityGrant, Long> {


WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityGrant activityGrant);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityGrant activityGrant);
} }






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

@@ -2,7 +2,9 @@ package com.iformall.mapper;


import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxVtwoActivityGrantSettlement; import com.iformall.domain.po.WxVtwoActivityGrantSettlement;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.domain.vo.WxVtwoMerchantSettlementStatistics;
import com.iformall.domain.vo.WxVtwoSettlementStatistics;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;


import java.util.List; import java.util.List;
@@ -18,6 +20,15 @@ public interface WxVtwoActivityGrantSettlementMapper extends CommonMapper<WxVtwo
Integer getOrderCount(WxVtwoActivityGrantSettlement record); Integer getOrderCount(WxVtwoActivityGrantSettlement record);


void insertList(@Param("settlementList")List<WxVtwoActivityGrantSettlement> settlementList); void insertList(@Param("settlementList")List<WxVtwoActivityGrantSettlement> settlementList);

WxVtwoSettlementStatistics settlementStatistics(WxVtwoActivityGrantSettlement record);

List<WxVtwoMerchantSettlementStatistics> merchantSettlementStatistics(WxVtwoActivityGrantSettlement record);

WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityGrantSettlement record);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityGrantSettlement record);

} }






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

@@ -4,6 +4,7 @@ import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxVtwoActivityGrantAward; import com.iformall.domain.po.WxVtwoActivityGrantAward;
import com.iformall.domain.po.WxVtwoCashBackGrantAward; import com.iformall.domain.po.WxVtwoCashBackGrantAward;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;


import java.util.List; import java.util.List;
@@ -18,6 +19,8 @@ public interface WxVtwoCashBackGrantAwardMapper extends CommonMapper<WxVtwoCashB


void insertList(@Param("grantAwardList") List<WxVtwoCashBackGrantAward> grantAwardList); void insertList(@Param("grantAwardList") List<WxVtwoCashBackGrantAward> grantAwardList);


List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoCashBackGrantAward grantAward);

} }






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

@@ -3,6 +3,9 @@ package com.iformall.mapper;
import com.iformall.common.CommonMapper; import com.iformall.common.CommonMapper;
import com.iformall.domain.po.WxVtwoCashBackGrant; import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardStatistics;

import java.util.List;


/** /**
* @author xiaohu * @author xiaohu
@@ -12,6 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/ */
public interface WxVtwoCashBackGrantMapper extends CommonMapper<WxVtwoCashBackGrant, Long> { public interface WxVtwoCashBackGrantMapper extends CommonMapper<WxVtwoCashBackGrant, Long> {


WxVtwoAwardStatistics activityAwardStatistics(WxVtwoCashBackGrant wxVtwoCashBackGrant);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoCashBackGrant wxVtwoCashBackGrant);
} }






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

@@ -36,4 +36,5 @@ public interface WxOfflineActivityGrantSettlementService {
void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement); void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement);


OfflineActivitySettlementStatistics activitySettlementStatistics(WxOfflineActivityGrantSettlement grantSettlement); OfflineActivitySettlementStatistics activitySettlementStatistics(WxOfflineActivityGrantSettlement grantSettlement);

} }

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

@@ -4,6 +4,9 @@ import com.iformall.domain.po.WxVtwoActivityAward;
import com.iformall.domain.po.WxVtwoActivityGrant; import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityGrantAward; import com.iformall.domain.po.WxVtwoActivityGrantAward;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import com.iformall.domain.vo.WxVtwoAwardStatistics;


import java.util.List; import java.util.List;


@@ -15,4 +18,10 @@ import java.util.List;
public interface WxVtwoActivityGrantAwardService extends IService<WxVtwoActivityGrantAward> { public interface WxVtwoActivityGrantAwardService extends IService<WxVtwoActivityGrantAward> {


void saveGrantAward(WxVtwoActivityGrant activityGrant,List<WxVtwoActivityAward> awardList); void saveGrantAward(WxVtwoActivityGrant activityGrant,List<WxVtwoActivityAward> awardList);

WxVtwoAwardStatistics activityAwardCountStatistics(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardStatistics> activityAwardCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo);
} }

+ 6
- 1
mallinkService/src/main/java/com/iformall/service/WxVtwoActivityGrantService.java Просмотреть файл

@@ -3,6 +3,8 @@ package com.iformall.service;
import com.iformall.domain.po.WxVtwoActivityGrant; import com.iformall.domain.po.WxVtwoActivityGrant;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxVtwoActivityOrder; import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -15,6 +17,9 @@ import java.util.List;
*/ */
public interface WxVtwoActivityGrantService extends IService<WxVtwoActivityGrant> { public interface WxVtwoActivityGrantService extends IService<WxVtwoActivityGrant> {


void handleFromOrder(String activityName, WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant);
void handleFromOrder(WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant);


WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo);
} }

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

@@ -4,6 +4,11 @@ import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityGrantSettlement; import com.iformall.domain.po.WxVtwoActivityGrantSettlement;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.WxVtwoCashBackGrant; import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.domain.vo.WxVtwoSettlementStatistics;

import java.util.List;


/** /**
* @author xiaohu * @author xiaohu
@@ -15,4 +20,14 @@ public interface WxVtwoActivityGrantSettlementService extends IService<WxVtwoAct
void saveGrantSettlement(WxVtwoActivityGrant activityGrant); void saveGrantSettlement(WxVtwoActivityGrant activityGrant);


void saveGrantSettlement(WxVtwoCashBackGrant activityGrant); void saveGrantSettlement(WxVtwoCashBackGrant activityGrant);

WxVtwoSettlementStatistics activitySettlementStatistics(WxVtwoActivityStatisticsVo statisticsVo);

WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo);

WxVtwoAwardStatistics activityAmountCashBackStatistics(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardStatistics> activityAmountCashBackStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList);
} }

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

@@ -0,0 +1,22 @@
package com.iformall.service;

import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;

import java.util.List;

/**
* @author xiaohu
* @description 针对表【wx_vtwo_activity_grant(线下活动发奖)】的数据库操作Service
* @createDate 2025-05-16 00:37:31
*/
public interface WxVtwoActivityGrantStatisticsService {

WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo);
}

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

@@ -5,6 +5,9 @@ import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder; import com.iformall.domain.po.WxVtwoActivityOrder;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoOrderBusinessStatistics;
import com.iformall.domain.vo.WxVtwoOrderCountStatistics;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -50,4 +53,10 @@ public interface WxVtwoActivityOrderService extends IService<WxVtwoActivityOrder
* @return * @return
*/ */
Map<Long, WxVtwoActivityOrder> findAuditDetailMap(List<Long> ids, String tenantId); Map<Long, WxVtwoActivityOrder> findAuditDetailMap(List<Long> ids, String tenantId);

WxVtwoOrderCountStatistics orderCountStatistics(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoOrderCountStatistics> orderCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoOrderBusinessStatistics> orderBusinessStatistics(WxVtwoActivityStatisticsVo statisticsVo);
} }

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

@@ -5,6 +5,7 @@ import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoActivitySpecialTopic; import com.iformall.domain.po.WxVtwoActivitySpecialTopic;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;


import java.util.Date; import java.util.Date;


@@ -21,5 +22,9 @@ public interface WxVtwoActivitySpecialTopicService extends IService<WxVtwoActivi


WxVtwoActivitySpecialTopic getInfoById(Long id, String tenantId); WxVtwoActivitySpecialTopic getInfoById(Long id, String tenantId);


WxVtwoActivitySpecialTopic getById(Long id, String tenantId);

WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date createDate); WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date createDate);

void handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo);
} }

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

@@ -20,4 +20,6 @@ public interface WxVtwoCashBackAwardService extends IService<WxVtwoCashBackAward
List<WxVtwoCashBackAward> findActivityAwardList(Long activityId, String tenantId); List<WxVtwoCashBackAward> findActivityAwardList(Long activityId, String tenantId);


Map<Long, WxVtwoCashBackAward> findActivityAwardMap(Long activityId, String tenantId); Map<Long, WxVtwoCashBackAward> findActivityAwardMap(Long activityId, String tenantId);

List<Long> getAmountAwardIdList(Long activityId, String tenantId);
} }

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

@@ -5,6 +5,8 @@ import com.iformall.domain.po.WxVtwoCashBackActivity;
import com.iformall.domain.po.WxVtwoCashBackGrant; import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.iformall.domain.po.WxVtwoCashBackGrantAward; import com.iformall.domain.po.WxVtwoCashBackGrantAward;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;


import java.util.List; import java.util.List;


@@ -18,4 +20,6 @@ public interface WxVtwoCashBackGrantAwardService extends IService<WxVtwoCashBack
void handleGrantAwardList(WxVtwoCashBackActivity cashBackActivity, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList); void handleGrantAwardList(WxVtwoCashBackActivity cashBackActivity, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList);


void saveGrantAward(WxVtwoCashBackGrant activityGrant); void saveGrantAward(WxVtwoCashBackGrant activityGrant);

List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo);
} }

+ 6
- 4
mallinkService/src/main/java/com/iformall/service/WxVtwoCashBackGrantService.java Просмотреть файл

@@ -1,12 +1,11 @@
package com.iformall.service; package com.iformall.service;


import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder; import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant; import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;


/** /**
@@ -16,6 +15,9 @@ import java.util.List;
*/ */
public interface WxVtwoCashBackGrantService extends IService<WxVtwoCashBackGrant> { public interface WxVtwoCashBackGrantService extends IService<WxVtwoCashBackGrant> {


void handleFromOrder(String activityName, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant);
void handleFromOrder(WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant);


WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo);

List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo);
} }

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

@@ -14,5 +14,5 @@ import java.util.List;
*/ */
public interface WxVtwoSpecialTopicActivityService extends IService<WxVtwoSpecialTopicActivity> { public interface WxVtwoSpecialTopicActivityService extends IService<WxVtwoSpecialTopicActivity> {


void saveFromSpecialTopic(TenantEntity tenantEntity, Long specialTopicId, List<WxVtwoSpecialTopicActivity> activityList);
void saveFromSpecialTopic(WxVtwoActivitySpecialTopic specialTopic, List<WxVtwoSpecialTopicActivity> activityList);
} }

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

@@ -6,6 +6,11 @@ import com.iformall.common.Result;
import com.iformall.domain.po.WxVtwoActivityAward; import com.iformall.domain.po.WxVtwoActivityAward;
import com.iformall.domain.po.WxVtwoActivityGrant; import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityGrantAward; import com.iformall.domain.po.WxVtwoActivityGrantAward;
import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.enums.EnumYesOrNo;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoActivityAwardService; import com.iformall.service.WxVtwoActivityAwardService;
import com.iformall.service.WxVtwoActivityGrantAwardService; import com.iformall.service.WxVtwoActivityGrantAwardService;
@@ -15,6 +20,7 @@ import org.springframework.stereotype.Service;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
@@ -84,6 +90,34 @@ public class WxVtwoActivityGrantAwardServiceImpl extends ServiceImpl<WxVtwoActiv
wxVtwoActivityGrantAwardMapper.insertList(grantAwardList); wxVtwoActivityGrantAwardMapper.insertList(grantAwardList);
activityGrant.setGrantAwardList(grantAwardList); activityGrant.setGrantAwardList(grantAwardList);
} }

private WxVtwoActivityGrantAward handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){
WxVtwoActivityGrantAward grantAward = new WxVtwoActivityGrantAward();
grantAward.updateTenantInfo(statisticsVo);
grantAward.setActivityId(statisticsVo.getActivityId());
grantAward.setCreateDateBegin(statisticsVo.getCreateDateBegin());
grantAward.setCreateDateEnd(statisticsVo.getCreateDateEnd());
grantAward.setStatus(EnumYesOrNo.YES.getCode());
return grantAward;
}

@Override
public WxVtwoAwardStatistics activityAwardCountStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrantAward grantAward = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantAwardMapper.activityAwardCountStatistics(grantAward);
}

@Override
public List<WxVtwoAwardStatistics> activityAwardCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrantAward grantAward = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantAwardMapper.activityAwardCountStatisticsChart(grantAward);
}

@Override
public List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrantAward grantAward = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantAwardMapper.awardItemStatistics(grantAward);
}
} }






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

@@ -50,6 +50,8 @@ public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActi
WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList);
grantExport.setId(idWorker.nextId()); grantExport.setId(idWorker.nextId());
grantExport.setActivityId(activityGrant.getActivityId()); grantExport.setActivityId(activityGrant.getActivityId());
grantExport.setActivityType(activityGrant.getActivityType());
grantExport.setActivityName(activityGrant.getActivityName());
grantExport.setGrantId(activityGrant.getId()); grantExport.setGrantId(activityGrant.getId());
grantExport.setGrantUserName(activityGrant.getRealName()); grantExport.setGrantUserName(activityGrant.getRealName());
grantExport.setGrantUserCard(activityGrant.getRealCard()); grantExport.setGrantUserCard(activityGrant.getRealCard());
@@ -125,6 +127,8 @@ public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActi
WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList);
grantExport.setId(idWorker.nextId()); grantExport.setId(idWorker.nextId());
grantExport.setActivityId(activityGrant.getActivityId()); grantExport.setActivityId(activityGrant.getActivityId());
grantExport.setActivityType(activityGrant.getActivityType());
grantExport.setActivityName(activityGrant.getActivityName());
grantExport.setGrantId(activityGrant.getId()); grantExport.setGrantId(activityGrant.getId());
grantExport.setGrantUserName(activityGrant.getRealName()); grantExport.setGrantUserName(activityGrant.getRealName());
grantExport.setGrantUserCard(activityGrant.getRealCard()); grantExport.setGrantUserCard(activityGrant.getRealCard());


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

@@ -6,9 +6,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxVtwoActivityGrant; import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder; import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.iformall.domain.po.WxVtwoPrizeDrawActivity; import com.iformall.domain.po.WxVtwoPrizeDrawActivity;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.enums.EnumOfflineActivityMerchantType; import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityStatus; import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.EnumYesOrNo;
import com.iformall.service.WxVtwoActivityGrantService; import com.iformall.service.WxVtwoActivityGrantService;
import com.iformall.mapper.WxVtwoActivityGrantMapper; import com.iformall.mapper.WxVtwoActivityGrantMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;


@@ -35,8 +40,7 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr
private WxVtwoActivityGrantMapper wxVtwoActivityGrantMapper; private WxVtwoActivityGrantMapper wxVtwoActivityGrantMapper;


@Override @Override
public void handleFromOrder(String activityName, WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) {
activityGrant.setActivityName(activityName);
public void handleFromOrder(WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) {
activityGrant.setOrderList(orderList); activityGrant.setOrderList(orderList);
BigDecimal orderMoneySum = BigDecimal.ZERO; BigDecimal orderMoneySum = BigDecimal.ZERO;
List<String> lotteryNumList = new ArrayList<>(); List<String> lotteryNumList = new ArrayList<>();
@@ -65,6 +69,7 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr
} }
} }



@Override @Override
public boolean saveOrUpdate(WxVtwoActivityGrant activityGrant) { public boolean saveOrUpdate(WxVtwoActivityGrant activityGrant) {
Date now = new Date(); Date now = new Date();
@@ -82,6 +87,28 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr
return true; return true;
} }


private WxVtwoActivityGrant handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){
WxVtwoActivityGrant activityGrant = new WxVtwoActivityGrant();
activityGrant.updateTenantInfo(statisticsVo);
activityGrant.setActivityId(statisticsVo.getActivityId());
activityGrant.setCreateDateBegin(statisticsVo.getCreateDateBegin());
activityGrant.setCreateDateEnd(statisticsVo.getCreateDateEnd());
activityGrant.setStatus(EnumYesOrNo.YES.getCode());
return activityGrant;
}

@Override
public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrant activityGrant = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantMapper.activityAwardStatistics(activityGrant);
}

@Override
public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrant activityGrant = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantMapper.activityAwardStatisticsChart(activityGrant);
}

} }






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

@@ -3,9 +3,11 @@ package com.iformall.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.domain.vo.WxVtwoSettlementStatistics;
import com.iformall.enums.EnumOfflineActivityAwardsModeType; import com.iformall.enums.EnumOfflineActivityAwardsModeType;
import com.iformall.enums.EnumYesOrNo; import com.iformall.enums.EnumYesOrNo;
import com.iformall.mapper.WxVtwoActivityGrantMapper;
import com.iformall.service.WxVtwoActivityGrantExportService; import com.iformall.service.WxVtwoActivityGrantExportService;
import com.iformall.service.WxVtwoActivityGrantSettlementService; import com.iformall.service.WxVtwoActivityGrantSettlementService;
import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper; import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper;
@@ -14,10 +16,7 @@ import org.springframework.stereotype.Service;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;


@@ -210,6 +209,55 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl<WxVtwo
return settlement; return settlement;
} }


private WxVtwoActivityGrantSettlement handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){
WxVtwoActivityGrantSettlement grantSettlement = new WxVtwoActivityGrantSettlement();
grantSettlement.updateTenantInfo(statisticsVo);
grantSettlement.setActivityId(statisticsVo.getActivityId());
grantSettlement.setCreateDateBegin(statisticsVo.getCreateDateBegin());
grantSettlement.setCreateDateEnd(statisticsVo.getCreateDateEnd());
grantSettlement.setStatus(EnumYesOrNo.YES.getCode());
return grantSettlement;
}

@Override
public WxVtwoSettlementStatistics activitySettlementStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantSettlementMapper.settlementStatistics(grantSettlement);
}

@Override
public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantSettlementMapper.activityAwardStatistics(grantSettlement);
}

@Override
public WxVtwoAwardStatistics activityAmountCashBackStatistics(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList) {
WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo);
if(amountAwardIdList != null && !amountAwardIdList.isEmpty()){
grantSettlement.setAwardIdList(amountAwardIdList);
}else{
grantSettlement.setAwardIdList(Collections.singletonList((long) -1));
}
return wxVtwoActivityGrantSettlementMapper.activityAwardStatistics(grantSettlement);
}

@Override
public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo);
return wxVtwoActivityGrantSettlementMapper.activityAwardStatisticsChart(grantSettlement);
}

@Override
public List<WxVtwoAwardStatistics> activityAmountCashBackStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList) {
WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo);
if(amountAwardIdList != null && !amountAwardIdList.isEmpty()){
grantSettlement.setAwardIdList(amountAwardIdList);
}else{
grantSettlement.setAwardIdList(Collections.singletonList((long) -1));
}
return wxVtwoActivityGrantSettlementMapper.activityAwardStatisticsChart(grantSettlement);
}


} }




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

@@ -0,0 +1,214 @@
package com.iformall.service.impl;


import com.iformall.domain.po.WxVtwoActivityAward;
import com.iformall.domain.po.WxVtwoCashBackAward;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import com.iformall.enums.EnumOfflineActivityType;
import com.iformall.service.*;
import com.iformall.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
* @author xiaohu
* @description
* @createDate 2025-05-16 00:37:31
*/
@Service
public class WxVtwoActivityGrantStatisticsServiceImpl implements WxVtwoActivityGrantStatisticsService {

@Autowired
private WxVtwoActivityAwardService wxVtwoActivityAwardService;

@Autowired
private WxVtwoCashBackAwardService wxVtwoCashBackAwardService;

@Autowired
private WxVtwoActivityGrantService wxVtwoActivityGrantService;

@Autowired
private WxVtwoCashBackGrantService wxVtwoCashBackGrantService;

@Autowired
private WxVtwoActivityGrantAwardService wxVtwoActivityGrantAwardService;

@Autowired
private WxVtwoCashBackGrantAwardService wxVtwoCashBackGrantAwardService;

@Autowired
private WxVtwoActivityGrantSettlementService wxVtwoActivityGrantSettlementService;


@Override
public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoAwardStatistics activityAwardStatistics = wxVtwoActivityGrantSettlementService.activityAwardStatistics(statisticsVo);
if(EnumOfflineActivityType.CASHBACK.getCode().equals(statisticsVo.getActivityType())){
WxVtwoAwardStatistics activityAwardStatistics_1 = wxVtwoCashBackGrantService.activityAwardStatistics(statisticsVo);
activityAwardStatistics.setGrantCount(activityAwardStatistics_1.getGrantCount());
activityAwardStatistics.setOrderCount(activityAwardStatistics_1.getOrderCount());
activityAwardStatistics.setOrderMoney(activityAwardStatistics_1.getOrderMoney());
List<Long> amountAwardIdList = wxVtwoCashBackAwardService.getAmountAwardIdList(statisticsVo.getActivityId(),statisticsVo.getTenantId());
WxVtwoAwardStatistics activityAwardStatistics_2 = wxVtwoActivityGrantSettlementService.activityAmountCashBackStatistics(statisticsVo,amountAwardIdList);
activityAwardStatistics.setAmountCashBack(activityAwardStatistics_2.getAwardPrice());
activityAwardStatistics.setRelatedCashBack(activityAwardStatistics.getAwardPrice().subtract(activityAwardStatistics.getAmountCashBack()));
}else{
WxVtwoAwardStatistics activityAwardStatistics_1 = wxVtwoActivityGrantService.activityAwardStatistics(statisticsVo);
activityAwardStatistics.setGrantCount(activityAwardStatistics_1.getGrantCount());
activityAwardStatistics.setOrderCount(activityAwardStatistics_1.getOrderCount());
activityAwardStatistics.setOrderMoney(activityAwardStatistics_1.getOrderMoney());
WxVtwoAwardStatistics activityAwardStatistics_2 = wxVtwoActivityGrantAwardService.activityAwardCountStatistics(statisticsVo);
activityAwardStatistics.setAwardCount(activityAwardStatistics_2.getAwardCount());
}
return activityAwardStatistics;
}

@Override
public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) {
List<WxVtwoAwardStatistics> activityAwardStatistics = wxVtwoActivityGrantSettlementService.activityAwardStatisticsChart(statisticsVo);
Map<String, WxVtwoAwardStatistics> activityAwardStatisticsMap = new HashMap<>();
if(activityAwardStatistics != null && !activityAwardStatistics.isEmpty()){
activityAwardStatisticsMap = activityAwardStatistics.stream().collect(Collectors.toMap(WxVtwoAwardStatistics::getXTime, Function.identity()));
}
Map<String, WxVtwoAwardStatistics> activityGrantStatisticsMap = new HashMap<>();
Map<String, WxVtwoAwardStatistics> activityAmountCashBackStatisticsMap = new HashMap<>();
Map<String, WxVtwoAwardStatistics> activityAwardCountStatisticsMap = new HashMap<>();
if(EnumOfflineActivityType.CASHBACK.getCode().equals(statisticsVo.getActivityType())){
List<WxVtwoAwardStatistics> activityAwardStatistics_1 = wxVtwoCashBackGrantService.activityAwardStatisticsChart(statisticsVo);
if(activityAwardStatistics_1 != null && !activityAwardStatistics_1.isEmpty()){
activityAwardStatisticsMap = activityAwardStatistics_1.stream().collect(Collectors.toMap(WxVtwoAwardStatistics::getXTime, Function.identity()));
}
List<Long> amountAwardIdList = wxVtwoCashBackAwardService.getAmountAwardIdList(statisticsVo.getActivityId(),statisticsVo.getTenantId());
List<WxVtwoAwardStatistics> activityAwardStatistics_2 = wxVtwoActivityGrantSettlementService.activityAmountCashBackStatisticsChart(statisticsVo,amountAwardIdList);
if(activityAwardStatistics_2 != null && !activityAwardStatistics_2.isEmpty()){
activityAmountCashBackStatisticsMap = activityAwardStatistics_2.stream().collect(Collectors.toMap(WxVtwoAwardStatistics::getXTime, Function.identity()));
}

}else{
List<WxVtwoAwardStatistics> activityAwardStatistics_1 = wxVtwoActivityGrantService.activityAwardStatisticsChart(statisticsVo);
if(activityAwardStatistics_1 != null && !activityAwardStatistics_1.isEmpty()){
activityAwardStatisticsMap = activityAwardStatistics_1.stream().collect(Collectors.toMap(WxVtwoAwardStatistics::getXTime, Function.identity()));
}
List<WxVtwoAwardStatistics> activityAwardStatistics_2 = wxVtwoActivityGrantAwardService.activityAwardCountStatisticsChart(statisticsVo);
if(activityAwardStatistics_2 != null && !activityAwardStatistics_2.isEmpty()){
activityAwardCountStatisticsMap = activityAwardStatistics_2.stream().collect(Collectors.toMap(WxVtwoAwardStatistics::getXTime, Function.identity()));
}
}

List<String> tjTimeList = DateUtils.getTjTimeList(DateUtils.date2String(statisticsVo.getCreateDateBegin(),"yyyy-MM-dd"),
DateUtils.date2String(statisticsVo.getCreateDateEnd(),"yyyy-MM-dd"), "0");
List<WxVtwoAwardStatistics> newActivityAwardStatistics = new ArrayList<>();
for (String date : tjTimeList) {
WxVtwoAwardStatistics awardStatistics = activityAwardStatisticsMap.get(date);
if(awardStatistics == null){
awardStatistics = new WxVtwoAwardStatistics();
awardStatistics.setAwardPrice(BigDecimal.ZERO);
awardStatistics.setMallPrice(BigDecimal.ZERO);
awardStatistics.setMerchantPrice(BigDecimal.ZERO);
}
WxVtwoAwardStatistics grantStatistics = activityGrantStatisticsMap.get(date);
if(grantStatistics == null){
awardStatistics.setGrantCount(0);
awardStatistics.setOrderCount(0);
awardStatistics.setOrderMoney(BigDecimal.ZERO);
}else{
awardStatistics.setGrantCount(grantStatistics.getGrantCount());
awardStatistics.setOrderCount(grantStatistics.getOrderCount());
awardStatistics.setOrderMoney(grantStatistics.getOrderMoney());
}
if(EnumOfflineActivityType.CASHBACK.getCode().equals(statisticsVo.getActivityType())){
WxVtwoAwardStatistics amountCashBackStatistics = activityAmountCashBackStatisticsMap.get(date);
if(amountCashBackStatistics == null){
awardStatistics.setAmountCashBack(BigDecimal.ZERO);
awardStatistics.setRelatedCashBack(BigDecimal.ZERO);
}else {
awardStatistics.setAmountCashBack(amountCashBackStatistics.getAwardPrice());
awardStatistics.setRelatedCashBack(awardStatistics.getAwardPrice().subtract(awardStatistics.getAmountCashBack()));
}
}else{
WxVtwoAwardStatistics awardSettlementStatistics = activityAwardCountStatisticsMap.get(date);
if(awardSettlementStatistics == null){
awardStatistics.setAwardCount(0);
}else{
awardStatistics.setAwardCount(awardSettlementStatistics.getAwardCount());
}
}

awardStatistics.setXTime(date.substring(5).replace("-", "/"));
newActivityAwardStatistics.add(awardStatistics);
}
return newActivityAwardStatistics;
}

@Override
public List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
List<WxVtwoAwardGrantStatistics> awardGrantStatisticsList = new ArrayList<>();
if(EnumOfflineActivityType.CASHBACK.getCode().equals(statisticsVo.getActivityType())){
List<WxVtwoCashBackAward> activityAwardList = wxVtwoCashBackAwardService.findActivityAwardList(statisticsVo.getActivityId(), statisticsVo.getTenantId());
List<WxVtwoAwardGrantStatistics> awardGrantStatistics = wxVtwoCashBackGrantAwardService.awardItemStatistics(statisticsVo);
Map<Long,WxVtwoAwardGrantStatistics> awardGrantStatisticsMap = new HashMap<>();
BigDecimal totalPrice = BigDecimal.ZERO;
if (awardGrantStatistics != null && !awardGrantStatistics.isEmpty()) {
awardGrantStatisticsMap = awardGrantStatistics.stream().collect(Collectors.toMap(WxVtwoAwardGrantStatistics::getAwardId, Function.identity()));
totalPrice = awardGrantStatistics.stream().map(WxVtwoAwardGrantStatistics::getAwardPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
}
for (WxVtwoCashBackAward award : activityAwardList) {
WxVtwoAwardGrantStatistics awardGrantStatisticsItem = awardGrantStatisticsMap.get(award.getId());
if(awardGrantStatisticsItem == null){
awardGrantStatisticsItem = new WxVtwoAwardGrantStatistics();
awardGrantStatisticsItem.setAwardId(award.getId());
awardGrantStatisticsItem.setAwardName(award.getName());
awardGrantStatisticsItem.setCashBackRatio(award.getCashBackRatio());
awardGrantStatisticsItem.setAwardPrice(BigDecimal.ZERO);
awardGrantStatisticsItem.setPriceRatio((double) 0);
}else{
awardGrantStatisticsItem.setAwardName(award.getName());
awardGrantStatisticsItem.setCashBackRatio(award.getCashBackRatio());
awardGrantStatisticsItem.setPriceRatio(awardGrantStatisticsItem.getAwardPrice().divide(totalPrice,4, RoundingMode.HALF_UP).doubleValue());
}
awardGrantStatisticsList.add(awardGrantStatisticsItem);
}
}else{
List<WxVtwoActivityAward> activityAwardList = wxVtwoActivityAwardService.findActivityAwardList(statisticsVo.getActivityId(), statisticsVo.getTenantId());
List<WxVtwoAwardGrantStatistics> awardGrantStatistics = wxVtwoActivityGrantAwardService.awardItemStatistics(statisticsVo);
Map<Long,WxVtwoAwardGrantStatistics> awardGrantStatisticsMap = new HashMap<>();
BigDecimal totalPrice = BigDecimal.ZERO;
Integer totalCount = 0;
if (awardGrantStatistics != null && !awardGrantStatistics.isEmpty()) {
awardGrantStatisticsMap = awardGrantStatistics.stream().collect(Collectors.toMap(WxVtwoAwardGrantStatistics::getAwardId, Function.identity()));
totalPrice = awardGrantStatistics.stream().map(WxVtwoAwardGrantStatistics::getAwardPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
totalCount = awardGrantStatistics.stream().mapToInt(WxVtwoAwardGrantStatistics::getAwardCount).sum();
}
for (WxVtwoActivityAward award : activityAwardList) {
WxVtwoAwardGrantStatistics awardGrantStatisticsItem = awardGrantStatisticsMap.get(award.getId());
if(awardGrantStatisticsItem == null){
awardGrantStatisticsItem = new WxVtwoAwardGrantStatistics();
awardGrantStatisticsItem.setAwardId(award.getId());
awardGrantStatisticsItem.setAwardName(award.getName());
awardGrantStatisticsItem.setAwardCount(0);
awardGrantStatisticsItem.setAwardPrice(BigDecimal.ZERO);
awardGrantStatisticsItem.setPriceRatio((double) 0);
awardGrantStatisticsItem.setCountRatio((double) 0);
}else{
awardGrantStatisticsItem.setAwardName(award.getName());
awardGrantStatisticsItem.setPriceRatio(awardGrantStatisticsItem.getAwardPrice().divide(totalPrice,4, RoundingMode.HALF_UP).doubleValue());
awardGrantStatisticsItem.setCountRatio(new BigDecimal(awardGrantStatisticsItem.getAwardCount()).divide(new BigDecimal(totalCount),4,RoundingMode.HALF_UP).doubleValue());
}
awardGrantStatisticsList.add(awardGrantStatisticsItem);
}
}
return awardGrantStatisticsList;
}
}





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

@@ -441,6 +441,65 @@ public class WxVtwoActivityOrderServiceImpl extends ServiceImpl<WxVtwoActivityOr
return auditDetailList.stream().collect(Collectors.toMap(WxVtwoActivityOrder::getId, Function.identity())); return auditDetailList.stream().collect(Collectors.toMap(WxVtwoActivityOrder::getId, Function.identity()));
} }


private WxVtwoActivityOrder handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){
WxVtwoActivityOrder activityOrder = new WxVtwoActivityOrder();
activityOrder.updateTenantInfo(statisticsVo);
activityOrder.setCreateDateBegin(statisticsVo.getCreateDateBegin());
activityOrder.setCreateDateEnd(statisticsVo.getCreateDateEnd());
activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode());
return activityOrder;
}

@Override
public WxVtwoOrderCountStatistics orderCountStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityOrder activityOrder = handleStatisticsVo(statisticsVo);
return wxVtwoActivityOrderMapper.getCountStatistics(activityOrder);
}

@Override
public List<WxVtwoOrderCountStatistics> orderCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityOrder activityOrder = handleStatisticsVo(statisticsVo);
List<WxVtwoOrderCountStatistics> countStatisticsChart = wxVtwoActivityOrderMapper.getCountStatisticsChart(activityOrder);
Map<String, WxVtwoOrderCountStatistics> countStatisticsChartMap = new HashMap<>();
if(countStatisticsChart != null && !countStatisticsChart.isEmpty()){
countStatisticsChartMap = countStatisticsChart.stream().collect(Collectors.toMap(WxVtwoOrderCountStatistics::getXTime, Function.identity()));
}
List<String> tjTimeList = DateUtils.getTjTimeList(DateUtils.date2String(activityOrder.getCreateDateBegin(),"yyyy-MM-dd"),
DateUtils.date2String(activityOrder.getCreateDateEnd(),"yyyy-MM-dd"), "0");
List<WxVtwoOrderCountStatistics> newCountStatisticsChart = new ArrayList<>();
for (String date : tjTimeList) {
WxVtwoOrderCountStatistics countStatistics = countStatisticsChartMap.get(date);
if(countStatistics == null){
countStatistics = new WxVtwoOrderCountStatistics();
countStatistics.setUserCount(0);
countStatistics.setOrderCount(0);
countStatistics.setSumMoney(BigDecimal.ZERO);
countStatistics.setMerchantCount(0);
}
countStatistics.setXTime(date.substring(5).replace("-", "/"));
newCountStatisticsChart.add(countStatistics);
}
return newCountStatisticsChart;
}

@Override
public List<WxVtwoOrderBusinessStatistics> orderBusinessStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoActivityOrder activityOrder = handleStatisticsVo(statisticsVo);
List<WxVtwoOrderBusinessStatistics> businessStatistics = wxVtwoActivityOrderMapper.getBusinessStatistics(activityOrder);
if(businessStatistics != null && !businessStatistics.isEmpty()){
Map<Integer, WxBusiness> bussinessMap = wxBusinessService.findAllMap(activityOrder);
BigDecimal totalMoney = businessStatistics.stream().map(WxVtwoOrderBusinessStatistics::getSumMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
int totalCount = businessStatistics.size();
for (WxVtwoOrderBusinessStatistics statistics : businessStatistics){
statistics.setBusinessName(statistics.getBusinessId() == null?"其他":bussinessMap.get(statistics.getBusinessId()).getTitle());
statistics.setMoneyRatio(statistics.getSumMoney().divide(totalMoney,4, RoundingMode.HALF_UP).doubleValue());
statistics.setCountRatio(new BigDecimal(statistics.getBusinessCount()).divide(new BigDecimal(totalCount),4, RoundingMode.HALF_UP).doubleValue());
}
return businessStatistics.stream().sorted(Comparator.comparing(WxVtwoOrderBusinessStatistics::getMoneyRatio).reversed()).collect(Collectors.toList());
}
return Collections.emptyList();
}

} }






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

@@ -6,16 +6,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxVtwoActivityCreditRule;
import com.iformall.domain.vo.WxVtwoActivityOrderStatistics;
import com.iformall.domain.vo.WxVtwoActivityRule;
import com.iformall.domain.vo.WxVtwoActivityRuleDetail;
import com.iformall.domain.vo.*;
import com.iformall.enums.EnumOfflineActivityMerchantType; import com.iformall.enums.EnumOfflineActivityMerchantType;
import com.iformall.enums.EnumOfflineActivityRecordStatus; import com.iformall.enums.EnumOfflineActivityRecordStatus;
import com.iformall.enums.EnumOfflineActivityStatus; import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.EnumYesOrNo; import com.iformall.enums.EnumYesOrNo;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper; import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper;
import com.iformall.service.WxVtwoActivitySpecialTopicService; import com.iformall.service.WxVtwoActivitySpecialTopicService;
import com.iformall.mapper.WxVtwoActivitySpecialTopicMapper; import com.iformall.mapper.WxVtwoActivitySpecialTopicMapper;
@@ -27,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;


import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;


/** /**
* @author xiaohu * @author xiaohu
@@ -108,7 +108,7 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct
wxVtwoActivitySpecialTopicMapper.updateById(specialTopic); wxVtwoActivitySpecialTopicMapper.updateById(specialTopic);
} }
if(specialTopic.getActivityList() != null && !specialTopic.getActivityList().isEmpty()){ if(specialTopic.getActivityList() != null && !specialTopic.getActivityList().isEmpty()){
wxVtwoSpecialTopicActivityService.saveFromSpecialTopic(specialTopic,specialTopic.getId(),specialTopic.getActivityList());
wxVtwoSpecialTopicActivityService.saveFromSpecialTopic(specialTopic,specialTopic.getActivityList());
} }
return true; return true;
} }
@@ -137,6 +137,18 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct
return specialTopic; return specialTopic;
} }


@Override
public WxVtwoActivitySpecialTopic getById(Long id, String tenantId) {
WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectById(id, tenantId);
if (specialTopic == null) {
return null;
}
if(StringUtils.isNotBlank(specialTopic.getCreditConfig())){
specialTopic.setCreditConfigObject(JSONObject.parseObject(specialTopic.getCreditConfig(), WxVtwoActivityCreditRule.class));
}
return specialTopic;
}

@Override @Override
public WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date orderDate) { public WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date orderDate) {
WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectCreditOne(tenantEntity.getTenantId(),EnumYesOrNo.YES.getCode(),orderDate); WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectCreditOne(tenantEntity.getTenantId(),EnumYesOrNo.YES.getCode(),orderDate);
@@ -147,6 +159,31 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct
return specialTopic; return specialTopic;
} }


@Override
public void handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo) {

WxVtwoActivitySpecialTopic specialTopic = this.getInfoById(statisticsVo.getId(), statisticsVo.getTenantId());
if (specialTopic == null) {
throw new MallinkException(Result.ERROR,"未查询到活动");
}
if(statisticsVo.getCreateDateBegin() == null || statisticsVo.getCreateDateBegin().before(specialTopic.getStartTime())){
statisticsVo.setCreateDateBegin(specialTopic.getStartTime());
}
if(statisticsVo.getCreateDateEnd() == null || statisticsVo.getCreateDateEnd().after(specialTopic.getEndTime())){
statisticsVo.setCreateDateEnd(specialTopic.getEndTime());
}
Date now = new Date();
if(statisticsVo.getCreateDateEnd().after(now)){
statisticsVo.setCreateDateEnd(now);
}
if(statisticsVo.getCreateDateBegin().after(statisticsVo.getCreateDateEnd())){
throw new MallinkException(Result.ERROR,"筛选时间不在活动时间范围内");
}

List<Long> activityIdList = specialTopic.getActivityList().stream().map(a -> a.getActivityId()).collect(Collectors.toList());
statisticsVo.setActivityIdList(activityIdList);
}

} }






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

@@ -264,7 +264,7 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun


List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());


wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false);
wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false);


activityGrant.setAwardList(amountGiftActivity.getAwardList()); activityGrant.setAwardList(amountGiftActivity.getAwardList());


@@ -329,7 +329,7 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun


List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());


wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false);
wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false);


wxVtwoActivityGrantService.saveOrUpdate(activityGrant); wxVtwoActivityGrantService.saveOrUpdate(activityGrant);




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

@@ -264,7 +264,7 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac


List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());


wxVtwoCashBackGrantService.handleFromOrder(cashBackActivity.getName(),activityGrant,orderList,false);
wxVtwoCashBackGrantService.handleFromOrder(activityGrant,orderList,false);


wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList); wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList);


@@ -277,7 +277,7 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac


List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());


wxVtwoCashBackGrantService.handleFromOrder(cashBackActivity.getName(),activityGrant,orderList,false);
wxVtwoCashBackGrantService.handleFromOrder(activityGrant,orderList,false);


wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList); wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList);




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

@@ -85,6 +85,19 @@ public class WxVtwoCashBackAwardServiceImpl extends ServiceImpl<WxVtwoCashBackAw
List<WxVtwoCashBackAward> activityAwardList = this.findActivityAwardList(activityId, tenantId); List<WxVtwoCashBackAward> activityAwardList = this.findActivityAwardList(activityId, tenantId);
return activityAwardList.stream().collect(Collectors.toMap(WxVtwoCashBackAward::getId, Function.identity())); return activityAwardList.stream().collect(Collectors.toMap(WxVtwoCashBackAward::getId, Function.identity()));
} }

@Override
public List<Long> getAmountAwardIdList(Long activityId, String tenantId) {
WxVtwoCashBackAward cashBackAwardQ = new WxVtwoCashBackAward();
cashBackAwardQ.setTenantId(tenantId);
cashBackAwardQ.setActivityId(activityId);
cashBackAwardQ.setModelType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode());
List<WxVtwoCashBackAward> amountAwardList = wxVtwoCashBackAwardMapper.findList(cashBackAwardQ);
if(amountAwardList != null && !amountAwardList.isEmpty()){
return amountAwardList.stream().map(WxVtwoCashBackAward::getId).collect(Collectors.toList());
}
return Collections.emptyList();
}
} }






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

@@ -3,7 +3,9 @@ package com.iformall.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoActivityTaxDeductionRule; import com.iformall.domain.vo.WxVtwoActivityTaxDeductionRule;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import com.iformall.enums.EnumOfflineActivityAwardsModeType; import com.iformall.enums.EnumOfflineActivityAwardsModeType;
import com.iformall.enums.EnumOfflineActivityAwardsRule; import com.iformall.enums.EnumOfflineActivityAwardsRule;
import com.iformall.enums.EnumOfflineActivityMode; import com.iformall.enums.EnumOfflineActivityMode;
@@ -16,10 +18,7 @@ import org.springframework.stereotype.Service;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function; import java.util.function.Function;


import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
@@ -216,6 +215,22 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl<WxVtwoCashB
wxVtwoCashBackGrantAwardMapper.insertList(grantAwardList); wxVtwoCashBackGrantAwardMapper.insertList(grantAwardList);
activityGrant.setGrantAwardList(grantAwardList); activityGrant.setGrantAwardList(grantAwardList);
} }

private WxVtwoCashBackGrantAward handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){
WxVtwoCashBackGrantAward grantAward = new WxVtwoCashBackGrantAward();
grantAward.updateTenantInfo(statisticsVo);
grantAward.setActivityId(statisticsVo.getActivityId());
grantAward.setCreateDateBegin(statisticsVo.getCreateDateBegin());
grantAward.setCreateDateEnd(statisticsVo.getCreateDateEnd());
grantAward.setStatus(EnumYesOrNo.YES.getCode());
return grantAward;
}

@Override
public List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoCashBackGrantAward grantAward = handleStatisticsVo(statisticsVo);
return wxVtwoCashBackGrantAwardMapper.awardItemStatistics(grantAward);
}
} }






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

@@ -7,6 +7,9 @@ import com.iformall.common.IdWorker;
import com.iformall.domain.po.WxVtwoActivityGrant; import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder; import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant; import com.iformall.domain.po.WxVtwoCashBackGrant;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardStatistics;
import com.iformall.enums.EnumYesOrNo;
import com.iformall.service.WxVtwoCashBackGrantService; import com.iformall.service.WxVtwoCashBackGrantService;
import com.iformall.mapper.WxVtwoCashBackGrantMapper; import com.iformall.mapper.WxVtwoCashBackGrantMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +17,7 @@ import org.springframework.stereotype.Service;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;


@@ -30,8 +34,7 @@ public class WxVtwoCashBackGrantServiceImpl extends ServiceImpl<WxVtwoCashBackGr
private WxVtwoCashBackGrantMapper wxVtwoCashBackGrantMapper; private WxVtwoCashBackGrantMapper wxVtwoCashBackGrantMapper;


@Override @Override
public void handleFromOrder(String activityName, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) {
activityGrant.setActivityName(activityName);
public void handleFromOrder(WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) {
activityGrant.setOrderList(orderList); activityGrant.setOrderList(orderList);
BigDecimal orderMoneySum = BigDecimal.ZERO; BigDecimal orderMoneySum = BigDecimal.ZERO;
List<String> lotteryNumList = new ArrayList<>(); List<String> lotteryNumList = new ArrayList<>();
@@ -76,6 +79,28 @@ public class WxVtwoCashBackGrantServiceImpl extends ServiceImpl<WxVtwoCashBackGr
} }
return true; return true;
} }

private WxVtwoCashBackGrant handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){
WxVtwoCashBackGrant cashBackGrant = new WxVtwoCashBackGrant();
cashBackGrant.updateTenantInfo(statisticsVo);
cashBackGrant.setActivityId(statisticsVo.getActivityId());
cashBackGrant.setCreateDateBegin(statisticsVo.getCreateDateBegin());
cashBackGrant.setCreateDateEnd(statisticsVo.getCreateDateEnd());
cashBackGrant.setStatus(EnumYesOrNo.YES.getCode());
return cashBackGrant;
}

@Override
public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoCashBackGrant wxVtwoCashBackGrant = handleStatisticsVo(statisticsVo);
return wxVtwoCashBackGrantMapper.activityAwardStatistics(wxVtwoCashBackGrant);
}

@Override
public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) {
WxVtwoCashBackGrant wxVtwoCashBackGrant = handleStatisticsVo(statisticsVo);
return wxVtwoCashBackGrantMapper.activityAwardStatisticsChart(wxVtwoCashBackGrant);
}
} }






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

@@ -267,7 +267,7 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD


List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());


wxVtwoActivityGrantService.handleFromOrder(prizeDrawActivity.getName(),activityGrant,orderList,false);
wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false);


activityGrant.setAwardList(prizeDrawActivity.getAwardList()); activityGrant.setAwardList(prizeDrawActivity.getAwardList());


@@ -348,7 +348,7 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD


List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList());


wxVtwoActivityGrantService.handleFromOrder(prizeDrawActivity.getName(),activityGrant,orderList,false);
wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false);


wxVtwoActivityGrantService.saveOrUpdate(activityGrant); wxVtwoActivityGrantService.saveOrUpdate(activityGrant);




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

@@ -3,10 +3,13 @@ package com.iformall.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.domain.po.WxVtwoActivityAward; import com.iformall.domain.po.WxVtwoActivityAward;
import com.iformall.domain.po.WxVtwoActivitySpecialTopic;
import com.iformall.domain.po.WxVtwoSpecialTopicActivity; import com.iformall.domain.po.WxVtwoSpecialTopicActivity;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityType; import com.iformall.enums.EnumOfflineActivityType;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoSpecialTopicActivityService; import com.iformall.service.WxVtwoSpecialTopicActivityService;
import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper; import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -28,20 +31,25 @@ public class WxVtwoSpecialTopicActivityServiceImpl extends ServiceImpl<WxVtwoSpe
private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper; private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper;


@Override @Override
public void saveFromSpecialTopic(TenantEntity tenantEntity, Long specialTopicId, List<WxVtwoSpecialTopicActivity> activityList) {
public void saveFromSpecialTopic(WxVtwoActivitySpecialTopic specialTopic, List<WxVtwoSpecialTopicActivity> activityList) {
WxVtwoSpecialTopicActivity specialTopicActivityQ = new WxVtwoSpecialTopicActivity(); WxVtwoSpecialTopicActivity specialTopicActivityQ = new WxVtwoSpecialTopicActivity();
specialTopicActivityQ.updateTenantInfo(tenantEntity);
specialTopicActivityQ.setSpecialTopicId(specialTopicId);
specialTopicActivityQ.updateTenantInfo(specialTopic);
specialTopicActivityQ.setSpecialTopicId(specialTopic.getId());
wxVtwoSpecialTopicActivityMapper.delete(new QueryWrapper<>(specialTopicActivityQ)); wxVtwoSpecialTopicActivityMapper.delete(new QueryWrapper<>(specialTopicActivityQ));


final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Date now = new Date(); Date now = new Date();
for (WxVtwoSpecialTopicActivity specialTopicActivity : activityList) { for (WxVtwoSpecialTopicActivity specialTopicActivity : activityList) {
if(specialTopicActivity.getActivityStartTime().before(specialTopic.getStartTime())
|| specialTopicActivity.getActivityEndTime().after(specialTopic.getEndTime())){
throw new MallinkException(Result.ERROR, specialTopicActivity.getActivityName()+"活动时间未在主题范围内");

}
if(specialTopicActivity.getId() == null){ if(specialTopicActivity.getId() == null){
specialTopicActivity.setId(idWorker.nextId()); specialTopicActivity.setId(idWorker.nextId());
} }
specialTopicActivity.updateTenantInfo(tenantEntity);
specialTopicActivity.setSpecialTopicId(specialTopicId);
specialTopicActivity.updateTenantInfo(specialTopic);
specialTopicActivity.setSpecialTopicId(specialTopic.getId());
if(specialTopicActivity.getCreateDate() == null){ if(specialTopicActivity.getCreateDate() == null){
specialTopicActivity.setCreateDate(now); specialTopicActivity.setCreateDate(now);
} }


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

@@ -64,6 +64,14 @@
and `award_id` = #{awardId} and `award_id` = #{awardId}
</if> </if>


<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>

<if test=" null != status "> <if test=" null != status ">
and `status` = #{status} and `status` = #{status}
</if> </if>
@@ -107,4 +115,29 @@
#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach> </foreach>
</insert> </insert>

<select id="activityAwardCountStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT
IFNULL(sum(award_count),0) as 'awardCount',
IFNULL(sum(grant_price),0) as 'awardPrice'
FROM wx_vtwo_activity_grant_award
<include refid="dynamicWhereConditions" />
</select>

<select id="activityAwardCountStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoActivityGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime,
IFNULL(sum(award_count),0) as 'awardCount',
IFNULL(sum(grant_price),0) as 'awardPrice'
FROM wx_vtwo_activity_grant_award
<include refid="dynamicWhereConditions" />
group by xTime
</select>
<select id="awardItemStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardGrantStatistics">
SELECT award_id as 'awardId',
IFNULL(sum(award_count),0) as 'awardCount',
IFNULL(sum(grant_price),0) as 'awardPrice',
FROM wx_vtwo_activity_grant_award
<include refid="dynamicWhereConditions" />
group by award_id
</select>
</mapper> </mapper>

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

@@ -9,6 +9,8 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/> <result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityType" column="activity_type" jdbcType="SMALLINT"/>
<result property="activityName" column="activity_name" jdbcType="VARCHAR"/>
<result property="orderId" column="order_id" jdbcType="BIGINT"/> <result property="orderId" column="order_id" jdbcType="BIGINT"/>
<result property="orderNo" column="order_no" jdbcType="VARCHAR"/> <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
<result property="orderAmount" column="order_amount" jdbcType="DECIMAL"/> <result property="orderAmount" column="order_amount" jdbcType="DECIMAL"/>
@@ -50,7 +52,7 @@


<sql id="allColumns"> <sql id="allColumns">
id,tenant_id,parent_tenant_id, id,tenant_id,parent_tenant_id,
activity_id,order_id,order_no,
activity_id,activity_type,activity_name,order_id,order_no,
order_amount,merchant_id,merchant_name, order_amount,merchant_id,merchant_name,
merchant_shop_num,business_id,business_name, merchant_shop_num,business_id,business_name,
lottery_num,lottery_count,anniversary_lottery_num, lottery_num,lottery_count,anniversary_lottery_num,
@@ -79,6 +81,9 @@
<if test=" null != activityId "> <if test=" null != activityId ">
and `activity_id` = #{activityId} and `activity_id` = #{activityId}
</if> </if>
<if test=" null != activityType ">
and `activity_type` = #{activityType}
</if>
<if test=" null != orderId "> <if test=" null != orderId ">
and `order_id` = #{orderId} and `order_id` = #{orderId}
</if> </if>
@@ -109,7 +114,7 @@
<insert id="insertList" parameterType="java.util.List"> <insert id="insertList" parameterType="java.util.List">
insert into wx_vtwo_activity_grant_export insert into wx_vtwo_activity_grant_export
(id, (id,
activity_id,order_id,order_no,
activity_id,activity_type,activity_name,order_id,order_no,
order_amount,merchant_id,merchant_name, order_amount,merchant_id,merchant_name,
merchant_shop_num,business_id,business_name, merchant_shop_num,business_id,business_name,
lottery_num,lottery_count,anniversary_lottery_num, lottery_num,lottery_count,anniversary_lottery_num,
@@ -125,7 +130,7 @@
values values
<foreach collection="grantExportList" item="item" index="index" separator=","> <foreach collection="grantExportList" item="item" index="index" separator=",">
(#{item.id,jdbcType=BIGINT}, (#{item.id,jdbcType=BIGINT},
#{item.activityId,jdbcType=BIGINT},#{item.orderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},
#{item.activityId,jdbcType=BIGINT},#{item.activityType,jdbcType=SMALLINT},#{item.activityName,jdbcType=VARCHAR},#{item.orderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR},
#{item.orderAmount,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT},#{item.merchantName,jdbcType=VARCHAR}, #{item.orderAmount,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT},#{item.merchantName,jdbcType=VARCHAR},
#{item.merchantShopNum,jdbcType=VARCHAR},#{item.businessId,jdbcType=INTEGER},#{item.businessName,jdbcType=VARCHAR}, #{item.merchantShopNum,jdbcType=VARCHAR},#{item.businessId,jdbcType=INTEGER},#{item.businessName,jdbcType=VARCHAR},
#{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER},#{item.anniversaryLotteryNum,jdbcType=VARCHAR}, #{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER},#{item.anniversaryLotteryNum,jdbcType=VARCHAR},


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

@@ -9,6 +9,7 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/> <result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityType" column="activity_type" jdbcType="SMALLINT"/>
<result property="activityName" column="activity_name" jdbcType="VARCHAR"/> <result property="activityName" column="activity_name" jdbcType="VARCHAR"/>
<result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/> <result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/>
<result property="orderCount" column="order_count" jdbcType="INTEGER"/> <result property="orderCount" column="order_count" jdbcType="INTEGER"/>
@@ -29,7 +30,7 @@


<sql id="allColumns"> <sql id="allColumns">
id,tenant_id,parent_tenant_id, id,tenant_id,parent_tenant_id,
activity_id,activity_name,order_money_sum,
activity_id,activity_type,activity_name,order_money_sum,
order_count,cus_name,cus_phone, order_count,cus_name,cus_phone,
lottery_num,lottery_count,anniversary_lottery_num, lottery_num,lottery_count,anniversary_lottery_num,
real_name,real_card,remark,sign_img, real_name,real_card,remark,sign_img,
@@ -53,6 +54,17 @@
<if test=" null != activityId "> <if test=" null != activityId ">
and `activity_id` = #{activityId} and `activity_id` = #{activityId}
</if> </if>
<if test=" null != activityType ">
and `activity_type` = #{activityType}
</if>

<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>


<if test=" null != status "> <if test=" null != status ">
and `status` = #{status} and `status` = #{status}
@@ -76,4 +88,23 @@
select <include refid="allColumns" /> from wx_vtwo_activity_grant select <include refid="allColumns" /> from wx_vtwo_activity_grant
where id = #{id} and tenant_id=#{tenantId} where id = #{id} and tenant_id=#{tenantId}
</select> </select>

<select id="activityAwardStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT count(1) as 'grantCount',
IFNULL(sum(order_count),0) as 'orderCount',
IFNULL(sum(order_money_sum),0) as 'orderMoney'
FROM wx_vtwo_activity_grant
<include refid="dynamicWhereConditions" />
</select>

<select id="activityAwardStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoActivityGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime,
count(1) as 'grantCount',
IFNULL(sum(order_count),0) as 'orderCount',
IFNULL(sum(order_money_sum),0) as 'orderMoney'
FROM wx_vtwo_activity_grant
<include refid="dynamicWhereConditions" />
group by xTime
</select>

</mapper> </mapper>

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

@@ -64,10 +64,43 @@
and `award_id` = #{awardId} and `award_id` = #{awardId}
</if> </if>


<if test=" null != merchantId ">
and `merchant_id` = #{merchantId}
</if>

<if test=" null != status "> <if test=" null != status ">
and `status` = #{status} and `status` = #{status}
</if> </if>


<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>

<if test=" null != activityIdList ">
and activity_id in
<foreach collection="activityIdList" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>

<if test=" null != merchantIdList ">
and merchant_id in
<foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")">
#{midItem}
</foreach>
</if>

<if test=" null != awardIdList ">
and award_id in
<foreach collection="awardIdList" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>

<if test=" null != ids "> <if test=" null != ids ">
and id in and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
@@ -115,4 +148,51 @@
#{item.updateDate,jdbcType=TIMESTAMP}) #{item.updateDate,jdbcType=TIMESTAMP})
</foreach> </foreach>
</insert> </insert>

<select id="settlementStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement"
resultType="com.iformall.domain.vo.WxVtwoSettlementStatistics">
SELECT
IFNULL(sum(order_grant_price),0) as 'grantPrice',
count(DISTINCT order_id) as 'orderCount',
count(DISTINCT merchant_id) as 'merchantCount',
IFNULL(sum(order_mall_share_price),0) as 'mallPrice',
IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice'
FROM wx_vtwo_activity_grant_settlement
<include refid="dynamicWhereConditions" />
</select>

<select id="merchantSettlementStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement"
resultType="com.iformall.domain.vo.WxVtwoMerchantSettlementStatistics">
SELECT
merchant_id as 'merchantId',
count(DISTINCT order_id) as 'orderCount',
IFNULL(sum(order_grant_price),0) as 'grantPrice',
IFNULL(sum(order_mall_share_price),0) as 'mallPrice',
IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice'
FROM wx_vtwo_activity_grant_settlement
<include refid="dynamicWhereConditions" />
group by merchant_id
</select>

<select id="activityAwardStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement"
resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT count(DISTINCT grant_id) as 'grantCount',
IFNULL(sum(order_grant_price),0) as 'awardPrice',
IFNULL(sum(order_mall_share_price),0) as 'mallPrice',
IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice'
FROM wx_vtwo_activity_grant_settlement
<include refid="dynamicWhereConditions" />
</select>

<select id="activityAwardStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement"
resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime,
count(DISTINCT grant_id) as 'grantCount',
IFNULL(sum(order_grant_price),0) as 'awardPrice',
IFNULL(sum(order_mall_share_price),0) as 'mallPrice',
IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice'
FROM wx_vtwo_activity_grant_settlement
<include refid="dynamicWhereConditions" />
group by xTime
</select>
</mapper> </mapper>

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

@@ -65,6 +65,18 @@
and `order_id` = #{orderId} and `order_id` = #{orderId}
</if> </if>


<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>

<if test=" null != status ">
and `status` = #{status}
</if>

<if test=" null != ids "> <if test=" null != ids ">
and id in and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
@@ -107,4 +119,13 @@
#{item.taxAmount,jdbcType=DECIMAL},#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) #{item.taxAmount,jdbcType=DECIMAL},#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach> </foreach>
</insert> </insert>

<select id="awardItemStatistics" parameterType="com.iformall.domain.po.WxVtwoCashBackGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardGrantStatistics">
SELECT award_id as 'awardId',
IFNULL(sum(cash_back),0) as 'awardPrice',
FROM wx_vtwo_cash_back_grant_award
<include refid="dynamicWhereConditions" />
group by award_id
</select>

</mapper> </mapper>

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

@@ -9,6 +9,7 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/> <result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityType" column="activity_type" jdbcType="SMALLINT"/>
<result property="activityName" column="activity_name" jdbcType="VARCHAR"/> <result property="activityName" column="activity_name" jdbcType="VARCHAR"/>
<result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/> <result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/>
<result property="orderCount" column="order_count" jdbcType="INTEGER"/> <result property="orderCount" column="order_count" jdbcType="INTEGER"/>
@@ -33,7 +34,7 @@


<sql id="allColumns"> <sql id="allColumns">
id,tenant_id,parent_tenant_id, id,tenant_id,parent_tenant_id,
activity_id,activity_name,order_money_sum,
activity_id,activity_type,activity_name,order_money_sum,
order_count,cus_name,cus_phone, order_count,cus_name,cus_phone,
lottery_num,lottery_count,anniversary_lottery_num, lottery_num,lottery_count,anniversary_lottery_num,
real_name,real_card,cash_back_limit, real_name,real_card,cash_back_limit,
@@ -57,6 +58,17 @@
<if test=" null != activityId "> <if test=" null != activityId ">
and `activity_id` = #{activityId} and `activity_id` = #{activityId}
</if> </if>
<if test=" null != activityType ">
and `activity_type` = #{activityType}
</if>

<if test=" null != createDateBegin">
and `create_date` &gt;= #{createDateBegin}
</if>

<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>


<if test=" null != status "> <if test=" null != status ">
and `status` = #{status} and `status` = #{status}
@@ -80,4 +92,22 @@
select <include refid="allColumns" /> from wx_vtwo_cash_back_grant select <include refid="allColumns" /> from wx_vtwo_cash_back_grant
where id = #{id} and tenant_id=#{tenantId} where id = #{id} and tenant_id=#{tenantId}
</select> </select>

<select id="activityAwardStatistics" parameterType="com.iformall.domain.po.WxVtwoCashBackGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT count(1) as 'grantCount',
IFNULL(sum(order_count),0) as 'orderCount',
IFNULL(sum(order_money_sum),0) as 'orderMoney'
FROM wx_vtwo_cash_back_grant
<include refid="dynamicWhereConditions" />
</select>

<select id="activityAwardStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoCashBackGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics">
SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime,
count(1) as 'grantCount',
IFNULL(sum(order_count),0) as 'orderCount',
IFNULL(sum(order_money_sum),0) as 'orderMoney'
FROM wx_vtwo_cash_back_grant
<include refid="dynamicWhereConditions" />
group by xTime
</select>
</mapper> </mapper>

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