From 02a367cbf1d6eafbb14408fefa16934af593d3a5 Mon Sep 17 00:00:00 2001 From: xiaohu <1901900812@qq.com> Date: Fri, 8 Nov 2024 11:19:29 +0800 Subject: [PATCH] //offlineActivity --- ...WxOfflineActivitySettlementController.java | 3 + .../po/WxOfflineActivityGrantAward.java | 6 + .../po/WxOfflineActivityGrantCashBack.java | 119 +++++++++++++ .../domain/po/WxOfflineActivityGrantItem.java | 6 + .../po/WxOfflineActivityGrantSettlement.java | 6 + .../domain/po/WxOfflineActivityItem.java | 6 + .../domain/vo/OfflineActivitySettlement.java | 2 + .../WxOfflineActivityGrantAwardMapper.java | 4 + .../WxOfflineActivityGrantCashBackMapper.java | 24 +++ .../WxOfflineActivityGrantItemMapper.java | 3 + ...xOfflineActivityGrantSettlementMapper.java | 3 + ...xOfflineActivityGrantAwardServiceImpl.java | 165 +++++++++++++----- ...WxOfflineActivityGrantItemServiceImpl.java | 43 +++-- ...ineActivityGrantSettlementServiceImpl.java | 6 +- .../WxOfflineActivityRecordServiceImpl.java | 1 + .../impl/WxOfflineActivityServiceImpl.java | 1 + .../WxOfflineActivityGrantAwardMapper.xml | 21 +++ .../WxOfflineActivityGrantCashBackMapper.xml | 95 ++++++++++ .../WxOfflineActivityGrantItemMapper.xml | 16 ++ ...WxOfflineActivityGrantSettlementMapper.xml | 18 ++ 20 files changed, 493 insertions(+), 55 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantCashBack.java create mode 100644 mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantCashBackMapper.java create mode 100644 mallinkService/src/main/resources/mapper/WxOfflineActivityGrantCashBackMapper.xml diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java index e299767f3..717f92204 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java @@ -8,6 +8,7 @@ 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.OfflineActivitySettlement; +import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.service.WxOfflineActivityGrantAwardService; import com.iformall.service.WxOfflineActivityGrantSettlementService; @@ -131,6 +132,7 @@ public class WxOfflineActivitySettlementController extends BaseController { TenantEntity tenantInfo = getTenantInfo(); grantSettlement.updateTenantInfo(tenantInfo); + grantSettlement.setStatus(EnumYesOrNo.YES.getCode()); List recordList = wxOfflineActivityGrantSettlementService.findList(grantSettlement); return new ResultData(recordList); @@ -147,6 +149,7 @@ public class WxOfflineActivitySettlementController extends BaseController { } TenantEntity tenantInfo = getTenantInfo(); grantSettlement.updateTenantInfo(tenantInfo); + grantSettlement.setStatus(EnumYesOrNo.YES.getCode()); wxOfflineActivityGrantSettlementService.exportData(request,response,grantSettlement); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java index ef02730a5..82b7f5362 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java @@ -161,4 +161,10 @@ public class WxOfflineActivityGrantAward extends TenantEntity{ @TableField(exist = false) private List activityItemList; + + /** + * 是否有效 + */ + @TableField(value = "status") + private Integer status; } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantCashBack.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantCashBack.java new file mode 100644 index 000000000..22ae0a1ae --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantCashBack.java @@ -0,0 +1,119 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 线下活动发放奖励 + * @TableName wx_offline_activity_grant_cash_back + */ +@TableName(value ="wx_offline_activity_grant_cash_back") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxOfflineActivityGrantCashBack extends TenantEntity { + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 发放id + */ + @TableField(value = "grant_id") + private Long grantId; + + /** + * 活动id + */ + @TableField(value = "activity_id") + private Long activityId; + + /** + * 活动名称 + */ + @TableField(value = "activity_name") + private String activityName; + + /** + * 活动项id + */ + @TableField(value = "activity_item_id") + private Long activityItemId; + + /** + * 活动项名称 + */ + @TableField(value = "activity_item_name") + private String activityItemName; + + /** + * 活动项类型 + */ + @TableField(value = "activity_item_type") + private Integer activityItemType; + + /** + * 返现奖项计算规则(0代表无规则) + */ + @TableField(value = "awards_item_rule") + private Integer awardsItemRule; + + /** + * 返现计算模式 + */ + @TableField(value = "calculation_mode") + private Integer calculationMode; + + /** + * 返现封顶金额 + */ + @TableField(value = "max_amount") + private BigDecimal maxAmount; + + /** + * 返现起征税点金额 + */ + @TableField(value = "starting_tax_point") + private BigDecimal startingTaxPoint; + + /** + * 返现税点比例 + */ + @TableField(value = "tax_points") + private BigDecimal taxPoints; + + /** + * 返现金额 + */ + @TableField(value = "cash_back_price") + private BigDecimal cashBackPrice; + + /** + * 税收 + */ + @TableField(value = "tax_points_amount") + private BigDecimal taxPointsAmount; + + /** + * 创建时间 + */ + @TableField(value = "create_date") + private Date createDate; + + /** + * 更新时间 + */ + @TableField(value = "update_date") + private Date updateDate; + +} \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java index af59c7f25..2aacca789 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java @@ -155,4 +155,10 @@ public class WxOfflineActivityGrantItem extends TenantEntity { @TableField(value = "record_id") private Long recordId; + /** + * 是否有效 + */ + @TableField(value = "status") + private Integer status; + } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java index 71430bf2a..0cd97296f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java @@ -148,4 +148,10 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity { @TableField(value = "update_date") private Date updateDate; + /** + * 是否有效 + */ + @TableField(value = "status") + private Integer status; + } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java index 0e6b3506a..4781a9440 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java @@ -136,6 +136,12 @@ public class WxOfflineActivityItem extends TenantEntity { @TableField(exist = false) private List activityGrantItemList; + /** + * 返现汇总 + */ + @TableField(exist = false) + private WxOfflineActivityGrantCashBack activityGrantCashBack; + /** * 返现金额 */ diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java index c1cd8cd96..3842ee2c0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java @@ -28,4 +28,6 @@ public class OfflineActivitySettlement extends TenantEntity { private BigDecimal sumMallPrice; @SortColumn(column = "sumMerchantPrice") private BigDecimal sumMerchantPrice; + + private Integer status; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java index 1699085fa..ebcf544d0 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java @@ -21,6 +21,10 @@ public interface WxOfflineActivityGrantAwardMapper extends CommonMapper findList(WxOfflineActivityGrantAward grantAwardQ); + + void updateStatusNo(WxOfflineActivityGrantAward grantAwardUpd); + + Long getLastId(WxOfflineActivityGrantAward wxOfflineActivityGrantAward); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantCashBackMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantCashBackMapper.java new file mode 100644 index 000000000..5e71f76b2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantCashBackMapper.java @@ -0,0 +1,24 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityGrantAward; +import com.iformall.domain.po.WxOfflineActivityGrantCashBack; +import com.iformall.domain.po.WxOfflineActivityGrantItem; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** +* @author xiaohu +* @description 针对表【wx_offline_activity_grant_item(线下活动发放奖励)】的数据库操作Mapper +* @createDate 2024-08-09 00:13:44 +* @Entity com.iformall.domain.po.WxOfflineActivityGrantItem +*/ +public interface WxOfflineActivityGrantCashBackMapper extends CommonMapper { + + List findList(WxOfflineActivityGrantCashBack offlineActivityGrantCashBack); + + void insertList(List cashBackList); +} + + diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java index 991ed2d0e..54234f022 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java @@ -1,6 +1,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityGrantAward; import com.iformall.domain.po.WxOfflineActivityGrantItem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; @@ -20,6 +21,8 @@ public interface WxOfflineActivityGrantItemMapper extends CommonMapper findList(WxOfflineActivityGrantItem grantItemQ); + + void updateStatusNo(WxOfflineActivityGrantAward wxOfflineActivityGrantAward); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java index 659345249..be33e673f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java @@ -1,6 +1,7 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxOfflineActivityGrantAward; import com.iformall.domain.po.WxOfflineActivityGrantSettlement; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.iformall.domain.vo.OfflineActivitySettlement; @@ -24,6 +25,8 @@ public interface WxOfflineActivityGrantSettlementMapper extends CommonMapper getActivitySettlement(OfflineActivitySettlement settlement); List findList(WxOfflineActivityGrantSettlement settlement); + + void updateStatusNo(WxOfflineActivityGrantAward wxOfflineActivityGrantAward); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java index fdd3103e4..24a0636fb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.excel.entity.vo.BaseEntityTypeConstants; import com.alibaba.fastjson.JSON; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; +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; @@ -52,6 +53,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity @Autowired private WxOfflineActivityGrantItemMapper wxOfflineActivityGrantItemMapper; + @Autowired + private WxOfflineActivityGrantCashBackMapper wxOfflineActivityGrantCashBackMapper; + @Autowired WxOfflineActivityMapper wxOfflineActivityMapper; @@ -286,14 +290,6 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity //计算返现金额 BigDecimal cashBackPrice = record.getOrderMoney() .multiply(grantAwardsItem.getCashBackRatio().divide(new BigDecimal(100))); - if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ - cashBackPrice = cashBackPrice.setScale(2, RoundingMode.HALF_UP); - } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { - cashBackPrice = cashBackPrice.setScale(0, RoundingMode.HALF_UP); - }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ - cashBackPrice = cashBackPrice.divide(new BigDecimal(10)) - .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)); - } cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice); } }else{ @@ -311,14 +307,6 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity //计算返现金额 BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum() .multiply(grantAwardsItem.getCashBackRatio().divide(new BigDecimal(100))); - if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ - cashBackPrice = cashBackPrice.setScale(2, RoundingMode.HALF_UP); - } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { - cashBackPrice = cashBackPrice.setScale(0, RoundingMode.HALF_UP); - }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ - cashBackPrice = cashBackPrice.divide(new BigDecimal(10)) - .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)); - } cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice); } @@ -332,27 +320,77 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity //计算返现金额 BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum() .multiply(grantAwardsSecondItem.getCashBackRatio().divide(new BigDecimal(100))); - if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ - cashBackPrice = cashBackPrice.setScale(2, RoundingMode.HALF_UP); - } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { - cashBackPrice = cashBackPrice.setScale(0, RoundingMode.HALF_UP); - }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ - cashBackPrice = cashBackPrice.divide(new BigDecimal(10)) - .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)); - } cashBackPriceTotal = cashBackPriceTotal.add(cashBackPrice); } - if(activityItem.getMaxAmount().compareTo(cashBackPriceTotal) >= 0){ - activityItem.setCashBackPrice(cashBackPriceTotal); - }else{ - activityItem.setCashBackPrice(activityItem.getMaxAmount()); + if(cashBackPriceTotal.compareTo(activityItem.getMaxAmount()) >= 0){ + cashBackPriceTotal = activityItem.getMaxAmount(); + } + if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ + cashBackPriceTotal = cashBackPriceTotal.setScale(2, RoundingMode.HALF_UP); + } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { + cashBackPriceTotal = cashBackPriceTotal.setScale(0, RoundingMode.HALF_UP); + }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ + cashBackPriceTotal = cashBackPriceTotal.divide(new BigDecimal(10)) + .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)); } + WxOfflineActivityGrantCashBack activityGrantCashBack = new WxOfflineActivityGrantCashBack(); + activityGrantCashBack.setActivityId(activity.getId()); + activityGrantCashBack.setActivityName(activity.getName()); + activityGrantCashBack.setActivityItemId(activityItem.getId()); + activityGrantCashBack.setActivityItemName(activityItem.getName()); + activityGrantCashBack.setActivityItemType(activityItem.getType()); + activityGrantCashBack.setAwardsItemRule(activityItem.getAwardsItemRule()); + activityGrantCashBack.setCalculationMode(activityItem.getCalculationMode()); + activityGrantCashBack.setMaxAmount(activityItem.getMaxAmount()); + activityGrantCashBack.setStartingTaxPoint(activityItem.getStartingTaxPoint()); + activityGrantCashBack.setTaxPoints(activityItem.getTaxPoints()); + activityGrantCashBack.setCashBackPrice(cashBackPriceTotal); + activityGrantCashBack.setTaxPointsAmount(BigDecimal.ZERO); + if(activityGrantCashBack.getCashBackPrice().compareTo(activityGrantCashBack.getStartingTaxPoint()) > 0){ + activityGrantCashBack.setTaxPointsAmount(activityGrantCashBack.getCashBackPrice().subtract(activityGrantCashBack.getTaxPoints()) + .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + } + activityItem.setActivityGrantCashBack(activityGrantCashBack); + activityItem.setCashBackPrice(activityGrantCashBack.getCashBackPrice().subtract(activityGrantCashBack.getTaxPointsAmount())); + + WxOfflineActivityGrantCashBack lastActivityGrantCashBack = getLastActivityGrantCashBack(wxOfflineActivityGrantAward, activity.getId(), activityItem.getId()); + if(lastActivityGrantCashBack != null){ + BigDecimal subtracted = lastActivityGrantCashBack.getCashBackPrice().subtract(lastActivityGrantCashBack.getTaxPointsAmount()); + String msg = "已返现:"+subtracted+"元 "; + if(subtracted.compareTo(activityItem.getCashBackPrice()) > 0){ + msg += "顾客应退:"+subtracted.subtract(activityItem.getCashBackPrice())+"元 "; + }else{ + msg += "应补顾客:"+activityItem.getCashBackPrice().subtract(subtracted)+"元 "; + } + if(lastActivityGrantCashBack.getTaxPointsAmount().compareTo(activityGrantCashBack.getTaxPointsAmount()) > 0){ + msg += "税款退还:"+lastActivityGrantCashBack.getTaxPointsAmount().subtract(activityGrantCashBack.getTaxPointsAmount())+"元 "; + }else{ + msg += "顾客补税:"+activityGrantCashBack.getTaxPointsAmount().subtract(lastActivityGrantCashBack.getTaxPointsAmount())+"元 "; + } + activityItem.setCashBackMsg(msg); + } + + } } } + private WxOfflineActivityGrantCashBack getLastActivityGrantCashBack(WxOfflineActivityGrantAward wxOfflineActivityGrantAward,Long activityId,Long activityItemId){ + Long grantId = wxOfflineActivityGrantAwardMapper.getLastId(wxOfflineActivityGrantAward); + if(grantId == null){ + return null; + } + + WxOfflineActivityGrantCashBack cashBackQ = new WxOfflineActivityGrantCashBack(); + cashBackQ.updateTenantInfo(wxOfflineActivityGrantAward); + cashBackQ.setGrantId(grantId); + cashBackQ.setActivityId(activityId); + cashBackQ.setActivityItemId(activityItemId); + return wxOfflineActivityGrantCashBackMapper.selectOne(new QueryWrapper<>(cashBackQ)); + } + private void handlerAwardsSharePrice(List awardsItemList){ if(awardsItemList == null || awardsItemList.isEmpty()){ return; @@ -385,6 +423,16 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity wxOfflineActivityGrantAward.setUpdateDate(now); wxOfflineActivityGrantAwardMapper.insert(wxOfflineActivityGrantAward); + //失效 + WxOfflineActivityGrantAward upd = new WxOfflineActivityGrantAward(); + upd.setId(wxOfflineActivityGrantAward.getId()); + upd.updateTenantInfo(wxOfflineActivityGrantAward); + upd.setStatus(EnumYesOrNo.NO.getCode()); + upd.setActivityId(activity.getId()); + upd.setCusPhone(wxOfflineActivityGrantAward.getCusPhone()); + upd.setUpdateDate(now); + wxOfflineActivityGrantAwardMapper.updateStatusNo(upd); + wxOfflineActivityRecordGrantService.insertFromGrantAward(wxOfflineActivityGrantAward); //处理奖项 @@ -401,6 +449,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity // List wxOfflineActivityRecords = wxOfflineActivityRecordMapper.selectBatchIds(wxOfflineActivityGrantAward.getRecordIds()); WxOfflineActivityRecord recordQ = new WxOfflineActivityRecord(); recordQ.updateTenantInfo(wxOfflineActivityGrantAward); + recordQ.setActivityId(activity.getId()); recordQ.setCusPhone(wxOfflineActivityGrantAward.getCusPhone()); List wxOfflineActivityRecords = wxOfflineActivityRecordMapper.findList(recordQ); if (wxOfflineActivityRecords == null || wxOfflineActivityRecords.isEmpty()) { @@ -613,28 +662,48 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity } BigDecimal prop = BigDecimal.ONE; - if(activityItem.getMaxAmount().compareTo(cashBackPriceTotal) >= 0){ - activityItem.setCashBackPrice(cashBackPriceTotal); - }else{ + if(cashBackPriceTotal.compareTo(activityItem.getMaxAmount()) >= 0){ prop = activityItem.getMaxAmount().divide(cashBackPriceTotal).setScale(4, RoundingMode.HALF_UP);; - activityItem.setCashBackPrice(activityItem.getMaxAmount()); + cashBackPriceTotal = activityItem.getMaxAmount(); + } + if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ + cashBackPriceTotal = cashBackPriceTotal.setScale(2, RoundingMode.HALF_UP); + } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { + cashBackPriceTotal = cashBackPriceTotal.setScale(0, RoundingMode.HALF_UP); + }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ + cashBackPriceTotal = cashBackPriceTotal.divide(new BigDecimal(10)) + .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10)); } for (WxOfflineActivityGrantItem grantItem:grantItemList){ if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ - grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).multiply(prop).setScale(2, RoundingMode.HALF_UP)); - activityItem.setCashBackPrice(activityItem.getCashBackPrice().setScale(2, RoundingMode.HALF_UP)); + grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).setScale(2, RoundingMode.HALF_UP)); } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).multiply(prop).setScale(0, RoundingMode.HALF_UP)); - activityItem.setCashBackPrice(activityItem.getCashBackPrice().setScale(0, RoundingMode.HALF_UP)); }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ grantItem.setAwardPrice(grantItem.getAwardPrice().multiply(prop).multiply(prop).divide(new BigDecimal(10)) .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10))); - activityItem.setCashBackPrice(activityItem.getCashBackPrice().divide(new BigDecimal(10)) - .setScale(0, RoundingMode.HALF_UP).multiply(new BigDecimal(10))); } } grantActivityItem.setActivityGrantItemList(grantItemList); + WxOfflineActivityGrantCashBack activityGrantCashBack = new WxOfflineActivityGrantCashBack(); + activityGrantCashBack.setActivityId(activity.getId()); + activityGrantCashBack.setActivityName(activity.getName()); + activityGrantCashBack.setActivityItemId(activityItem.getId()); + activityGrantCashBack.setActivityItemName(activityItem.getName()); + activityGrantCashBack.setActivityItemType(activityItem.getType()); + activityGrantCashBack.setAwardsItemRule(activityItem.getAwardsItemRule()); + activityGrantCashBack.setCalculationMode(activityItem.getCalculationMode()); + activityGrantCashBack.setMaxAmount(activityItem.getMaxAmount()); + activityGrantCashBack.setStartingTaxPoint(activityItem.getStartingTaxPoint()); + activityGrantCashBack.setTaxPoints(activityItem.getTaxPoints()); + activityGrantCashBack.setCashBackPrice(cashBackPriceTotal); + activityGrantCashBack.setTaxPointsAmount(BigDecimal.ZERO); + if(activityGrantCashBack.getCashBackPrice().compareTo(activityGrantCashBack.getStartingTaxPoint()) > 0){ + activityGrantCashBack.setTaxPointsAmount(activityGrantCashBack.getCashBackPrice().subtract(activityGrantCashBack.getTaxPoints()) + .divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP)); + } + grantActivityItem.setActivityGrantCashBack(activityGrantCashBack); } @@ -687,6 +756,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity //最近30天数据 WxOfflineActivityGrantAward grantAwardQ = new WxOfflineActivityGrantAward(); grantAwardQ.updateTenantInfo(tenantInfo); + grantAwardQ.setStatus(EnumYesOrNo.YES.getCode()); grantAwardQ.setCreateDateBegin(DateUtils.stringToDate(monthStartdate)); Integer monthCount = wxOfflineActivityGrantAwardMapper.getCusCount(grantAwardQ); //一周前的昨天 @@ -732,18 +802,26 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity @Override public List grantAwardDetail(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { - List grantIds = wxOfflineActivityRecordGrantMapper.selectGrantId(wxOfflineActivityGrantAward.getTenantId(),wxOfflineActivityGrantAward.getActivityId(),wxOfflineActivityGrantAward.getRecordId()); - if(grantIds == null || grantIds.isEmpty()){ - return null; - } +// List grantIds = wxOfflineActivityRecordGrantMapper.selectGrantId(wxOfflineActivityGrantAward.getTenantId(),wxOfflineActivityGrantAward.getActivityId(),wxOfflineActivityGrantAward.getRecordId()); +// if(grantIds == null || grantIds.isEmpty()){ +// return null; +// } WxOfflineActivityGrantAward grantAwardQ = new WxOfflineActivityGrantAward(); grantAwardQ.updateTenantInfo(wxOfflineActivityGrantAward); - grantAwardQ.setIds(grantIds); +// grantAwardQ.setIds(grantIds); + grantAwardQ.setActivityId(wxOfflineActivityGrantAward.getActivityId()); + grantAwardQ.setCusPhone(wxOfflineActivityGrantAward.getCusPhone()); List grantAwardList = wxOfflineActivityGrantAwardMapper.findList(grantAwardQ); for (WxOfflineActivityGrantAward grantAward : grantAwardList) { //获取奖项 List activityItemList = wxOfflineActivityItemService.getActivityItemList(grantAward.getActivityId(), grantAward.getTenantId()); grantAward.setActivityItemList(activityItemList); + //获取返现汇总 + WxOfflineActivityGrantCashBack cashBackQ = new WxOfflineActivityGrantCashBack(); + cashBackQ.updateTenantInfo(grantAward); + cashBackQ.setGrantId(grantAward.getId()); + List cashBackList = wxOfflineActivityGrantCashBackMapper.findList(cashBackQ); + Map cashBackMap = cashBackList.stream().collect(Collectors.toMap(WxOfflineActivityGrantCashBack::getActivityItemId, Function.identity())); //获取实际获得奖项 WxOfflineActivityGrantItem grantItemQ = new WxOfflineActivityGrantItem(); grantItemQ.updateTenantInfo(grantAward); @@ -751,6 +829,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity List grantItemList = wxOfflineActivityGrantItemMapper.findList(grantItemQ); Map> activityItemGrantMap = grantItemList.stream().collect(groupingBy(WxOfflineActivityGrantItem::getActivityItemId)); for (WxOfflineActivityItem activityItem : grantAward.getActivityItemList()) { + activityItem.setActivityGrantCashBack(cashBackMap.get(activityItem.getId())); List grantActivityItemList = activityItemGrantMap.get(activityItem.getId()); if (grantActivityItemList == null || grantActivityItemList.isEmpty()) { activityItem.setIsMeet(false); @@ -783,6 +862,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity WxOfflineActivityGrantAward grantAwardQ = new WxOfflineActivityGrantAward(); grantAwardQ.updateTenantInfo(wxOfflineActivity); grantAwardQ.setActivityId(wxOfflineActivity.getId()); + grantAwardQ.setStatus(EnumYesOrNo.YES.getCode()); List grantAwardList = wxOfflineActivityGrantAwardMapper.findList(grantAwardQ); if(grantAwardList != null){ WxMerchant merchantQ = new WxMerchant(); @@ -796,6 +876,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity WxOfflineActivityGrantItem grantItemQ = new WxOfflineActivityGrantItem(); grantItemQ.updateTenantInfo(wxOfflineActivity); grantItemQ.setActivityId(wxOfflineActivity.getId()); + grantItemQ.setStatus(EnumYesOrNo.YES.getCode()); List grantItem = wxOfflineActivityGrantItemMapper.findList(grantItemQ); Map> grantItemMap = grantItem.stream().collect(groupingBy(WxOfflineActivityGrantItem::getGrantId)); List grantRecordList = wxOfflineActivityRecordGrantMapper.findGrantRecordList(wxOfflineActivity.getId(),wxOfflineActivity.getTenantId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java index 954d76923..698fdc573 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java @@ -3,11 +3,13 @@ package com.iformall.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.iformall.common.IdWorker; import com.iformall.domain.po.WxOfflineActivityGrantAward; +import com.iformall.domain.po.WxOfflineActivityGrantCashBack; import com.iformall.domain.po.WxOfflineActivityGrantItem; import com.iformall.domain.po.WxOfflineActivityItem; import com.iformall.enums.EnumOfflineActivityAwardsMoneyRule; import com.iformall.enums.EnumOfflineActivityAwardsRule; import com.iformall.enums.EnumOfflineActivityType; +import com.iformall.mapper.WxOfflineActivityGrantCashBackMapper; import com.iformall.service.WxOfflineActivityGrantItemService; import com.iformall.mapper.WxOfflineActivityGrantItemMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -29,21 +31,23 @@ public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityG @Autowired private WxOfflineActivityGrantItemMapper wxOfflineActivityGrantItemMapper; + @Autowired + private WxOfflineActivityGrantCashBackMapper wxOfflineActivityGrantCashBackMapper; + @Override public void insertFromGrantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) { - List rantItemList = new ArrayList<>(); + List grantItemList = new ArrayList<>(); + List cashBackList = new ArrayList<>(); final IdWorker idWorker = IdWorker.get(); Date now = new Date(); for (WxOfflineActivityItem activityItem : wxOfflineActivityGrantAward.getActivityItemList()) { - if(activityItem.getActivityGrantItemList() == null){ - continue; - } - for (WxOfflineActivityGrantItem grantGrantItem : activityItem.getActivityGrantItemList()) { - grantGrantItem.setGrantId(wxOfflineActivityGrantAward.getId()); - grantGrantItem.setId(idWorker.nextId()); - grantGrantItem.updateTenantInfo(wxOfflineActivityGrantAward); - grantGrantItem.setCreateDate(now); - grantGrantItem.setUpdateDate(now); + if(activityItem.getActivityGrantItemList() != null){ + for (WxOfflineActivityGrantItem grantGrantItem : activityItem.getActivityGrantItemList()) { + grantGrantItem.setGrantId(wxOfflineActivityGrantAward.getId()); + grantGrantItem.setId(idWorker.nextId()); + grantGrantItem.updateTenantInfo(wxOfflineActivityGrantAward); + grantGrantItem.setCreateDate(now); + grantGrantItem.setUpdateDate(now); // if(EnumOfflineActivityType.CASHBACK.getCode().equals(grantGrantItem.getActivityItemType())){ // BigDecimal awardPrice = wxOfflineActivityGrantAward.getOrderMoneySum() // .multiply(grantGrantItem.getCashBackRatio().divide(new BigDecimal(100))); @@ -56,10 +60,25 @@ public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityG // grantGrantItem.setAwardPrice(awardPriceTen.multiply(new BigDecimal(10))); // } // } - rantItemList.add(grantGrantItem); + grantItemList.add(grantGrantItem); + } + } + + if(activityItem.getActivityGrantCashBack() != null){ + WxOfflineActivityGrantCashBack activityGrantCashBack = activityItem.getActivityGrantCashBack(); + activityGrantCashBack.setGrantId(wxOfflineActivityGrantAward.getId()); + activityGrantCashBack.setId(idWorker.nextId()); + activityGrantCashBack.updateTenantInfo(wxOfflineActivityGrantAward); + activityGrantCashBack.setCreateDate(now); + activityGrantCashBack.setUpdateDate(now); + cashBackList.add(activityGrantCashBack); } } - wxOfflineActivityGrantItemMapper.insertList(rantItemList); + wxOfflineActivityGrantItemMapper.insertList(grantItemList); + + wxOfflineActivityGrantItemMapper.updateStatusNo(wxOfflineActivityGrantAward); + + if(!cashBackList.isEmpty()) wxOfflineActivityGrantCashBackMapper.insertList(cashBackList); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java index eae46410a..f68a16dca 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java @@ -161,6 +161,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct } wxOfflineActivityGrantSettlementMapper.insertList(settlementList); + wxOfflineActivityGrantSettlementMapper.updateStatusNo(wxOfflineActivityGrantAward); } @Override @@ -177,6 +178,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct //最近30天 WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement(); settlement.updateTenantInfo(tenantInfo); + settlement.setStatus(EnumYesOrNo.YES.getCode()); settlement.setCreateDateBegin(DateUtils.stringToDate(monthStartdate)); OfflineActivitySettlementStatistics monthStatistics = wxOfflineActivityGrantSettlementMapper.settlementStatistics(settlement); //一周前的昨天 @@ -270,6 +272,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct //获取结算相关 WxOfflineActivityGrantSettlement settlement = new WxOfflineActivityGrantSettlement(); settlement.updateTenantInfo(activity); + settlement.setStatus(EnumYesOrNo.YES.getCode()); settlement.setActivityId(activity.getId()); OfflineActivitySettlementStatistics settlementStatistics = wxOfflineActivityGrantSettlementMapper.settlementStatistics(settlement); activity.setGrantMershantCount(settlementStatistics.getMerchantCount()); @@ -294,7 +297,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct record.setMerchantIdList(mids); } } - + record.setStatus(EnumYesOrNo.YES.getCode()); List activitySettlementList = wxOfflineActivityGrantSettlementMapper.getActivitySettlement(record); if (activitySettlementList != null && !activitySettlementList.isEmpty()) { @@ -325,6 +328,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct }else{ result.put("merchantName",merchant.getName()); } + grantSettlement.setStatus(EnumYesOrNo.YES.getCode()); List activitySettlementList = wxOfflineActivityGrantSettlementMapper.getActivitySettlement(grantSettlement); if (activitySettlementList == null || activitySettlementList.isEmpty()) { result.put("recordCount",0); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java index 478b3e730..4dcc079d6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java @@ -100,6 +100,7 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco } } if(awardQ != null){ + awardQ.setStatus(EnumYesOrNo.YES.getCode()); List rids = wxOfflineActivityGrantAwardMapper.getRecordIdList(awardQ); if (null == rids || rids.size() <= 0 ) { record.setId(-1L); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java index 29a9790fe..82c211c90 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java @@ -112,6 +112,7 @@ public class WxOfflineActivityServiceImpl implements WxOfflineActivityService{ WxOfflineActivityGrantItem grantItemQ = new WxOfflineActivityGrantItem(); grantItemQ.updateTenantInfo(activity); grantItemQ.setActivityId(activity.getId()); + grantItemQ.setStatus(EnumYesOrNo.YES.getCode()); activity.setGrantItemCount(wxOfflineActivityGrantItemMapper.getSumAwardCount(grantItemQ)); } diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml index 406bc5e57..88a638355 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml @@ -22,6 +22,7 @@ + @@ -58,6 +59,9 @@ and `cus_phone` = #{cusPhone} + + and `status` = #{status} + and id in @@ -91,6 +95,9 @@ and `create_date` <= #{createDateEnd} + + and `status` = #{status} + @@ -113,6 +120,9 @@ and ga.`create_date` <= #{createDateEnd} + + and `status` = #{status} + and ga.create_by in @@ -124,4 +134,15 @@ + + + + + update wx_offline_activity_grant_award set status = #{status},update_date = #{updateDate} + where `activity_id` = #{activityId} and `cus_phone` = #{cusPhone} and `id` != #{id} + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantCashBackMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantCashBackMapper.xml new file mode 100644 index 000000000..dd4820cd0 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantCashBackMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id,tenant_id,parent_tenant_id, + grant_id,activity_id,activity_name, + activity_item_id,activity_item_name,activity_item_type,awards_item_rule,calculation_mode, + create_date,update_date,max_amount,starting_tax_point,tax_points,cash_back_price,tax_points_amount + + + + where 1 = 1 + + + and `id` = #{id} + + + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + + + and `grant_id` = #{grantId} + + + + and `activity_id` = #{activityId} + + + and `activity_item_id` = #{activityItemId} + + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + insert into wx_offline_activity_grant_item + (id, + grant_id,activity_id,activity_name, + activity_item_id,activity_item_name,activity_item_type, + awards_item_rule,calculation_mode, + create_date,update_date + ,max_amount,starting_tax_point,tax_points,cash_back_price,tax_points_amount) + values + + (#{item.id,jdbcType=BIGINT}, + #{item.grantId,jdbcType=BIGINT},#{item.activityId,jdbcType=BIGINT},#{item.activityName,jdbcType=VARCHAR}, + #{item.activityItemId,jdbcType=BIGINT},#{item.activityItemName,jdbcType=VARCHAR},#{item.activityItemType,jdbcType=INTEGER}, + #{item.awardsItemRule,jdbcType=INTEGER},#{item.calculationMode,jdbcType=INTEGER}, + #{item.createDate,jdbcType=TIMESTAMP},#{item.updateDate,jdbcType=TIMESTAMP}, + #{item.maxAmount,jdbcType=DECIMAL},#{item.startingTaxPoint,jdbcType=DECIMAL},#{item.taxPoints,jdbcType=DECIMAL},#{item.cashBackPrice,jdbcType=DECIMAL},#{item.taxPointsAmount,jdbcType=DECIMAL}) + + + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml index 9c60b0bf9..184ef2a55 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml @@ -29,6 +29,7 @@ + @@ -70,6 +71,10 @@ and `award_itam_id` = #{awardItamId} + + and `status` = #{status} + + and id in @@ -119,6 +124,17 @@ and activity_id = #{activityId} + + + and `status` = #{status} + + + update wx_offline_activity_grant_item set status = 0,update_date = now() + where grant_id in ( + select id from wx_offline_activity_grant_award + where `activity_id` = #{activityId} and `cus_phone` = #{cusPhone} and `id` != #{id}) + + diff --git a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml index dca024453..e6af0ff54 100644 --- a/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml @@ -25,6 +25,7 @@ + @@ -80,6 +81,9 @@ and `create_date` <= #{createDateEnd} + + and `status` = #{status} + and merchant_id in @@ -149,6 +153,10 @@ and `create_date` <= #{createDateEnd} + + and `status` = #{status} + + @@ -174,6 +182,9 @@ and `merchant_id` = #{merchantId} + + and `status` = #{status} + and merchant_id in @@ -185,4 +196,11 @@ + + update wx_offline_activity_grant_settlement set status = 0,update_date = now() + where grant_id in ( + select id from wx_offline_activity_grant_award + where `activity_id` = #{activityId} and `cus_phone` = #{cusPhone} and `id` != #{id}) + +