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