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

//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;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
import com.iformall.annotation.ApiVersion;
import com.iformall.common.ErrorCode;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
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.base.BaseEntity.SortField;
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.exception.MallinkException;
import com.iformall.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

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

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

@Autowired
private WxVtwoActivityOrderService wxVtwoActivityOrderService;

@Autowired
private WxVtwoActivityGrantSettlementService wxVtwoActivityGrantSettlementService;

@Autowired
private WxVtwoActivityGrantStatisticsService wxVtwoActivityGrantStatisticsService;

@ApiVersion(group = SwaggerConstant.V_A_2_0)
@ApiOperation("分页列表接口")
@GetMapping("list")
@@ -129,9 +140,16 @@ public class WxVtwoActivitySpecialTopicController extends BaseController {
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)
@@ -173,4 +191,116 @@ public class WxVtwoActivitySpecialTopicController extends BaseController {
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.base.BaseEntity.SortField;
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.service.WxVtwoActivityGrantService;
import com.iformall.service.WxVtwoActivityOrderService;
@@ -289,6 +286,7 @@ public class WxVtwoAmountGiftActivityController extends BaseController {
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}

if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单");
@@ -302,6 +300,8 @@ public class WxVtwoAmountGiftActivityController extends BaseController {
// if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空");
// }
activityGrant.setActivityType(EnumOfflineActivityType.GIFT.getCode());
activityGrant.setActivityName(amountGiftActivity.getName());
activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName());
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.base.BaseEntity.SortField;
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.service.WxVtwoActivityOrderService;
import com.iformall.service.WxVtwoAmountGiftActivityService;
@@ -312,6 +309,7 @@ public class WxVtwoCashBackActivityController extends BaseController {
if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){
throw new MallinkException(Result.ERROR, "请检查活动状态");
}

if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){
if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){
return new ResultData(Result.ERROR,"请筛选订单");
@@ -325,6 +323,8 @@ public class WxVtwoCashBackActivityController extends BaseController {
// if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空");
// }
activityGrant.setActivityType(EnumOfflineActivityType.CASHBACK.getCode());
activityGrant.setActivityName(cashBackActivity.getName());
activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName());
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.TenantEntity;
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.exception.MallinkException;
import com.iformall.service.*;
@@ -298,6 +301,8 @@ public class WxVtwoPrizeDrawActivityController extends BaseController {
// if(StringUtils.isBlank(activityGrant.getSignImg())){
// return new ResultData(Result.ERROR,"签名为空");
// }
activityGrant.setActivityType(EnumOfflineActivityType.LOTTERY_DRAW.getCode());
activityGrant.setActivityName(prizeDrawActivity.getName());
activityGrant.setCreateBy(getUserId());
activityGrant.setCreateByName(getUser().getName());
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")
private Long activityId;

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

/**
*
*/
@@ -149,6 +152,11 @@ public class WxVtwoActivityGrant extends TenantEntity {
@TableField(value = "create_date")
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")
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")
private Long activityId;

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

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

/**
* 订单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 java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.Data;

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

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

/**
* 更新时间
*/
@TableField(value = "update_date")
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;
@TableField(exist = false)
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")
private Long activityId;

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

/**
*
*/
@@ -179,6 +182,11 @@ public class WxVtwoCashBackGrant extends TenantEntity {
@TableField(value = "create_date")
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")
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 BigDecimal sumMoney;

private Double countRatio;
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.domain.po.WxVtwoActivityGrantAward;
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 java.util.List;
@@ -16,6 +18,13 @@ import java.util.List;
public interface WxVtwoActivityGrantAwardMapper extends CommonMapper<WxVtwoActivityGrantAward, Long> {

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.domain.po.WxVtwoActivityGrant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardStatistics;

import java.util.List;

/**
* @author xiaohu
@@ -12,6 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
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.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 java.util.List;
@@ -18,6 +20,15 @@ public interface WxVtwoActivityGrantSettlementMapper extends CommonMapper<WxVtwo
Integer getOrderCount(WxVtwoActivityGrantSettlement record);

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.WxVtwoCashBackGrantAward;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import org.apache.ibatis.annotations.Param;

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

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.domain.po.WxVtwoCashBackGrant;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.WxVtwoAwardStatistics;

import java.util.List;

/**
* @author xiaohu
@@ -12,6 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
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);

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.WxVtwoActivityGrantAward;
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;

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

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.baomidou.mybatisplus.extension.service.IService;
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.HttpServletResponse;
@@ -15,6 +17,9 @@ import java.util.List;
*/
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.baomidou.mybatisplus.extension.service.IService;
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
@@ -15,4 +20,14 @@ public interface WxVtwoActivityGrantSettlementService extends IService<WxVtwoAct
void saveGrantSettlement(WxVtwoActivityGrant 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.baomidou.mybatisplus.extension.service.IService;
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.HttpServletResponse;
@@ -50,4 +53,10 @@ public interface WxVtwoActivityOrderService extends IService<WxVtwoActivityOrder
* @return
*/
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.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;

import java.util.Date;

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

WxVtwoActivitySpecialTopic getInfoById(Long id, String tenantId);

WxVtwoActivitySpecialTopic getById(Long id, String tenantId);

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);

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.WxVtwoCashBackGrantAward;
import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;

import java.util.List;

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

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;

import com.iformall.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant;
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;

/**
@@ -16,6 +15,9 @@ import java.util.List;
*/
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> {

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.WxVtwoActivityGrant;
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.service.WxVtwoActivityAwardService;
import com.iformall.service.WxVtwoActivityGrantAwardService;
@@ -15,6 +20,7 @@ import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@@ -84,6 +90,34 @@ public class WxVtwoActivityGrantAwardServiceImpl extends ServiceImpl<WxVtwoActiv
wxVtwoActivityGrantAwardMapper.insertList(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);
grantExport.setId(idWorker.nextId());
grantExport.setActivityId(activityGrant.getActivityId());
grantExport.setActivityType(activityGrant.getActivityType());
grantExport.setActivityName(activityGrant.getActivityName());
grantExport.setGrantId(activityGrant.getId());
grantExport.setGrantUserName(activityGrant.getRealName());
grantExport.setGrantUserCard(activityGrant.getRealCard());
@@ -125,6 +127,8 @@ public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActi
WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList);
grantExport.setId(idWorker.nextId());
grantExport.setActivityId(activityGrant.getActivityId());
grantExport.setActivityType(activityGrant.getActivityType());
grantExport.setActivityName(activityGrant.getActivityName());
grantExport.setGrantId(activityGrant.getId());
grantExport.setGrantUserName(activityGrant.getRealName());
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.domain.po.WxVtwoActivityGrant;
import com.iformall.domain.po.WxVtwoActivityOrder;
import com.iformall.domain.po.WxVtwoCashBackGrant;
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.EnumOfflineActivityStatus;
import com.iformall.enums.EnumYesOrNo;
import com.iformall.service.WxVtwoActivityGrantService;
import com.iformall.mapper.WxVtwoActivityGrantMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

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

@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);
BigDecimal orderMoneySum = BigDecimal.ZERO;
List<String> lotteryNumList = new ArrayList<>();
@@ -65,6 +69,7 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr
}
}


@Override
public boolean saveOrUpdate(WxVtwoActivityGrant activityGrant) {
Date now = new Date();
@@ -82,6 +87,28 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr
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.iformall.common.IdWorker;
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.EnumYesOrNo;
import com.iformall.mapper.WxVtwoActivityGrantMapper;
import com.iformall.service.WxVtwoActivityGrantExportService;
import com.iformall.service.WxVtwoActivityGrantSettlementService;
import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper;
@@ -14,10 +16,7 @@ import org.springframework.stereotype.Service;

import java.math.BigDecimal;
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.stream.Collectors;

@@ -210,6 +209,55 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl<WxVtwo
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()));
}

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.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.domain.po.*;
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.EnumOfflineActivityRecordStatus;
import com.iformall.enums.EnumOfflineActivityStatus;
import com.iformall.enums.EnumYesOrNo;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper;
import com.iformall.service.WxVtwoActivitySpecialTopicService;
import com.iformall.mapper.WxVtwoActivitySpecialTopicMapper;
@@ -27,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional;

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

