| @@ -1,8 +1,8 @@ | |||||
| package com.iformall.controller.market; | package com.iformall.controller.market; | ||||
| import com.alibaba.fastjson.JSONObject; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.annotation.ApiVersion; | import com.iformall.annotation.ApiVersion; | ||||
| import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.constant.SwaggerConstant; | import com.iformall.constant.SwaggerConstant; | ||||
| @@ -10,8 +10,9 @@ import com.iformall.controller.base.BaseController; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.BaseEntity.SortField; | import com.iformall.domain.po.base.BaseEntity.SortField; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxVtwoActivityCreditRule; | |||||
| import com.iformall.domain.vo.*; | |||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| @@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author alascor | * @author alascor | ||||
| @@ -46,6 +48,15 @@ public class WxVtwoActivitySpecialTopicController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxVtwoCashBackActivityService wxVtwoCashBackActivityService; | private WxVtwoCashBackActivityService wxVtwoCashBackActivityService; | ||||
| @Autowired | |||||
| private WxVtwoActivityOrderService wxVtwoActivityOrderService; | |||||
| @Autowired | |||||
| private WxVtwoActivityGrantSettlementService wxVtwoActivityGrantSettlementService; | |||||
| @Autowired | |||||
| private WxVtwoActivityGrantStatisticsService wxVtwoActivityGrantStatisticsService; | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | @ApiVersion(group = SwaggerConstant.V_A_2_0) | ||||
| @ApiOperation("分页列表接口") | @ApiOperation("分页列表接口") | ||||
| @GetMapping("list") | @GetMapping("list") | ||||
| @@ -129,9 +140,16 @@ public class WxVtwoActivitySpecialTopicController extends BaseController { | |||||
| return new ResultData(Result.ERROR,"活动参数异常"); | return new ResultData(Result.ERROR,"活动参数异常"); | ||||
| } | } | ||||
| } | } | ||||
| wxVtwoActivitySpecialTopicService.saveOrUpdate(specialTopic); | |||||
| return new ResultData(specialTopic); | |||||
| try{ | |||||
| wxVtwoActivitySpecialTopicService.saveOrUpdate(specialTopic); | |||||
| return new ResultData(specialTopic); | |||||
| }catch(MallinkException e){ | |||||
| logger.error(e.getMessage()); | |||||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||||
| }catch(Exception e){ | |||||
| logger.error("异常:" + e); | |||||
| return new ResultData(ErrorCode.SYS_SERVER_ERROR); | |||||
| } | |||||
| } | } | ||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | @ApiVersion(group = SwaggerConstant.V_A_2_0) | ||||
| @@ -173,4 +191,116 @@ public class WxVtwoActivitySpecialTopicController extends BaseController { | |||||
| return new ResultData(specialTopic); | return new ResultData(specialTopic); | ||||
| } | } | ||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取参与订单数据报表") | |||||
| @GetMapping("orderStatistics") | |||||
| public ResultData recordStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityOrderService.orderCountStatistics(statisticsVo)); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取参与订单数据折线图") | |||||
| @GetMapping("orderStatisticsChart") | |||||
| public ResultData recordStatisticsChart(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityOrderService.orderCountStatisticsChart(statisticsVo)); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取活动营销费用") | |||||
| @GetMapping("settlementStatistics") | |||||
| public ResultData settlementStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityGrantSettlementService.activitySettlementStatistics(statisticsVo)); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取参与订单品类分布") | |||||
| @GetMapping("orderBusinessStatistics") | |||||
| public ResultData orderBusinessStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityOrderService.orderBusinessStatistics(statisticsVo)); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取活动项数据统计") | |||||
| @GetMapping("activityAwardStatistics") | |||||
| public ResultData activityAwardStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| if(statisticsVo.getActivityId() == null){ | |||||
| return new ResultData(Result.ERROR,"活动ID为空"); | |||||
| } | |||||
| if(statisticsVo.getActivityType() == null || EnumOfflineActivityType.getEnum(statisticsVo.getActivityType()) == null){ | |||||
| return new ResultData(Result.ERROR,"活动类型为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityGrantStatisticsService.activityAwardStatistics(statisticsVo)); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取活动项数据统计折现图") | |||||
| @GetMapping("activityAwardStatisticsChart") | |||||
| public ResultData activityAwardStatisticsChart(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| if(statisticsVo.getActivityId() == null){ | |||||
| return new ResultData(Result.ERROR,"活动ID为空"); | |||||
| } | |||||
| if(statisticsVo.getActivityType() == null || EnumOfflineActivityType.getEnum(statisticsVo.getActivityType()) == null){ | |||||
| return new ResultData(Result.ERROR,"活动类型为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityGrantStatisticsService.activityAwardStatisticsChart(statisticsVo)); | |||||
| } | |||||
| @ApiVersion(group = SwaggerConstant.V_A_2_0) | |||||
| @ApiOperation("获取活动项奖品分布") | |||||
| @GetMapping("awardItemStatistics") | |||||
| public ResultData awardItemStatistics(@ModelAttribute WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| if(statisticsVo.getId() == null){ | |||||
| return new ResultData(Result.ERROR,"ID为空"); | |||||
| } | |||||
| if(statisticsVo.getActivityId() == null){ | |||||
| return new ResultData(Result.ERROR,"活动ID为空"); | |||||
| } | |||||
| if(statisticsVo.getActivityType() == null || EnumOfflineActivityType.getEnum(statisticsVo.getActivityType()) == null){ | |||||
| return new ResultData(Result.ERROR,"活动类型为空"); | |||||
| } | |||||
| TenantEntity tenantInfo = getTenantInfo(); | |||||
| statisticsVo.updateTenantInfo(tenantInfo); | |||||
| wxVtwoActivitySpecialTopicService.handleStatisticsVo(statisticsVo); | |||||
| return new ResultData(wxVtwoActivityGrantStatisticsService.awardItemStatistics(statisticsVo)); | |||||
| } | |||||
| } | } | ||||
| @@ -10,10 +10,7 @@ import com.iformall.controller.base.BaseController; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.BaseEntity.SortField; | import com.iformall.domain.po.base.BaseEntity.SortField; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule; | |||||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | |||||
| import com.iformall.enums.EnumOfflineActivityMode; | |||||
| import com.iformall.enums.EnumOfflineActivityStatus; | |||||
| import com.iformall.enums.*; | |||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.service.WxVtwoActivityGrantService; | import com.iformall.service.WxVtwoActivityGrantService; | ||||
| import com.iformall.service.WxVtwoActivityOrderService; | import com.iformall.service.WxVtwoActivityOrderService; | ||||
| @@ -289,6 +286,7 @@ public class WxVtwoAmountGiftActivityController extends BaseController { | |||||
| if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){ | if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(amountGiftActivity.getStatus())){ | ||||
| throw new MallinkException(Result.ERROR, "请检查活动状态"); | throw new MallinkException(Result.ERROR, "请检查活动状态"); | ||||
| } | } | ||||
| if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){ | if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(amountGiftActivity.getAmountModel())){ | ||||
| if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){ | if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){ | ||||
| return new ResultData(Result.ERROR,"请筛选订单"); | return new ResultData(Result.ERROR,"请筛选订单"); | ||||
| @@ -302,6 +300,8 @@ public class WxVtwoAmountGiftActivityController extends BaseController { | |||||
| // if(StringUtils.isBlank(activityGrant.getSignImg())){ | // if(StringUtils.isBlank(activityGrant.getSignImg())){ | ||||
| // return new ResultData(Result.ERROR,"签名为空"); | // return new ResultData(Result.ERROR,"签名为空"); | ||||
| // } | // } | ||||
| activityGrant.setActivityType(EnumOfflineActivityType.GIFT.getCode()); | |||||
| activityGrant.setActivityName(amountGiftActivity.getName()); | |||||
| activityGrant.setCreateBy(getUserId()); | activityGrant.setCreateBy(getUserId()); | ||||
| activityGrant.setCreateByName(getUser().getName()); | activityGrant.setCreateByName(getUser().getName()); | ||||
| try{ | try{ | ||||
| @@ -10,10 +10,7 @@ import com.iformall.controller.base.BaseController; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.BaseEntity.SortField; | import com.iformall.domain.po.base.BaseEntity.SortField; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule; | |||||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | |||||
| import com.iformall.enums.EnumOfflineActivityMode; | |||||
| import com.iformall.enums.EnumOfflineActivityStatus; | |||||
| import com.iformall.enums.*; | |||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.service.WxVtwoActivityOrderService; | import com.iformall.service.WxVtwoActivityOrderService; | ||||
| import com.iformall.service.WxVtwoAmountGiftActivityService; | import com.iformall.service.WxVtwoAmountGiftActivityService; | ||||
| @@ -312,6 +309,7 @@ public class WxVtwoCashBackActivityController extends BaseController { | |||||
| if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){ | if(!EnumOfflineActivityStatus.ON_LINE.getCode().equals(cashBackActivity.getStatus())){ | ||||
| throw new MallinkException(Result.ERROR, "请检查活动状态"); | throw new MallinkException(Result.ERROR, "请检查活动状态"); | ||||
| } | } | ||||
| if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){ | if(EnumOfflineActivityMode.CONDITION_SUM.getCode().equals(cashBackActivity.getAmountModel())){ | ||||
| if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){ | if(activityGrant.getOrderFilterIdList() == null || activityGrant.getOrderFilterIdList().isEmpty()){ | ||||
| return new ResultData(Result.ERROR,"请筛选订单"); | return new ResultData(Result.ERROR,"请筛选订单"); | ||||
| @@ -325,6 +323,8 @@ public class WxVtwoCashBackActivityController extends BaseController { | |||||
| // if(StringUtils.isBlank(activityGrant.getSignImg())){ | // if(StringUtils.isBlank(activityGrant.getSignImg())){ | ||||
| // return new ResultData(Result.ERROR,"签名为空"); | // return new ResultData(Result.ERROR,"签名为空"); | ||||
| // } | // } | ||||
| activityGrant.setActivityType(EnumOfflineActivityType.CASHBACK.getCode()); | |||||
| activityGrant.setActivityName(cashBackActivity.getName()); | |||||
| activityGrant.setCreateBy(getUserId()); | activityGrant.setCreateBy(getUserId()); | ||||
| activityGrant.setCreateByName(getUser().getName()); | activityGrant.setCreateByName(getUser().getName()); | ||||
| try{ | try{ | ||||
| @@ -12,6 +12,9 @@ import com.iformall.domain.po.*; | |||||
| import com.iformall.domain.po.base.BaseEntity.SortField; | import com.iformall.domain.po.base.BaseEntity.SortField; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.OfflineActivityAwardsItemVo; | import com.iformall.domain.vo.OfflineActivityAwardsItemVo; | ||||
| import com.iformall.domain.vo.OfflineActivityItemStatistics; | |||||
| import com.iformall.domain.vo.OfflineGantItemStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| @@ -298,6 +301,8 @@ public class WxVtwoPrizeDrawActivityController extends BaseController { | |||||
| // if(StringUtils.isBlank(activityGrant.getSignImg())){ | // if(StringUtils.isBlank(activityGrant.getSignImg())){ | ||||
| // return new ResultData(Result.ERROR,"签名为空"); | // return new ResultData(Result.ERROR,"签名为空"); | ||||
| // } | // } | ||||
| activityGrant.setActivityType(EnumOfflineActivityType.LOTTERY_DRAW.getCode()); | |||||
| activityGrant.setActivityName(prizeDrawActivity.getName()); | |||||
| activityGrant.setCreateBy(getUserId()); | activityGrant.setCreateBy(getUserId()); | ||||
| activityGrant.setCreateByName(getUser().getName()); | activityGrant.setCreateByName(getUser().getName()); | ||||
| try{ | try{ | ||||
| @@ -33,6 +33,9 @@ public class WxVtwoActivityGrant extends TenantEntity { | |||||
| @TableField(value = "activity_id") | @TableField(value = "activity_id") | ||||
| private Long activityId; | private Long activityId; | ||||
| @TableField(value = "activity_type") | |||||
| private Integer activityType; | |||||
| /** | /** | ||||
| * | * | ||||
| */ | */ | ||||
| @@ -149,6 +152,11 @@ public class WxVtwoActivityGrant extends TenantEntity { | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @TableField(exist = false) | |||||
| private Date createDateBegin; | |||||
| @TableField(exist = false) | |||||
| private Date createDateEnd; | |||||
| /** | /** | ||||
| * 更新时间 | * 更新时间 | ||||
| */ | */ | ||||
| @@ -122,6 +122,11 @@ public class WxVtwoActivityGrantAward extends TenantEntity { | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @TableField(exist = false) | |||||
| private Date createDateBegin; | |||||
| @TableField(exist = false) | |||||
| private Date createDateEnd; | |||||
| /** | /** | ||||
| * 更新时间 | * 更新时间 | ||||
| */ | */ | ||||
| @@ -28,6 +28,15 @@ public class WxVtwoActivityGrantExport extends TenantEntity { | |||||
| @TableField(value = "activity_id") | @TableField(value = "activity_id") | ||||
| private Long activityId; | private Long activityId; | ||||
| /** | |||||
| * | |||||
| */ | |||||
| @TableField(value = "activity_type") | |||||
| private Integer activityType; | |||||
| @TableField(value = "activity_name") | |||||
| private String activityName; | |||||
| /** | /** | ||||
| * 订单id | * 订单id | ||||
| */ | */ | ||||
| @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName; | |||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | |||||
| import lombok.Data; | import lombok.Data; | ||||
| /** | /** | ||||
| @@ -133,9 +135,23 @@ public class WxVtwoActivityGrantSettlement extends TenantEntity { | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @TableField(exist = false) | |||||
| private Date createDateBegin; | |||||
| @TableField(exist = false) | |||||
| private Date createDateEnd; | |||||
| /** | /** | ||||
| * 更新时间 | * 更新时间 | ||||
| */ | */ | ||||
| @TableField(value = "update_date") | @TableField(value = "update_date") | ||||
| private Date updateDate; | private Date updateDate; | ||||
| @TableField(exist = false) | |||||
| private List<Long> activityIdList; | |||||
| @TableField(exist = false) | |||||
| private List<Long> merchantIdList; | |||||
| @TableField(exist = false) | |||||
| private List<Long> awardIdList; | |||||
| } | } | ||||
| @@ -87,6 +87,9 @@ public class WxVtwoActivitySpecialTopic extends TenantEntity { | |||||
| private Date begin; | private Date begin; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Date end; | private Date end; | ||||
| @TableField(exist = false) | |||||
| private Long activityId; | |||||
| /** | /** | ||||
| * 是否过期 | * 是否过期 | ||||
| */ | */ | ||||
| @@ -33,6 +33,9 @@ public class WxVtwoCashBackGrant extends TenantEntity { | |||||
| @TableField(value = "activity_id") | @TableField(value = "activity_id") | ||||
| private Long activityId; | private Long activityId; | ||||
| @TableField(value = "activity_type") | |||||
| private Integer activityType; | |||||
| /** | /** | ||||
| * | * | ||||
| */ | */ | ||||
| @@ -179,6 +182,11 @@ public class WxVtwoCashBackGrant extends TenantEntity { | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @TableField(exist = false) | |||||
| private Date createDateBegin; | |||||
| @TableField(exist = false) | |||||
| private Date createDateEnd; | |||||
| /** | /** | ||||
| * 更新时间 | * 更新时间 | ||||
| */ | */ | ||||
| @@ -152,6 +152,11 @@ public class WxVtwoCashBackGrantAward extends TenantEntity { | |||||
| @TableField(value = "create_date") | @TableField(value = "create_date") | ||||
| private Date createDate; | private Date createDate; | ||||
| @TableField(exist = false) | |||||
| private Date createDateBegin; | |||||
| @TableField(exist = false) | |||||
| private Date createDateEnd; | |||||
| /** | /** | ||||
| * 更新时间 | * 更新时间 | ||||
| */ | */ | ||||
| @@ -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; | |||||
| } | |||||
| @@ -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; | |||||
| } | |||||
| @@ -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;//联单返现* | |||||
| } | |||||
| @@ -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; | |||||
| } | |||||
| @@ -16,6 +16,6 @@ public class WxVtwoOrderBusinessStatistics implements Serializable { | |||||
| private Integer businessCount; | private Integer businessCount; | ||||
| private BigDecimal sumMoney; | private BigDecimal sumMoney; | ||||
| private Double countRatio; | |||||
| private Double moneyRatio; | private Double moneyRatio; | ||||
| } | } | ||||
| @@ -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; | |||||
| } | |||||
| @@ -3,6 +3,8 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantAward; | import com.iformall.domain.po.WxVtwoActivityGrantAward; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import org.apache.ibatis.annotations.Param; | import org.apache.ibatis.annotations.Param; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -16,6 +18,13 @@ import java.util.List; | |||||
| public interface WxVtwoActivityGrantAwardMapper extends CommonMapper<WxVtwoActivityGrantAward, Long> { | public interface WxVtwoActivityGrantAwardMapper extends CommonMapper<WxVtwoActivityGrantAward, Long> { | ||||
| void insertList(@Param("grantAwardList")List<WxVtwoActivityGrantAward> grantAwardList); | void insertList(@Param("grantAwardList")List<WxVtwoActivityGrantAward> grantAwardList); | ||||
| WxVtwoAwardStatistics activityAwardCountStatistics(WxVtwoActivityGrantAward grantAward); | |||||
| List<WxVtwoAwardStatistics> activityAwardCountStatisticsChart(WxVtwoActivityGrantAward grantAward); | |||||
| List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityGrantAward grantAward); | |||||
| } | } | ||||
| @@ -3,6 +3,9 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | import com.iformall.domain.po.WxVtwoActivityGrant; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -12,6 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
| */ | */ | ||||
| public interface WxVtwoActivityGrantMapper extends CommonMapper<WxVtwoActivityGrant, Long> { | public interface WxVtwoActivityGrantMapper extends CommonMapper<WxVtwoActivityGrant, Long> { | ||||
| WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityGrant activityGrant); | |||||
| List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityGrant activityGrant); | |||||
| } | } | ||||
| @@ -2,7 +2,9 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantSettlement; | import com.iformall.domain.po.WxVtwoActivityGrantSettlement; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoMerchantSettlementStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoSettlementStatistics; | |||||
| import org.apache.ibatis.annotations.Param; | import org.apache.ibatis.annotations.Param; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -18,6 +20,15 @@ public interface WxVtwoActivityGrantSettlementMapper extends CommonMapper<WxVtwo | |||||
| Integer getOrderCount(WxVtwoActivityGrantSettlement record); | Integer getOrderCount(WxVtwoActivityGrantSettlement record); | ||||
| void insertList(@Param("settlementList")List<WxVtwoActivityGrantSettlement> settlementList); | void insertList(@Param("settlementList")List<WxVtwoActivityGrantSettlement> settlementList); | ||||
| WxVtwoSettlementStatistics settlementStatistics(WxVtwoActivityGrantSettlement record); | |||||
| List<WxVtwoMerchantSettlementStatistics> merchantSettlementStatistics(WxVtwoActivityGrantSettlement record); | |||||
| WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityGrantSettlement record); | |||||
| List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityGrantSettlement record); | |||||
| } | } | ||||
| @@ -4,6 +4,7 @@ import com.iformall.common.CommonMapper; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrantAward; | import com.iformall.domain.po.WxVtwoActivityGrantAward; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrantAward; | import com.iformall.domain.po.WxVtwoCashBackGrantAward; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | |||||
| import org.apache.ibatis.annotations.Param; | import org.apache.ibatis.annotations.Param; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -18,6 +19,8 @@ public interface WxVtwoCashBackGrantAwardMapper extends CommonMapper<WxVtwoCashB | |||||
| void insertList(@Param("grantAwardList") List<WxVtwoCashBackGrantAward> grantAwardList); | void insertList(@Param("grantAwardList") List<WxVtwoCashBackGrantAward> grantAwardList); | ||||
| List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoCashBackGrantAward grantAward); | |||||
| } | } | ||||
| @@ -3,6 +3,9 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | import com.iformall.domain.po.WxVtwoCashBackGrant; | ||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -12,6 +15,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
| */ | */ | ||||
| public interface WxVtwoCashBackGrantMapper extends CommonMapper<WxVtwoCashBackGrant, Long> { | public interface WxVtwoCashBackGrantMapper extends CommonMapper<WxVtwoCashBackGrant, Long> { | ||||
| WxVtwoAwardStatistics activityAwardStatistics(WxVtwoCashBackGrant wxVtwoCashBackGrant); | |||||
| List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoCashBackGrant wxVtwoCashBackGrant); | |||||
| } | } | ||||
| @@ -36,4 +36,5 @@ public interface WxOfflineActivityGrantSettlementService { | |||||
| void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement); | void exportData(HttpServletRequest request, HttpServletResponse response, WxOfflineActivityGrantSettlement grantSettlement); | ||||
| OfflineActivitySettlementStatistics activitySettlementStatistics(WxOfflineActivityGrantSettlement grantSettlement); | OfflineActivitySettlementStatistics activitySettlementStatistics(WxOfflineActivityGrantSettlement grantSettlement); | ||||
| } | } | ||||
| @@ -4,6 +4,9 @@ import com.iformall.domain.po.WxVtwoActivityAward; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | import com.iformall.domain.po.WxVtwoActivityGrant; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantAward; | import com.iformall.domain.po.WxVtwoActivityGrantAward; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import java.util.List; | import java.util.List; | ||||
| @@ -15,4 +18,10 @@ import java.util.List; | |||||
| public interface WxVtwoActivityGrantAwardService extends IService<WxVtwoActivityGrantAward> { | public interface WxVtwoActivityGrantAwardService extends IService<WxVtwoActivityGrantAward> { | ||||
| void saveGrantAward(WxVtwoActivityGrant activityGrant,List<WxVtwoActivityAward> awardList); | void saveGrantAward(WxVtwoActivityGrant activityGrant,List<WxVtwoActivityAward> awardList); | ||||
| WxVtwoAwardStatistics activityAwardCountStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoAwardStatistics> activityAwardCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| } | } | ||||
| @@ -3,6 +3,8 @@ package com.iformall.service; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | import com.iformall.domain.po.WxVtwoActivityGrant; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.po.WxVtwoActivityOrder; | import com.iformall.domain.po.WxVtwoActivityOrder; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| @@ -15,6 +17,9 @@ import java.util.List; | |||||
| */ | */ | ||||
| public interface WxVtwoActivityGrantService extends IService<WxVtwoActivityGrant> { | public interface WxVtwoActivityGrantService extends IService<WxVtwoActivityGrant> { | ||||
| void handleFromOrder(String activityName, WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant); | |||||
| void handleFromOrder(WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant); | |||||
| WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| } | } | ||||
| @@ -4,6 +4,11 @@ import com.iformall.domain.po.WxVtwoActivityGrant; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrantSettlement; | import com.iformall.domain.po.WxVtwoActivityGrantSettlement; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | import com.iformall.domain.po.WxVtwoCashBackGrant; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoSettlementStatistics; | |||||
| import java.util.List; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -15,4 +20,14 @@ public interface WxVtwoActivityGrantSettlementService extends IService<WxVtwoAct | |||||
| void saveGrantSettlement(WxVtwoActivityGrant activityGrant); | void saveGrantSettlement(WxVtwoActivityGrant activityGrant); | ||||
| void saveGrantSettlement(WxVtwoCashBackGrant activityGrant); | void saveGrantSettlement(WxVtwoCashBackGrant activityGrant); | ||||
| WxVtwoSettlementStatistics activitySettlementStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| WxVtwoAwardStatistics activityAmountCashBackStatistics(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList); | |||||
| List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoAwardStatistics> activityAmountCashBackStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList); | |||||
| } | } | ||||
| @@ -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); | |||||
| } | |||||
| @@ -5,6 +5,9 @@ import com.iformall.domain.po.WxVtwoActivityGrant; | |||||
| import com.iformall.domain.po.WxVtwoActivityOrder; | import com.iformall.domain.po.WxVtwoActivityOrder; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoOrderBusinessStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoOrderCountStatistics; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| @@ -50,4 +53,10 @@ public interface WxVtwoActivityOrderService extends IService<WxVtwoActivityOrder | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| Map<Long, WxVtwoActivityOrder> findAuditDetailMap(List<Long> ids, String tenantId); | Map<Long, WxVtwoActivityOrder> findAuditDetailMap(List<Long> ids, String tenantId); | ||||
| WxVtwoOrderCountStatistics orderCountStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoOrderCountStatistics> orderCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoOrderBusinessStatistics> orderBusinessStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| } | } | ||||
| @@ -5,6 +5,7 @@ import com.iformall.domain.po.WxVtwoActivityOrder; | |||||
| import com.iformall.domain.po.WxVtwoActivitySpecialTopic; | import com.iformall.domain.po.WxVtwoActivitySpecialTopic; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| @@ -21,5 +22,9 @@ public interface WxVtwoActivitySpecialTopicService extends IService<WxVtwoActivi | |||||
| WxVtwoActivitySpecialTopic getInfoById(Long id, String tenantId); | WxVtwoActivitySpecialTopic getInfoById(Long id, String tenantId); | ||||
| WxVtwoActivitySpecialTopic getById(Long id, String tenantId); | |||||
| WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date createDate); | WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date createDate); | ||||
| void handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| } | } | ||||
| @@ -20,4 +20,6 @@ public interface WxVtwoCashBackAwardService extends IService<WxVtwoCashBackAward | |||||
| List<WxVtwoCashBackAward> findActivityAwardList(Long activityId, String tenantId); | List<WxVtwoCashBackAward> findActivityAwardList(Long activityId, String tenantId); | ||||
| Map<Long, WxVtwoCashBackAward> findActivityAwardMap(Long activityId, String tenantId); | Map<Long, WxVtwoCashBackAward> findActivityAwardMap(Long activityId, String tenantId); | ||||
| List<Long> getAmountAwardIdList(Long activityId, String tenantId); | |||||
| } | } | ||||
| @@ -5,6 +5,8 @@ import com.iformall.domain.po.WxVtwoCashBackActivity; | |||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | import com.iformall.domain.po.WxVtwoCashBackGrant; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrantAward; | import com.iformall.domain.po.WxVtwoCashBackGrantAward; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | |||||
| import java.util.List; | import java.util.List; | ||||
| @@ -18,4 +20,6 @@ public interface WxVtwoCashBackGrantAwardService extends IService<WxVtwoCashBack | |||||
| void handleGrantAwardList(WxVtwoCashBackActivity cashBackActivity, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList); | void handleGrantAwardList(WxVtwoCashBackActivity cashBackActivity, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList); | ||||
| void saveGrantAward(WxVtwoCashBackGrant activityGrant); | void saveGrantAward(WxVtwoCashBackGrant activityGrant); | ||||
| List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| } | } | ||||
| @@ -1,12 +1,11 @@ | |||||
| package com.iformall.service; | package com.iformall.service; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | |||||
| import com.iformall.domain.po.WxVtwoActivityOrder; | import com.iformall.domain.po.WxVtwoActivityOrder; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | import com.iformall.domain.po.WxVtwoCashBackGrant; | ||||
| import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -16,6 +15,9 @@ import java.util.List; | |||||
| */ | */ | ||||
| public interface WxVtwoCashBackGrantService extends IService<WxVtwoCashBackGrant> { | public interface WxVtwoCashBackGrantService extends IService<WxVtwoCashBackGrant> { | ||||
| void handleFromOrder(String activityName, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant); | |||||
| void handleFromOrder(WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant); | |||||
| WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo); | |||||
| } | } | ||||
| @@ -14,5 +14,5 @@ import java.util.List; | |||||
| */ | */ | ||||
| public interface WxVtwoSpecialTopicActivityService extends IService<WxVtwoSpecialTopicActivity> { | public interface WxVtwoSpecialTopicActivityService extends IService<WxVtwoSpecialTopicActivity> { | ||||
| void saveFromSpecialTopic(TenantEntity tenantEntity, Long specialTopicId, List<WxVtwoSpecialTopicActivity> activityList); | |||||
| void saveFromSpecialTopic(WxVtwoActivitySpecialTopic specialTopic, List<WxVtwoSpecialTopicActivity> activityList); | |||||
| } | } | ||||
| @@ -6,6 +6,11 @@ import com.iformall.common.Result; | |||||
| import com.iformall.domain.po.WxVtwoActivityAward; | import com.iformall.domain.po.WxVtwoActivityAward; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | import com.iformall.domain.po.WxVtwoActivityGrant; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrantAward; | import com.iformall.domain.po.WxVtwoActivityGrantAward; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | |||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import com.iformall.enums.EnumYesOrNo; | |||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.service.WxVtwoActivityAwardService; | import com.iformall.service.WxVtwoActivityAwardService; | ||||
| import com.iformall.service.WxVtwoActivityGrantAwardService; | import com.iformall.service.WxVtwoActivityGrantAwardService; | ||||
| @@ -15,6 +20,7 @@ import org.springframework.stereotype.Service; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.math.RoundingMode; | import java.math.RoundingMode; | ||||
| import java.util.Collections; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.function.Function; | import java.util.function.Function; | ||||
| @@ -84,6 +90,34 @@ public class WxVtwoActivityGrantAwardServiceImpl extends ServiceImpl<WxVtwoActiv | |||||
| wxVtwoActivityGrantAwardMapper.insertList(grantAwardList); | wxVtwoActivityGrantAwardMapper.insertList(grantAwardList); | ||||
| activityGrant.setGrantAwardList(grantAwardList); | activityGrant.setGrantAwardList(grantAwardList); | ||||
| } | } | ||||
| private WxVtwoActivityGrantAward handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){ | |||||
| WxVtwoActivityGrantAward grantAward = new WxVtwoActivityGrantAward(); | |||||
| grantAward.updateTenantInfo(statisticsVo); | |||||
| grantAward.setActivityId(statisticsVo.getActivityId()); | |||||
| grantAward.setCreateDateBegin(statisticsVo.getCreateDateBegin()); | |||||
| grantAward.setCreateDateEnd(statisticsVo.getCreateDateEnd()); | |||||
| grantAward.setStatus(EnumYesOrNo.YES.getCode()); | |||||
| return grantAward; | |||||
| } | |||||
| @Override | |||||
| public WxVtwoAwardStatistics activityAwardCountStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrantAward grantAward = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantAwardMapper.activityAwardCountStatistics(grantAward); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardStatistics> activityAwardCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrantAward grantAward = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantAwardMapper.activityAwardCountStatisticsChart(grantAward); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrantAward grantAward = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantAwardMapper.awardItemStatistics(grantAward); | |||||
| } | |||||
| } | } | ||||
| @@ -50,6 +50,8 @@ public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActi | |||||
| WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); | WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); | ||||
| grantExport.setId(idWorker.nextId()); | grantExport.setId(idWorker.nextId()); | ||||
| grantExport.setActivityId(activityGrant.getActivityId()); | grantExport.setActivityId(activityGrant.getActivityId()); | ||||
| grantExport.setActivityType(activityGrant.getActivityType()); | |||||
| grantExport.setActivityName(activityGrant.getActivityName()); | |||||
| grantExport.setGrantId(activityGrant.getId()); | grantExport.setGrantId(activityGrant.getId()); | ||||
| grantExport.setGrantUserName(activityGrant.getRealName()); | grantExport.setGrantUserName(activityGrant.getRealName()); | ||||
| grantExport.setGrantUserCard(activityGrant.getRealCard()); | grantExport.setGrantUserCard(activityGrant.getRealCard()); | ||||
| @@ -125,6 +127,8 @@ public class WxVtwoActivityGrantExportServiceImpl extends ServiceImpl<WxVtwoActi | |||||
| WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); | WxVtwoActivityGrantExport grantExport = getGrantExport(order,orderSettlementList); | ||||
| grantExport.setId(idWorker.nextId()); | grantExport.setId(idWorker.nextId()); | ||||
| grantExport.setActivityId(activityGrant.getActivityId()); | grantExport.setActivityId(activityGrant.getActivityId()); | ||||
| grantExport.setActivityType(activityGrant.getActivityType()); | |||||
| grantExport.setActivityName(activityGrant.getActivityName()); | |||||
| grantExport.setGrantId(activityGrant.getId()); | grantExport.setGrantId(activityGrant.getId()); | ||||
| grantExport.setGrantUserName(activityGrant.getRealName()); | grantExport.setGrantUserName(activityGrant.getRealName()); | ||||
| grantExport.setGrantUserCard(activityGrant.getRealCard()); | grantExport.setGrantUserCard(activityGrant.getRealCard()); | ||||
| @@ -6,9 +6,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | import com.iformall.domain.po.WxVtwoActivityGrant; | ||||
| import com.iformall.domain.po.WxVtwoActivityOrder; | import com.iformall.domain.po.WxVtwoActivityOrder; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | |||||
| import com.iformall.domain.po.WxVtwoPrizeDrawActivity; | import com.iformall.domain.po.WxVtwoPrizeDrawActivity; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | import com.iformall.enums.EnumOfflineActivityMerchantType; | ||||
| import com.iformall.enums.EnumOfflineActivityStatus; | import com.iformall.enums.EnumOfflineActivityStatus; | ||||
| import com.iformall.enums.EnumYesOrNo; | |||||
| import com.iformall.service.WxVtwoActivityGrantService; | import com.iformall.service.WxVtwoActivityGrantService; | ||||
| import com.iformall.mapper.WxVtwoActivityGrantMapper; | import com.iformall.mapper.WxVtwoActivityGrantMapper; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -19,6 +23,7 @@ import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -35,8 +40,7 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr | |||||
| private WxVtwoActivityGrantMapper wxVtwoActivityGrantMapper; | private WxVtwoActivityGrantMapper wxVtwoActivityGrantMapper; | ||||
| @Override | @Override | ||||
| public void handleFromOrder(String activityName, WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) { | |||||
| activityGrant.setActivityName(activityName); | |||||
| public void handleFromOrder(WxVtwoActivityGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) { | |||||
| activityGrant.setOrderList(orderList); | activityGrant.setOrderList(orderList); | ||||
| BigDecimal orderMoneySum = BigDecimal.ZERO; | BigDecimal orderMoneySum = BigDecimal.ZERO; | ||||
| List<String> lotteryNumList = new ArrayList<>(); | List<String> lotteryNumList = new ArrayList<>(); | ||||
| @@ -65,6 +69,7 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr | |||||
| } | } | ||||
| } | } | ||||
| @Override | @Override | ||||
| public boolean saveOrUpdate(WxVtwoActivityGrant activityGrant) { | public boolean saveOrUpdate(WxVtwoActivityGrant activityGrant) { | ||||
| Date now = new Date(); | Date now = new Date(); | ||||
| @@ -82,6 +87,28 @@ public class WxVtwoActivityGrantServiceImpl extends ServiceImpl<WxVtwoActivityGr | |||||
| return true; | return true; | ||||
| } | } | ||||
| private WxVtwoActivityGrant handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){ | |||||
| WxVtwoActivityGrant activityGrant = new WxVtwoActivityGrant(); | |||||
| activityGrant.updateTenantInfo(statisticsVo); | |||||
| activityGrant.setActivityId(statisticsVo.getActivityId()); | |||||
| activityGrant.setCreateDateBegin(statisticsVo.getCreateDateBegin()); | |||||
| activityGrant.setCreateDateEnd(statisticsVo.getCreateDateEnd()); | |||||
| activityGrant.setStatus(EnumYesOrNo.YES.getCode()); | |||||
| return activityGrant; | |||||
| } | |||||
| @Override | |||||
| public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrant activityGrant = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantMapper.activityAwardStatistics(activityGrant); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrant activityGrant = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantMapper.activityAwardStatisticsChart(activityGrant); | |||||
| } | |||||
| } | } | ||||
| @@ -3,9 +3,11 @@ package com.iformall.service.impl; | |||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoSettlementStatistics; | |||||
| import com.iformall.enums.EnumOfflineActivityAwardsModeType; | import com.iformall.enums.EnumOfflineActivityAwardsModeType; | ||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.mapper.WxVtwoActivityGrantMapper; | |||||
| import com.iformall.service.WxVtwoActivityGrantExportService; | import com.iformall.service.WxVtwoActivityGrantExportService; | ||||
| import com.iformall.service.WxVtwoActivityGrantSettlementService; | import com.iformall.service.WxVtwoActivityGrantSettlementService; | ||||
| import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper; | import com.iformall.mapper.WxVtwoActivityGrantSettlementMapper; | ||||
| @@ -14,10 +16,7 @@ import org.springframework.stereotype.Service; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.math.RoundingMode; | import java.math.RoundingMode; | ||||
| import java.util.ArrayList; | |||||
| import java.util.Comparator; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import java.util.*; | |||||
| import java.util.function.Function; | import java.util.function.Function; | ||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
| @@ -210,6 +209,55 @@ public class WxVtwoActivityGrantSettlementServiceImpl extends ServiceImpl<WxVtwo | |||||
| return settlement; | return settlement; | ||||
| } | } | ||||
| private WxVtwoActivityGrantSettlement handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){ | |||||
| WxVtwoActivityGrantSettlement grantSettlement = new WxVtwoActivityGrantSettlement(); | |||||
| grantSettlement.updateTenantInfo(statisticsVo); | |||||
| grantSettlement.setActivityId(statisticsVo.getActivityId()); | |||||
| grantSettlement.setCreateDateBegin(statisticsVo.getCreateDateBegin()); | |||||
| grantSettlement.setCreateDateEnd(statisticsVo.getCreateDateEnd()); | |||||
| grantSettlement.setStatus(EnumYesOrNo.YES.getCode()); | |||||
| return grantSettlement; | |||||
| } | |||||
| @Override | |||||
| public WxVtwoSettlementStatistics activitySettlementStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantSettlementMapper.settlementStatistics(grantSettlement); | |||||
| } | |||||
| @Override | |||||
| public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantSettlementMapper.activityAwardStatistics(grantSettlement); | |||||
| } | |||||
| @Override | |||||
| public WxVtwoAwardStatistics activityAmountCashBackStatistics(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList) { | |||||
| WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | |||||
| if(amountAwardIdList != null && !amountAwardIdList.isEmpty()){ | |||||
| grantSettlement.setAwardIdList(amountAwardIdList); | |||||
| }else{ | |||||
| grantSettlement.setAwardIdList(Collections.singletonList((long) -1)); | |||||
| } | |||||
| return wxVtwoActivityGrantSettlementMapper.activityAwardStatistics(grantSettlement); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityGrantSettlementMapper.activityAwardStatisticsChart(grantSettlement); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardStatistics> activityAmountCashBackStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo, List<Long> amountAwardIdList) { | |||||
| WxVtwoActivityGrantSettlement grantSettlement = handleStatisticsVo(statisticsVo); | |||||
| if(amountAwardIdList != null && !amountAwardIdList.isEmpty()){ | |||||
| grantSettlement.setAwardIdList(amountAwardIdList); | |||||
| }else{ | |||||
| grantSettlement.setAwardIdList(Collections.singletonList((long) -1)); | |||||
| } | |||||
| return wxVtwoActivityGrantSettlementMapper.activityAwardStatisticsChart(grantSettlement); | |||||
| } | |||||
| } | } | ||||
| @@ -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; | |||||
| } | |||||
| } | |||||
| @@ -441,6 +441,65 @@ public class WxVtwoActivityOrderServiceImpl extends ServiceImpl<WxVtwoActivityOr | |||||
| return auditDetailList.stream().collect(Collectors.toMap(WxVtwoActivityOrder::getId, Function.identity())); | return auditDetailList.stream().collect(Collectors.toMap(WxVtwoActivityOrder::getId, Function.identity())); | ||||
| } | } | ||||
| private WxVtwoActivityOrder handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){ | |||||
| WxVtwoActivityOrder activityOrder = new WxVtwoActivityOrder(); | |||||
| activityOrder.updateTenantInfo(statisticsVo); | |||||
| activityOrder.setCreateDateBegin(statisticsVo.getCreateDateBegin()); | |||||
| activityOrder.setCreateDateEnd(statisticsVo.getCreateDateEnd()); | |||||
| activityOrder.setAuditStatus(EnumOfflineActivityRecordStatus.AUDI_SUCCESS.getCode()); | |||||
| return activityOrder; | |||||
| } | |||||
| @Override | |||||
| public WxVtwoOrderCountStatistics orderCountStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityOrder activityOrder = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoActivityOrderMapper.getCountStatistics(activityOrder); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoOrderCountStatistics> orderCountStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityOrder activityOrder = handleStatisticsVo(statisticsVo); | |||||
| List<WxVtwoOrderCountStatistics> countStatisticsChart = wxVtwoActivityOrderMapper.getCountStatisticsChart(activityOrder); | |||||
| Map<String, WxVtwoOrderCountStatistics> countStatisticsChartMap = new HashMap<>(); | |||||
| if(countStatisticsChart != null && !countStatisticsChart.isEmpty()){ | |||||
| countStatisticsChartMap = countStatisticsChart.stream().collect(Collectors.toMap(WxVtwoOrderCountStatistics::getXTime, Function.identity())); | |||||
| } | |||||
| List<String> tjTimeList = DateUtils.getTjTimeList(DateUtils.date2String(activityOrder.getCreateDateBegin(),"yyyy-MM-dd"), | |||||
| DateUtils.date2String(activityOrder.getCreateDateEnd(),"yyyy-MM-dd"), "0"); | |||||
| List<WxVtwoOrderCountStatistics> newCountStatisticsChart = new ArrayList<>(); | |||||
| for (String date : tjTimeList) { | |||||
| WxVtwoOrderCountStatistics countStatistics = countStatisticsChartMap.get(date); | |||||
| if(countStatistics == null){ | |||||
| countStatistics = new WxVtwoOrderCountStatistics(); | |||||
| countStatistics.setUserCount(0); | |||||
| countStatistics.setOrderCount(0); | |||||
| countStatistics.setSumMoney(BigDecimal.ZERO); | |||||
| countStatistics.setMerchantCount(0); | |||||
| } | |||||
| countStatistics.setXTime(date.substring(5).replace("-", "/")); | |||||
| newCountStatisticsChart.add(countStatistics); | |||||
| } | |||||
| return newCountStatisticsChart; | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoOrderBusinessStatistics> orderBusinessStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivityOrder activityOrder = handleStatisticsVo(statisticsVo); | |||||
| List<WxVtwoOrderBusinessStatistics> businessStatistics = wxVtwoActivityOrderMapper.getBusinessStatistics(activityOrder); | |||||
| if(businessStatistics != null && !businessStatistics.isEmpty()){ | |||||
| Map<Integer, WxBusiness> bussinessMap = wxBusinessService.findAllMap(activityOrder); | |||||
| BigDecimal totalMoney = businessStatistics.stream().map(WxVtwoOrderBusinessStatistics::getSumMoney).reduce(BigDecimal.ZERO, BigDecimal::add); | |||||
| int totalCount = businessStatistics.size(); | |||||
| for (WxVtwoOrderBusinessStatistics statistics : businessStatistics){ | |||||
| statistics.setBusinessName(statistics.getBusinessId() == null?"其他":bussinessMap.get(statistics.getBusinessId()).getTitle()); | |||||
| statistics.setMoneyRatio(statistics.getSumMoney().divide(totalMoney,4, RoundingMode.HALF_UP).doubleValue()); | |||||
| statistics.setCountRatio(new BigDecimal(statistics.getBusinessCount()).divide(new BigDecimal(totalCount),4, RoundingMode.HALF_UP).doubleValue()); | |||||
| } | |||||
| return businessStatistics.stream().sorted(Comparator.comparing(WxVtwoOrderBusinessStatistics::getMoneyRatio).reversed()).collect(Collectors.toList()); | |||||
| } | |||||
| return Collections.emptyList(); | |||||
| } | |||||
| } | } | ||||
| @@ -6,16 +6,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.Result; | |||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.domain.vo.WxVtwoActivityCreditRule; | |||||
| import com.iformall.domain.vo.WxVtwoActivityOrderStatistics; | |||||
| import com.iformall.domain.vo.WxVtwoActivityRule; | |||||
| import com.iformall.domain.vo.WxVtwoActivityRuleDetail; | |||||
| import com.iformall.domain.vo.*; | |||||
| import com.iformall.enums.EnumOfflineActivityMerchantType; | import com.iformall.enums.EnumOfflineActivityMerchantType; | ||||
| import com.iformall.enums.EnumOfflineActivityRecordStatus; | import com.iformall.enums.EnumOfflineActivityRecordStatus; | ||||
| import com.iformall.enums.EnumOfflineActivityStatus; | import com.iformall.enums.EnumOfflineActivityStatus; | ||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper; | import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper; | ||||
| import com.iformall.service.WxVtwoActivitySpecialTopicService; | import com.iformall.service.WxVtwoActivitySpecialTopicService; | ||||
| import com.iformall.mapper.WxVtwoActivitySpecialTopicMapper; | import com.iformall.mapper.WxVtwoActivitySpecialTopicMapper; | ||||
| @@ -27,6 +26,7 @@ import org.springframework.transaction.annotation.Transactional; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.stream.Collectors; | |||||
| /** | /** | ||||
| * @author xiaohu | * @author xiaohu | ||||
| @@ -108,7 +108,7 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct | |||||
| wxVtwoActivitySpecialTopicMapper.updateById(specialTopic); | wxVtwoActivitySpecialTopicMapper.updateById(specialTopic); | ||||
| } | } | ||||
| if(specialTopic.getActivityList() != null && !specialTopic.getActivityList().isEmpty()){ | if(specialTopic.getActivityList() != null && !specialTopic.getActivityList().isEmpty()){ | ||||
| wxVtwoSpecialTopicActivityService.saveFromSpecialTopic(specialTopic,specialTopic.getId(),specialTopic.getActivityList()); | |||||
| wxVtwoSpecialTopicActivityService.saveFromSpecialTopic(specialTopic,specialTopic.getActivityList()); | |||||
| } | } | ||||
| return true; | return true; | ||||
| } | } | ||||
| @@ -137,6 +137,18 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct | |||||
| return specialTopic; | return specialTopic; | ||||
| } | } | ||||
| @Override | |||||
| public WxVtwoActivitySpecialTopic getById(Long id, String tenantId) { | |||||
| WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectById(id, tenantId); | |||||
| if (specialTopic == null) { | |||||
| return null; | |||||
| } | |||||
| if(StringUtils.isNotBlank(specialTopic.getCreditConfig())){ | |||||
| specialTopic.setCreditConfigObject(JSONObject.parseObject(specialTopic.getCreditConfig(), WxVtwoActivityCreditRule.class)); | |||||
| } | |||||
| return specialTopic; | |||||
| } | |||||
| @Override | @Override | ||||
| public WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date orderDate) { | public WxVtwoActivitySpecialTopic selectCreditOne(TenantEntity tenantEntity, Date orderDate) { | ||||
| WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectCreditOne(tenantEntity.getTenantId(),EnumYesOrNo.YES.getCode(),orderDate); | WxVtwoActivitySpecialTopic specialTopic = wxVtwoActivitySpecialTopicMapper.selectCreditOne(tenantEntity.getTenantId(),EnumYesOrNo.YES.getCode(),orderDate); | ||||
| @@ -147,6 +159,31 @@ public class WxVtwoActivitySpecialTopicServiceImpl extends ServiceImpl<WxVtwoAct | |||||
| return specialTopic; | return specialTopic; | ||||
| } | } | ||||
| @Override | |||||
| public void handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoActivitySpecialTopic specialTopic = this.getInfoById(statisticsVo.getId(), statisticsVo.getTenantId()); | |||||
| if (specialTopic == null) { | |||||
| throw new MallinkException(Result.ERROR,"未查询到活动"); | |||||
| } | |||||
| if(statisticsVo.getCreateDateBegin() == null || statisticsVo.getCreateDateBegin().before(specialTopic.getStartTime())){ | |||||
| statisticsVo.setCreateDateBegin(specialTopic.getStartTime()); | |||||
| } | |||||
| if(statisticsVo.getCreateDateEnd() == null || statisticsVo.getCreateDateEnd().after(specialTopic.getEndTime())){ | |||||
| statisticsVo.setCreateDateEnd(specialTopic.getEndTime()); | |||||
| } | |||||
| Date now = new Date(); | |||||
| if(statisticsVo.getCreateDateEnd().after(now)){ | |||||
| statisticsVo.setCreateDateEnd(now); | |||||
| } | |||||
| if(statisticsVo.getCreateDateBegin().after(statisticsVo.getCreateDateEnd())){ | |||||
| throw new MallinkException(Result.ERROR,"筛选时间不在活动时间范围内"); | |||||
| } | |||||
| List<Long> activityIdList = specialTopic.getActivityList().stream().map(a -> a.getActivityId()).collect(Collectors.toList()); | |||||
| statisticsVo.setActivityIdList(activityIdList); | |||||
| } | |||||
| } | } | ||||
| @@ -264,7 +264,7 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun | |||||
| List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | ||||
| wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false); | |||||
| wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false); | |||||
| activityGrant.setAwardList(amountGiftActivity.getAwardList()); | activityGrant.setAwardList(amountGiftActivity.getAwardList()); | ||||
| @@ -329,7 +329,7 @@ public class WxVtwoAmountGiftActivityServiceImpl extends ServiceImpl<WxVtwoAmoun | |||||
| List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | ||||
| wxVtwoActivityGrantService.handleFromOrder(amountGiftActivity.getName(),activityGrant,orderList,false); | |||||
| wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false); | |||||
| wxVtwoActivityGrantService.saveOrUpdate(activityGrant); | wxVtwoActivityGrantService.saveOrUpdate(activityGrant); | ||||
| @@ -264,7 +264,7 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac | |||||
| List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | ||||
| wxVtwoCashBackGrantService.handleFromOrder(cashBackActivity.getName(),activityGrant,orderList,false); | |||||
| wxVtwoCashBackGrantService.handleFromOrder(activityGrant,orderList,false); | |||||
| wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList); | wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList); | ||||
| @@ -277,7 +277,7 @@ public class WxVtwoCashBackActivityServiceImpl extends ServiceImpl<WxVtwoCashBac | |||||
| List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | ||||
| wxVtwoCashBackGrantService.handleFromOrder(cashBackActivity.getName(),activityGrant,orderList,false); | |||||
| wxVtwoCashBackGrantService.handleFromOrder(activityGrant,orderList,false); | |||||
| wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList); | wxVtwoCashBackGrantAwardService.handleGrantAwardList(cashBackActivity, activityGrant, orderList); | ||||
| @@ -85,6 +85,19 @@ public class WxVtwoCashBackAwardServiceImpl extends ServiceImpl<WxVtwoCashBackAw | |||||
| List<WxVtwoCashBackAward> activityAwardList = this.findActivityAwardList(activityId, tenantId); | List<WxVtwoCashBackAward> activityAwardList = this.findActivityAwardList(activityId, tenantId); | ||||
| return activityAwardList.stream().collect(Collectors.toMap(WxVtwoCashBackAward::getId, Function.identity())); | return activityAwardList.stream().collect(Collectors.toMap(WxVtwoCashBackAward::getId, Function.identity())); | ||||
| } | } | ||||
| @Override | |||||
| public List<Long> getAmountAwardIdList(Long activityId, String tenantId) { | |||||
| WxVtwoCashBackAward cashBackAwardQ = new WxVtwoCashBackAward(); | |||||
| cashBackAwardQ.setTenantId(tenantId); | |||||
| cashBackAwardQ.setActivityId(activityId); | |||||
| cashBackAwardQ.setModelType(EnumOfflineActivityAwardsModeType.AMOUNT.getCode()); | |||||
| List<WxVtwoCashBackAward> amountAwardList = wxVtwoCashBackAwardMapper.findList(cashBackAwardQ); | |||||
| if(amountAwardList != null && !amountAwardList.isEmpty()){ | |||||
| return amountAwardList.stream().map(WxVtwoCashBackAward::getId).collect(Collectors.toList()); | |||||
| } | |||||
| return Collections.emptyList(); | |||||
| } | |||||
| } | } | ||||
| @@ -3,7 +3,9 @@ package com.iformall.service.impl; | |||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoActivityTaxDeductionRule; | import com.iformall.domain.vo.WxVtwoActivityTaxDeductionRule; | ||||
| import com.iformall.domain.vo.WxVtwoAwardGrantStatistics; | |||||
| import com.iformall.enums.EnumOfflineActivityAwardsModeType; | import com.iformall.enums.EnumOfflineActivityAwardsModeType; | ||||
| import com.iformall.enums.EnumOfflineActivityAwardsRule; | import com.iformall.enums.EnumOfflineActivityAwardsRule; | ||||
| import com.iformall.enums.EnumOfflineActivityMode; | import com.iformall.enums.EnumOfflineActivityMode; | ||||
| @@ -16,10 +18,7 @@ import org.springframework.stereotype.Service; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.math.RoundingMode; | import java.math.RoundingMode; | ||||
| import java.util.ArrayList; | |||||
| import java.util.Comparator; | |||||
| import java.util.List; | |||||
| import java.util.Map; | |||||
| import java.util.*; | |||||
| import java.util.function.Function; | import java.util.function.Function; | ||||
| import static java.util.stream.Collectors.toList; | import static java.util.stream.Collectors.toList; | ||||
| @@ -216,6 +215,22 @@ public class WxVtwoCashBackGrantAwardServiceImpl extends ServiceImpl<WxVtwoCashB | |||||
| wxVtwoCashBackGrantAwardMapper.insertList(grantAwardList); | wxVtwoCashBackGrantAwardMapper.insertList(grantAwardList); | ||||
| activityGrant.setGrantAwardList(grantAwardList); | activityGrant.setGrantAwardList(grantAwardList); | ||||
| } | } | ||||
| private WxVtwoCashBackGrantAward handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){ | |||||
| WxVtwoCashBackGrantAward grantAward = new WxVtwoCashBackGrantAward(); | |||||
| grantAward.updateTenantInfo(statisticsVo); | |||||
| grantAward.setActivityId(statisticsVo.getActivityId()); | |||||
| grantAward.setCreateDateBegin(statisticsVo.getCreateDateBegin()); | |||||
| grantAward.setCreateDateEnd(statisticsVo.getCreateDateEnd()); | |||||
| grantAward.setStatus(EnumYesOrNo.YES.getCode()); | |||||
| return grantAward; | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardGrantStatistics> awardItemStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoCashBackGrantAward grantAward = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoCashBackGrantAwardMapper.awardItemStatistics(grantAward); | |||||
| } | |||||
| } | } | ||||
| @@ -7,6 +7,9 @@ import com.iformall.common.IdWorker; | |||||
| import com.iformall.domain.po.WxVtwoActivityGrant; | import com.iformall.domain.po.WxVtwoActivityGrant; | ||||
| import com.iformall.domain.po.WxVtwoActivityOrder; | import com.iformall.domain.po.WxVtwoActivityOrder; | ||||
| import com.iformall.domain.po.WxVtwoCashBackGrant; | import com.iformall.domain.po.WxVtwoCashBackGrant; | ||||
| import com.iformall.domain.vo.WxVtwoActivityStatisticsVo; | |||||
| import com.iformall.domain.vo.WxVtwoAwardStatistics; | |||||
| import com.iformall.enums.EnumYesOrNo; | |||||
| import com.iformall.service.WxVtwoCashBackGrantService; | import com.iformall.service.WxVtwoCashBackGrantService; | ||||
| import com.iformall.mapper.WxVtwoCashBackGrantMapper; | import com.iformall.mapper.WxVtwoCashBackGrantMapper; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -14,6 +17,7 @@ import org.springframework.stereotype.Service; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Collections; | |||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| @@ -30,8 +34,7 @@ public class WxVtwoCashBackGrantServiceImpl extends ServiceImpl<WxVtwoCashBackGr | |||||
| private WxVtwoCashBackGrantMapper wxVtwoCashBackGrantMapper; | private WxVtwoCashBackGrantMapper wxVtwoCashBackGrantMapper; | ||||
| @Override | @Override | ||||
| public void handleFromOrder(String activityName, WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) { | |||||
| activityGrant.setActivityName(activityName); | |||||
| public void handleFromOrder(WxVtwoCashBackGrant activityGrant, List<WxVtwoActivityOrder> orderList, boolean isGrant) { | |||||
| activityGrant.setOrderList(orderList); | activityGrant.setOrderList(orderList); | ||||
| BigDecimal orderMoneySum = BigDecimal.ZERO; | BigDecimal orderMoneySum = BigDecimal.ZERO; | ||||
| List<String> lotteryNumList = new ArrayList<>(); | List<String> lotteryNumList = new ArrayList<>(); | ||||
| @@ -76,6 +79,28 @@ public class WxVtwoCashBackGrantServiceImpl extends ServiceImpl<WxVtwoCashBackGr | |||||
| } | } | ||||
| return true; | return true; | ||||
| } | } | ||||
| private WxVtwoCashBackGrant handleStatisticsVo(WxVtwoActivityStatisticsVo statisticsVo){ | |||||
| WxVtwoCashBackGrant cashBackGrant = new WxVtwoCashBackGrant(); | |||||
| cashBackGrant.updateTenantInfo(statisticsVo); | |||||
| cashBackGrant.setActivityId(statisticsVo.getActivityId()); | |||||
| cashBackGrant.setCreateDateBegin(statisticsVo.getCreateDateBegin()); | |||||
| cashBackGrant.setCreateDateEnd(statisticsVo.getCreateDateEnd()); | |||||
| cashBackGrant.setStatus(EnumYesOrNo.YES.getCode()); | |||||
| return cashBackGrant; | |||||
| } | |||||
| @Override | |||||
| public WxVtwoAwardStatistics activityAwardStatistics(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoCashBackGrant wxVtwoCashBackGrant = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoCashBackGrantMapper.activityAwardStatistics(wxVtwoCashBackGrant); | |||||
| } | |||||
| @Override | |||||
| public List<WxVtwoAwardStatistics> activityAwardStatisticsChart(WxVtwoActivityStatisticsVo statisticsVo) { | |||||
| WxVtwoCashBackGrant wxVtwoCashBackGrant = handleStatisticsVo(statisticsVo); | |||||
| return wxVtwoCashBackGrantMapper.activityAwardStatisticsChart(wxVtwoCashBackGrant); | |||||
| } | |||||
| } | } | ||||
| @@ -267,7 +267,7 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD | |||||
| List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | ||||
| wxVtwoActivityGrantService.handleFromOrder(prizeDrawActivity.getName(),activityGrant,orderList,false); | |||||
| wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false); | |||||
| activityGrant.setAwardList(prizeDrawActivity.getAwardList()); | activityGrant.setAwardList(prizeDrawActivity.getAwardList()); | ||||
| @@ -348,7 +348,7 @@ public class WxVtwoPrizeDrawActivityServiceImpl extends ServiceImpl<WxVtwoPrizeD | |||||
| List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | List<WxVtwoActivityOrder> orderList = wxVtwoActivityOrderService.findGrantOrder(activityGrant,activityGrant.getOrderIdList(),activityGrant.getOrderFilterIdList()); | ||||
| wxVtwoActivityGrantService.handleFromOrder(prizeDrawActivity.getName(),activityGrant,orderList,false); | |||||
| wxVtwoActivityGrantService.handleFromOrder(activityGrant,orderList,false); | |||||
| wxVtwoActivityGrantService.saveOrUpdate(activityGrant); | wxVtwoActivityGrantService.saveOrUpdate(activityGrant); | ||||
| @@ -3,10 +3,13 @@ package com.iformall.service.impl; | |||||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
| import com.iformall.common.IdWorker; | import com.iformall.common.IdWorker; | ||||
| import com.iformall.common.Result; | |||||
| import com.iformall.domain.po.WxVtwoActivityAward; | import com.iformall.domain.po.WxVtwoActivityAward; | ||||
| import com.iformall.domain.po.WxVtwoActivitySpecialTopic; | |||||
| import com.iformall.domain.po.WxVtwoSpecialTopicActivity; | import com.iformall.domain.po.WxVtwoSpecialTopicActivity; | ||||
| import com.iformall.domain.po.base.TenantEntity; | import com.iformall.domain.po.base.TenantEntity; | ||||
| import com.iformall.enums.EnumOfflineActivityType; | import com.iformall.enums.EnumOfflineActivityType; | ||||
| import com.iformall.exception.MallinkException; | |||||
| import com.iformall.service.WxVtwoSpecialTopicActivityService; | import com.iformall.service.WxVtwoSpecialTopicActivityService; | ||||
| import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper; | import com.iformall.mapper.WxVtwoSpecialTopicActivityMapper; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -28,20 +31,25 @@ public class WxVtwoSpecialTopicActivityServiceImpl extends ServiceImpl<WxVtwoSpe | |||||
| private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper; | private WxVtwoSpecialTopicActivityMapper wxVtwoSpecialTopicActivityMapper; | ||||
| @Override | @Override | ||||
| public void saveFromSpecialTopic(TenantEntity tenantEntity, Long specialTopicId, List<WxVtwoSpecialTopicActivity> activityList) { | |||||
| public void saveFromSpecialTopic(WxVtwoActivitySpecialTopic specialTopic, List<WxVtwoSpecialTopicActivity> activityList) { | |||||
| WxVtwoSpecialTopicActivity specialTopicActivityQ = new WxVtwoSpecialTopicActivity(); | WxVtwoSpecialTopicActivity specialTopicActivityQ = new WxVtwoSpecialTopicActivity(); | ||||
| specialTopicActivityQ.updateTenantInfo(tenantEntity); | |||||
| specialTopicActivityQ.setSpecialTopicId(specialTopicId); | |||||
| specialTopicActivityQ.updateTenantInfo(specialTopic); | |||||
| specialTopicActivityQ.setSpecialTopicId(specialTopic.getId()); | |||||
| wxVtwoSpecialTopicActivityMapper.delete(new QueryWrapper<>(specialTopicActivityQ)); | wxVtwoSpecialTopicActivityMapper.delete(new QueryWrapper<>(specialTopicActivityQ)); | ||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| Date now = new Date(); | Date now = new Date(); | ||||
| for (WxVtwoSpecialTopicActivity specialTopicActivity : activityList) { | for (WxVtwoSpecialTopicActivity specialTopicActivity : activityList) { | ||||
| if(specialTopicActivity.getActivityStartTime().before(specialTopic.getStartTime()) | |||||
| || specialTopicActivity.getActivityEndTime().after(specialTopic.getEndTime())){ | |||||
| throw new MallinkException(Result.ERROR, specialTopicActivity.getActivityName()+"活动时间未在主题范围内"); | |||||
| } | |||||
| if(specialTopicActivity.getId() == null){ | if(specialTopicActivity.getId() == null){ | ||||
| specialTopicActivity.setId(idWorker.nextId()); | specialTopicActivity.setId(idWorker.nextId()); | ||||
| } | } | ||||
| specialTopicActivity.updateTenantInfo(tenantEntity); | |||||
| specialTopicActivity.setSpecialTopicId(specialTopicId); | |||||
| specialTopicActivity.updateTenantInfo(specialTopic); | |||||
| specialTopicActivity.setSpecialTopicId(specialTopic.getId()); | |||||
| if(specialTopicActivity.getCreateDate() == null){ | if(specialTopicActivity.getCreateDate() == null){ | ||||
| specialTopicActivity.setCreateDate(now); | specialTopicActivity.setCreateDate(now); | ||||
| } | } | ||||
| @@ -64,6 +64,14 @@ | |||||
| and `award_id` = #{awardId} | and `award_id` = #{awardId} | ||||
| </if> | </if> | ||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != status "> | <if test=" null != status "> | ||||
| and `status` = #{status} | and `status` = #{status} | ||||
| </if> | </if> | ||||
| @@ -107,4 +115,29 @@ | |||||
| #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) | #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) | ||||
| </foreach> | </foreach> | ||||
| </insert> | </insert> | ||||
| <select id="activityAwardCountStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT | |||||
| IFNULL(sum(award_count),0) as 'awardCount', | |||||
| IFNULL(sum(grant_price),0) as 'awardPrice' | |||||
| FROM wx_vtwo_activity_grant_award | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="activityAwardCountStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoActivityGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | |||||
| IFNULL(sum(award_count),0) as 'awardCount', | |||||
| IFNULL(sum(grant_price),0) as 'awardPrice' | |||||
| FROM wx_vtwo_activity_grant_award | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by xTime | |||||
| </select> | |||||
| <select id="awardItemStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardGrantStatistics"> | |||||
| SELECT award_id as 'awardId', | |||||
| IFNULL(sum(award_count),0) as 'awardCount', | |||||
| IFNULL(sum(grant_price),0) as 'awardPrice', | |||||
| FROM wx_vtwo_activity_grant_award | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by award_id | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -9,6 +9,8 @@ | |||||
| <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | ||||
| <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | ||||
| <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | ||||
| <result property="activityType" column="activity_type" jdbcType="SMALLINT"/> | |||||
| <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | |||||
| <result property="orderId" column="order_id" jdbcType="BIGINT"/> | <result property="orderId" column="order_id" jdbcType="BIGINT"/> | ||||
| <result property="orderNo" column="order_no" jdbcType="VARCHAR"/> | <result property="orderNo" column="order_no" jdbcType="VARCHAR"/> | ||||
| <result property="orderAmount" column="order_amount" jdbcType="DECIMAL"/> | <result property="orderAmount" column="order_amount" jdbcType="DECIMAL"/> | ||||
| @@ -50,7 +52,7 @@ | |||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| id,tenant_id,parent_tenant_id, | id,tenant_id,parent_tenant_id, | ||||
| activity_id,order_id,order_no, | |||||
| activity_id,activity_type,activity_name,order_id,order_no, | |||||
| order_amount,merchant_id,merchant_name, | order_amount,merchant_id,merchant_name, | ||||
| merchant_shop_num,business_id,business_name, | merchant_shop_num,business_id,business_name, | ||||
| lottery_num,lottery_count,anniversary_lottery_num, | lottery_num,lottery_count,anniversary_lottery_num, | ||||
| @@ -79,6 +81,9 @@ | |||||
| <if test=" null != activityId "> | <if test=" null != activityId "> | ||||
| and `activity_id` = #{activityId} | and `activity_id` = #{activityId} | ||||
| </if> | </if> | ||||
| <if test=" null != activityType "> | |||||
| and `activity_type` = #{activityType} | |||||
| </if> | |||||
| <if test=" null != orderId "> | <if test=" null != orderId "> | ||||
| and `order_id` = #{orderId} | and `order_id` = #{orderId} | ||||
| </if> | </if> | ||||
| @@ -109,7 +114,7 @@ | |||||
| <insert id="insertList" parameterType="java.util.List"> | <insert id="insertList" parameterType="java.util.List"> | ||||
| insert into wx_vtwo_activity_grant_export | insert into wx_vtwo_activity_grant_export | ||||
| (id, | (id, | ||||
| activity_id,order_id,order_no, | |||||
| activity_id,activity_type,activity_name,order_id,order_no, | |||||
| order_amount,merchant_id,merchant_name, | order_amount,merchant_id,merchant_name, | ||||
| merchant_shop_num,business_id,business_name, | merchant_shop_num,business_id,business_name, | ||||
| lottery_num,lottery_count,anniversary_lottery_num, | lottery_num,lottery_count,anniversary_lottery_num, | ||||
| @@ -125,7 +130,7 @@ | |||||
| values | values | ||||
| <foreach collection="grantExportList" item="item" index="index" separator=","> | <foreach collection="grantExportList" item="item" index="index" separator=","> | ||||
| (#{item.id,jdbcType=BIGINT}, | (#{item.id,jdbcType=BIGINT}, | ||||
| #{item.activityId,jdbcType=BIGINT},#{item.orderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR}, | |||||
| #{item.activityId,jdbcType=BIGINT},#{item.activityType,jdbcType=SMALLINT},#{item.activityName,jdbcType=VARCHAR},#{item.orderId,jdbcType=BIGINT},#{item.orderNo,jdbcType=VARCHAR}, | |||||
| #{item.orderAmount,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT},#{item.merchantName,jdbcType=VARCHAR}, | #{item.orderAmount,jdbcType=DECIMAL},#{item.merchantId,jdbcType=BIGINT},#{item.merchantName,jdbcType=VARCHAR}, | ||||
| #{item.merchantShopNum,jdbcType=VARCHAR},#{item.businessId,jdbcType=INTEGER},#{item.businessName,jdbcType=VARCHAR}, | #{item.merchantShopNum,jdbcType=VARCHAR},#{item.businessId,jdbcType=INTEGER},#{item.businessName,jdbcType=VARCHAR}, | ||||
| #{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER},#{item.anniversaryLotteryNum,jdbcType=VARCHAR}, | #{item.lotteryNum,jdbcType=VARCHAR},#{item.lotteryCount,jdbcType=INTEGER},#{item.anniversaryLotteryNum,jdbcType=VARCHAR}, | ||||
| @@ -9,6 +9,7 @@ | |||||
| <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | ||||
| <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | ||||
| <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | ||||
| <result property="activityType" column="activity_type" jdbcType="SMALLINT"/> | |||||
| <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | ||||
| <result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/> | <result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/> | ||||
| <result property="orderCount" column="order_count" jdbcType="INTEGER"/> | <result property="orderCount" column="order_count" jdbcType="INTEGER"/> | ||||
| @@ -29,7 +30,7 @@ | |||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| id,tenant_id,parent_tenant_id, | id,tenant_id,parent_tenant_id, | ||||
| activity_id,activity_name,order_money_sum, | |||||
| activity_id,activity_type,activity_name,order_money_sum, | |||||
| order_count,cus_name,cus_phone, | order_count,cus_name,cus_phone, | ||||
| lottery_num,lottery_count,anniversary_lottery_num, | lottery_num,lottery_count,anniversary_lottery_num, | ||||
| real_name,real_card,remark,sign_img, | real_name,real_card,remark,sign_img, | ||||
| @@ -53,6 +54,17 @@ | |||||
| <if test=" null != activityId "> | <if test=" null != activityId "> | ||||
| and `activity_id` = #{activityId} | and `activity_id` = #{activityId} | ||||
| </if> | </if> | ||||
| <if test=" null != activityType "> | |||||
| and `activity_type` = #{activityType} | |||||
| </if> | |||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != status "> | <if test=" null != status "> | ||||
| and `status` = #{status} | and `status` = #{status} | ||||
| @@ -76,4 +88,23 @@ | |||||
| select <include refid="allColumns" /> from wx_vtwo_activity_grant | select <include refid="allColumns" /> from wx_vtwo_activity_grant | ||||
| where id = #{id} and tenant_id=#{tenantId} | where id = #{id} and tenant_id=#{tenantId} | ||||
| </select> | </select> | ||||
| <select id="activityAwardStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT count(1) as 'grantCount', | |||||
| IFNULL(sum(order_count),0) as 'orderCount', | |||||
| IFNULL(sum(order_money_sum),0) as 'orderMoney' | |||||
| FROM wx_vtwo_activity_grant | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="activityAwardStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoActivityGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | |||||
| count(1) as 'grantCount', | |||||
| IFNULL(sum(order_count),0) as 'orderCount', | |||||
| IFNULL(sum(order_money_sum),0) as 'orderMoney' | |||||
| FROM wx_vtwo_activity_grant | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by xTime | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -64,10 +64,43 @@ | |||||
| and `award_id` = #{awardId} | and `award_id` = #{awardId} | ||||
| </if> | </if> | ||||
| <if test=" null != merchantId "> | |||||
| and `merchant_id` = #{merchantId} | |||||
| </if> | |||||
| <if test=" null != status "> | <if test=" null != status "> | ||||
| and `status` = #{status} | and `status` = #{status} | ||||
| </if> | </if> | ||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != activityIdList "> | |||||
| and activity_id in | |||||
| <foreach collection="activityIdList" index="index" item="idItem" open="(" separator="," close=")"> | |||||
| #{idItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != merchantIdList "> | |||||
| and merchant_id in | |||||
| <foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")"> | |||||
| #{midItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != awardIdList "> | |||||
| and award_id in | |||||
| <foreach collection="awardIdList" index="index" item="idItem" open="(" separator="," close=")"> | |||||
| #{idItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -115,4 +148,51 @@ | |||||
| #{item.updateDate,jdbcType=TIMESTAMP}) | #{item.updateDate,jdbcType=TIMESTAMP}) | ||||
| </foreach> | </foreach> | ||||
| </insert> | </insert> | ||||
| <select id="settlementStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement" | |||||
| resultType="com.iformall.domain.vo.WxVtwoSettlementStatistics"> | |||||
| SELECT | |||||
| IFNULL(sum(order_grant_price),0) as 'grantPrice', | |||||
| count(DISTINCT order_id) as 'orderCount', | |||||
| count(DISTINCT merchant_id) as 'merchantCount', | |||||
| IFNULL(sum(order_mall_share_price),0) as 'mallPrice', | |||||
| IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice' | |||||
| FROM wx_vtwo_activity_grant_settlement | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="merchantSettlementStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement" | |||||
| resultType="com.iformall.domain.vo.WxVtwoMerchantSettlementStatistics"> | |||||
| SELECT | |||||
| merchant_id as 'merchantId', | |||||
| count(DISTINCT order_id) as 'orderCount', | |||||
| IFNULL(sum(order_grant_price),0) as 'grantPrice', | |||||
| IFNULL(sum(order_mall_share_price),0) as 'mallPrice', | |||||
| IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice' | |||||
| FROM wx_vtwo_activity_grant_settlement | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by merchant_id | |||||
| </select> | |||||
| <select id="activityAwardStatistics" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement" | |||||
| resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT count(DISTINCT grant_id) as 'grantCount', | |||||
| IFNULL(sum(order_grant_price),0) as 'awardPrice', | |||||
| IFNULL(sum(order_mall_share_price),0) as 'mallPrice', | |||||
| IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice' | |||||
| FROM wx_vtwo_activity_grant_settlement | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="activityAwardStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoActivityGrantSettlement" | |||||
| resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | |||||
| count(DISTINCT grant_id) as 'grantCount', | |||||
| IFNULL(sum(order_grant_price),0) as 'awardPrice', | |||||
| IFNULL(sum(order_mall_share_price),0) as 'mallPrice', | |||||
| IFNULL(sum(order_merchant_share_price),0) as 'merchantPrice' | |||||
| FROM wx_vtwo_activity_grant_settlement | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by xTime | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -65,6 +65,18 @@ | |||||
| and `order_id` = #{orderId} | and `order_id` = #{orderId} | ||||
| </if> | </if> | ||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != status "> | |||||
| and `status` = #{status} | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -107,4 +119,13 @@ | |||||
| #{item.taxAmount,jdbcType=DECIMAL},#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) | #{item.taxAmount,jdbcType=DECIMAL},#{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}) | ||||
| </foreach> | </foreach> | ||||
| </insert> | </insert> | ||||
| <select id="awardItemStatistics" parameterType="com.iformall.domain.po.WxVtwoCashBackGrantAward" resultType="com.iformall.domain.vo.WxVtwoAwardGrantStatistics"> | |||||
| SELECT award_id as 'awardId', | |||||
| IFNULL(sum(cash_back),0) as 'awardPrice', | |||||
| FROM wx_vtwo_cash_back_grant_award | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by award_id | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -9,6 +9,7 @@ | |||||
| <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | <result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/> | ||||
| <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | <result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/> | ||||
| <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | <result property="activityId" column="activity_id" jdbcType="BIGINT"/> | ||||
| <result property="activityType" column="activity_type" jdbcType="SMALLINT"/> | |||||
| <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | <result property="activityName" column="activity_name" jdbcType="VARCHAR"/> | ||||
| <result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/> | <result property="orderMoneySum" column="order_money_sum" jdbcType="DECIMAL"/> | ||||
| <result property="orderCount" column="order_count" jdbcType="INTEGER"/> | <result property="orderCount" column="order_count" jdbcType="INTEGER"/> | ||||
| @@ -33,7 +34,7 @@ | |||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| id,tenant_id,parent_tenant_id, | id,tenant_id,parent_tenant_id, | ||||
| activity_id,activity_name,order_money_sum, | |||||
| activity_id,activity_type,activity_name,order_money_sum, | |||||
| order_count,cus_name,cus_phone, | order_count,cus_name,cus_phone, | ||||
| lottery_num,lottery_count,anniversary_lottery_num, | lottery_num,lottery_count,anniversary_lottery_num, | ||||
| real_name,real_card,cash_back_limit, | real_name,real_card,cash_back_limit, | ||||
| @@ -57,6 +58,17 @@ | |||||
| <if test=" null != activityId "> | <if test=" null != activityId "> | ||||
| and `activity_id` = #{activityId} | and `activity_id` = #{activityId} | ||||
| </if> | </if> | ||||
| <if test=" null != activityType "> | |||||
| and `activity_type` = #{activityType} | |||||
| </if> | |||||
| <if test=" null != createDateBegin"> | |||||
| and `create_date` >= #{createDateBegin} | |||||
| </if> | |||||
| <if test=" null != createDateEnd"> | |||||
| and `create_date` <= #{createDateEnd} | |||||
| </if> | |||||
| <if test=" null != status "> | <if test=" null != status "> | ||||
| and `status` = #{status} | and `status` = #{status} | ||||
| @@ -80,4 +92,22 @@ | |||||
| select <include refid="allColumns" /> from wx_vtwo_cash_back_grant | select <include refid="allColumns" /> from wx_vtwo_cash_back_grant | ||||
| where id = #{id} and tenant_id=#{tenantId} | where id = #{id} and tenant_id=#{tenantId} | ||||
| </select> | </select> | ||||
| <select id="activityAwardStatistics" parameterType="com.iformall.domain.po.WxVtwoCashBackGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT count(1) as 'grantCount', | |||||
| IFNULL(sum(order_count),0) as 'orderCount', | |||||
| IFNULL(sum(order_money_sum),0) as 'orderMoney' | |||||
| FROM wx_vtwo_cash_back_grant | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="activityAwardStatisticsChart" parameterType="com.iformall.domain.po.WxVtwoCashBackGrant" resultType="com.iformall.domain.vo.WxVtwoAwardStatistics"> | |||||
| SELECT DATE_FORMAT(create_date,'%Y-%m-%d') as xTime, | |||||
| count(1) as 'grantCount', | |||||
| IFNULL(sum(order_count),0) as 'orderCount', | |||||
| IFNULL(sum(order_money_sum),0) as 'orderMoney' | |||||
| FROM wx_vtwo_cash_back_grant | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| group by xTime | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||