/**
* @author xiaohu
@@ -108,7 +108,7 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct
wxVtwoActivitySpecialTopicMapper.updateById(specialTopic);
}
if(specialTopic.getActivityList() != null && !specialTopic.getActivityList().isEmpty()){
wxVtwoSpecialTopicActivityService.saveFromSpecialTopic(specialTopic,specialTopic.getId(),specialTopic.getActivityList());
wxVtwoSpecialTopicActivityService.saveFromSpecialTopic(specialTopic,specialTopic.getActivityList());
}
return true;
}
@@ -137,6 +137,18 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct
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
public WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date orderDate) {
WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectCreditOne(tenantEntity.getTenantId(),EnumYesOrNo.YES.getCode(),orderDate);
@@ -147,6 +159,31 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct
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());

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

activityGrant.setAwardList(amountGiftActivity.getAwardList());

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

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);



+ 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());

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

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());

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

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);
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.iformall.common.IdWorker;
import com.iformall.domain.po.*;
import com.iformall.domain.vo.WxVtwoActivityStatisticsVo;
import com.iformall.domain.vo.WxVtwoActivityTaxDeductionRule;
import com.iformall.domain.vo.WxVtwoAwardGrantStatistics;
import com.iformall.enums.EnumOfflineActivityAwardsModeType;
import com.iformall.enums.EnumOfflineActivityAwardsRule;
import com.iformall.enums.EnumOfflineActivityMode;
@@ -16,10 +18,7 @@ import org.springframework.stereotype.Service;

import java.math.BigDecimal;
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 static java.util.stream.Collectors.toList;
@@ -216,6 +215,22 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl<WxVtwoCashB
wxVtwoCashBackGrantAwardMapper.insertList(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.WxVtwoActivityOrder;
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.mapper.WxVtwoCashBackGrantMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +17,7 @@ import org.springframework.stereotype.Service;

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

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

@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);
BigDecimal orderMoneySum = BigDecimal.ZERO;
List<String> lotteryNumList = new ArrayList<>();
@@ -76,6 +79,28 @@ public class WxVtwoCashBackGrantServiceImpl extends ServiceImpl<WxVtwoCashBackGr
}
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());

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

activityGrant.setAwardList(prizeDrawActivity.getAwardList());

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

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);



+ 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.extension.service.impl.ServiceImpl;
import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.domain.po.WxVtwoActivityAward;
import com.iformall.domain.po.WxVtwoActivitySpecialTopic;
import com.iformall.domain.po.WxVtwoSpecialTopicActivity;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumOfflineActivityType;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxVtwoSpecialTopicActivityService;
import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,20 +31,25 @@ public class WxVtwoSpecialTopicActivityServiceImpl extends ServiceImpl<WxVtwoSpe
private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper;

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

final IdWorker idWorker = IdWorker.get();
Date now = new Date();
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){
specialTopicActivity.setId(idWorker.nextId());
}
specialTopicActivity.updateTenantInfo(tenantEntity);
specialTopicActivity.setSpecialTopicId(specialTopicId);
specialTopicActivity.updateTenantInfo(specialTopic);
specialTopicActivity.setSpecialTopicId(specialTopic.getId());
if(specialTopicActivity.getCreateDate() == null){
specialTopicActivity.setCreateDate(now);
}


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

@@ -64,6 +64,14 @@
and `award_id` = #{awardId}
</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>
@@ -107,4 +115,29 @@
#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP})
</foreach>
</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>

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

@@ -9,6 +9,8 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<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="orderNo" column="order_no" jdbcType="VARCHAR"/>
<result property="orderAmount" column="order_amount" jdbcType="DECIMAL"/>
@@ -50,7 +52,7 @@

<sql id="allColumns">
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,
merchant_shop_num,business_id,business_name,
lottery_num,lottery_count,anniversary_lottery_num,
@@ -79,6 +81,9 @@
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</if>
<if test=" null != activityType ">
and `activity_type` = #{activityType}
</if>
<if test=" null != orderId ">
and `order_id` = #{orderId}
</if>
@@ -109,7 +114,7 @@
<insert id="insertList" parameterType="java.util.List">
insert into wx_vtwo_activity_grant_export
(id,
activity_id,order_id,order_no,
activity_id,activity_type,activity_name,order_id,order_no,
order_amount,merchant_id,merchant_name,
merchant_shop_num,business_id,business_name,
lottery_num,lottery_count,anniversary_lottery_num,
@@ -125,7 +130,7 @@
values
<foreach collection="grantExportList" item="item" index="index" separator=",">
(#{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.merchantShopNum,jdbcType=VARCHAR},#{item.businessId,jdbcType=INTEGER},#{item.businessName,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="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<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="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/>
<result property="orderCount" column="order_count" jdbcType="INTEGER"/>
@@ -29,7 +30,7 @@

<sql id="allColumns">
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,
lottery_num,lottery_count,anniversary_lottery_num,
real_name,real_card,remark,sign_img,
@@ -53,6 +54,17 @@
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</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 ">
and `status` = #{status}
@@ -76,4 +88,23 @@
select <include refid="allColumns" /> from wx_vtwo_activity_grant
where id = #{id} and tenant_id=#{tenantId}
</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>

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

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

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

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

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

@@ -65,6 +65,18 @@
and `order_id` = #{orderId}
</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 ">
and id in
<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})
</foreach>
</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>

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

@@ -9,6 +9,7 @@
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<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="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/>
<result property="orderCount" column="order_count" jdbcType="INTEGER"/>
@@ -33,7 +34,7 @@

<sql id="allColumns">
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,
lottery_num,lottery_count,anniversary_lottery_num,
real_name,real_card,cash_back_limit,
@@ -57,6 +58,17 @@
<if test=" null != activityId ">
and `activity_id` = #{activityId}
</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 ">
and `status` = #{status}
@@ -80,4 +92,22 @@
select <include refid="allColumns" /> from wx_vtwo_cash_back_grant
where id = #{id} and tenant_id=#{tenantId}
</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>

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