Browse Source

//offlineActivity

release_toaliyun_real
xiaohu 1 year ago
parent
commit
02a367cbf1
20 changed files with 493 additions and 55 deletions
  1. +3
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java
  2. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java
  3. +119
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantCashBack.java
  4. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java
  5. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java
  6. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java
  7. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java
  8. +4
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java
  9. +24
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantCashBackMapper.java
  10. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java
  11. +3
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java
  12. +123
    -42
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java
  13. +31
    -12
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java
  14. +5
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java
  15. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java
  16. +1
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java
  17. +21
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml
  18. +95
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantCashBackMapper.xml
  19. +16
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml
  20. +18
    -0
      mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml

+ 3
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxOfflineActivitySettlementController.java View File

@@ -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<WxOfflineActivityGrantSettlement> 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);
}



+ 6
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantAward.java View File

@@ -161,4 +161,10 @@ public class WxOfflineActivityGrantAward extends TenantEntity{

@TableField(exist = false)
private List<WxOfflineActivityItem> activityItemList;

/**
* 是否有效
*/
@TableField(value = "status")
private Integer status;
}

+ 119
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantCashBack.java View File

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

}

+ 6
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java View File

@@ -155,4 +155,10 @@ public class WxOfflineActivityGrantItem extends TenantEntity {
@TableField(value = "record_id")
private Long recordId;

/**
* 是否有效
*/
@TableField(value = "status")
private Integer status;

}

+ 6
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantSettlement.java View File

@@ -148,4 +148,10 @@ public class WxOfflineActivityGrantSettlement extends TenantEntity {
@TableField(value = "update_date")
private Date updateDate;

/**
* 是否有效
*/
@TableField(value = "status")
private Integer status;

}

+ 6
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityItem.java View File

@@ -136,6 +136,12 @@ public class WxOfflineActivityItem extends TenantEntity {
@TableField(exist = false)
private List<WxOfflineActivityGrantItem> activityGrantItemList;

/**
* 返现汇总
*/
@TableField(exist = false)
private WxOfflineActivityGrantCashBack activityGrantCashBack;

/**
* 返现金额
*/


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/vo/OfflineActivitySettlement.java View File

@@ -28,4 +28,6 @@ public class OfflineActivitySettlement extends TenantEntity {
private BigDecimal sumMallPrice;
@SortColumn(column = "sumMerchantPrice")
private BigDecimal sumMerchantPrice;

private Integer status;
}

+ 4
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantAwardMapper.java View File

@@ -21,6 +21,10 @@ public interface WxOfflineActivityGrantAwardMapper extends CommonMapper<WxOfflin
WxOfflineActivityGrantAward selectById(@Param("id")Long id, @Param("tenantId")String tenantId);

List<WxOfflineActivityGrantAward> findList(WxOfflineActivityGrantAward grantAwardQ);

void updateStatusNo(WxOfflineActivityGrantAward grantAwardUpd);

Long getLastId(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}




+ 24
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantCashBackMapper.java View File

@@ -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<WxOfflineActivityGrantCashBack, Long> {

List<WxOfflineActivityGrantCashBack> findList(WxOfflineActivityGrantCashBack offlineActivityGrantCashBack);

void insertList(List<WxOfflineActivityGrantCashBack> cashBackList);
}



+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantItemMapper.java View File

@@ -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<WxOffline
Integer getSumAwardCount(WxOfflineActivityGrantItem grantItemQ);

List<WxOfflineActivityGrantItem> findList(WxOfflineActivityGrantItem grantItemQ);

void updateStatusNo(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}




+ 3
- 0
mallinkService/src/main/java/com/iformall/mapper/WxOfflineActivityGrantSettlementMapper.java View File

@@ -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<WxO
List<OfflineActivitySettlement> getActivitySettlement(OfflineActivitySettlement settlement);

List<WxOfflineActivityGrantSettlement> findList(WxOfflineActivityGrantSettlement settlement);

void updateStatusNo(WxOfflineActivityGrantAward wxOfflineActivityGrantAward);
}




+ 123
- 42
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java View File

@@ -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<WxOfflineActivityAwardsItem> 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<WxOfflineActivityRecord> wxOfflineActivityRecords = wxOfflineActivityRecordMapper.selectBatchIds(wxOfflineActivityGrantAward.getRecordIds());
WxOfflineActivityRecord recordQ = new WxOfflineActivityRecord();
recordQ.updateTenantInfo(wxOfflineActivityGrantAward);
recordQ.setActivityId(activity.getId());
recordQ.setCusPhone(wxOfflineActivityGrantAward.getCusPhone());
List<WxOfflineActivityRecord> 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<WxOfflineActivityGrantAward> grantAwardDetail(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
List<Long> grantIds = wxOfflineActivityRecordGrantMapper.selectGrantId(wxOfflineActivityGrantAward.getTenantId(),wxOfflineActivityGrantAward.getActivityId(),wxOfflineActivityGrantAward.getRecordId());
if(grantIds == null || grantIds.isEmpty()){
return null;
}
// List<Long> 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<WxOfflineActivityGrantAward> grantAwardList = wxOfflineActivityGrantAwardMapper.findList(grantAwardQ);
for (WxOfflineActivityGrantAward grantAward : grantAwardList) {
//获取奖项
List<WxOfflineActivityItem> activityItemList = wxOfflineActivityItemService.getActivityItemList(grantAward.getActivityId(), grantAward.getTenantId());
grantAward.setActivityItemList(activityItemList);
//获取返现汇总
WxOfflineActivityGrantCashBack cashBackQ = new WxOfflineActivityGrantCashBack();
cashBackQ.updateTenantInfo(grantAward);
cashBackQ.setGrantId(grantAward.getId());
List<WxOfflineActivityGrantCashBack> cashBackList = wxOfflineActivityGrantCashBackMapper.findList(cashBackQ);
Map<Long, WxOfflineActivityGrantCashBack> 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<WxOfflineActivityGrantItem> grantItemList = wxOfflineActivityGrantItemMapper.findList(grantItemQ);
Map<Long, List<WxOfflineActivityGrantItem>> activityItemGrantMap = grantItemList.stream().collect(groupingBy(WxOfflineActivityGrantItem::getActivityItemId));
for (WxOfflineActivityItem activityItem : grantAward.getActivityItemList()) {
activityItem.setActivityGrantCashBack(cashBackMap.get(activityItem.getId()));
List<WxOfflineActivityGrantItem> 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<WxOfflineActivityGrantAward> 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<WxOfflineActivityGrantItem> grantItem = wxOfflineActivityGrantItemMapper.findList(grantItemQ);
Map<Long, List<WxOfflineActivityGrantItem>> grantItemMap = grantItem.stream().collect(groupingBy(WxOfflineActivityGrantItem::getGrantId));
List<OfflineActivityGrantRecord> grantRecordList = wxOfflineActivityRecordGrantMapper.findGrantRecordList(wxOfflineActivity.getId(),wxOfflineActivity.getTenantId());


+ 31
- 12
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java View File

@@ -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<WxOfflineActivityGrantItem> rantItemList = new ArrayList<>();
List<WxOfflineActivityGrantItem> grantItemList = new ArrayList<>();
List<WxOfflineActivityGrantCashBack> 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);

}



+ 5
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java View File

@@ -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<OfflineActivitySettlement> 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<OfflineActivitySettlement> activitySettlementList = wxOfflineActivityGrantSettlementMapper.getActivitySettlement(grantSettlement);
if (activitySettlementList == null || activitySettlementList.isEmpty()) {
result.put("recordCount",0);


+ 1
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityRecordServiceImpl.java View File

@@ -100,6 +100,7 @@ public class WxOfflineActivityRecordServiceImpl implements WxOfflineActivityReco
}
}
if(awardQ != null){
awardQ.setStatus(EnumYesOrNo.YES.getCode());
List<Long> rids = wxOfflineActivityGrantAwardMapper.getRecordIdList(awardQ);
if (null == rids || rids.size() <= 0 ) {
record.setId(-1L);


+ 1
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityServiceImpl.java View File

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

}


+ 21
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantAwardMapper.xml View File

@@ -22,6 +22,7 @@
<result property="lotteryNum" column="lottery_num" jdbcType="VARCHAR"/>
<result property="lotteryCount" column="lottery_count" jdbcType="INTEGER"/>
<result property="anniversaryLotteryNum" column="anniversary_lottery_num" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="INTEGER"/>
</resultMap>

<sql id="allColumns">
@@ -58,6 +59,9 @@
<if test=" null != cusPhone and cusPhone != '' ">
and `cus_phone` = #{cusPhone}
</if>
<if test=" null != status">
and `status` = #{status}
</if>

<if test=" null != ids ">
and id in
@@ -91,6 +95,9 @@
<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != status">
and `status` = #{status}
</if>
</select>


@@ -113,6 +120,9 @@
<if test=" null != createDateEnd">
and ga.`create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != status">
and `status` = #{status}
</if>
<if test=" null != createByIds ">
and ga.create_by in
<foreach collection="createByIds" index="index" item="sendItem" open="(" separator="," close=")">
@@ -124,4 +134,15 @@
<select id="selectById" parameterType="java.util.HashMap" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_offline_activity_grant_award where id = #{id} and tenant_id=#{tenantId}
</select>

<select id="getLastId" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" resultType="Long">
select id from wx_offline_activity_grant_award
where `activity_id` = #{activityId} and `cus_phone` = #{cusPhone}
order by create_date desc limit 1
</select>

<update id="updateStatusNo" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" >
update wx_offline_activity_grant_award set status = #{status},update_date = #{updateDate}
where `activity_id` = #{activityId} and `cus_phone` = #{cusPhone} and `id` != #{id}
</update>
</mapper>

+ 95
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantCashBackMapper.xml View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iformall.mapper.WxOfflineActivityGrantCashBackMapper">

<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxOfflineActivityGrantCashBack">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="grantId" column="grant_id" jdbcType="BIGINT"/>
<result property="activityId" column="activity_id" jdbcType="BIGINT"/>
<result property="activityName" column="activity_name" jdbcType="VARCHAR"/>
<result property="activityItemId" column="activity_item_id" jdbcType="BIGINT"/>
<result property="activityItemName" column="activity_item_name" jdbcType="INTEGER"/>
<result property="activityItemType" column="activity_item_type" jdbcType="SMALLINT"/>

<result property="awardsItemRule" column="awards_item_rule" jdbcType="SMALLINT"/>
<result property="calculationMode" column="calculation_mode" jdbcType="SMALLINT"/>

<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<result property="maxAmount" column="max_amount" jdbcType="DECIMAL"/>
<result property="startingTaxPoint" column="starting_tax_point" jdbcType="DECIMAL"/>
<result property="taxPoints" column="tax_points" jdbcType="DECIMAL"/>
<result property="cashBackPrice" column="cash_back_price" jdbcType="DECIMAL"/>
<result property="taxPointsAmount" column="tax_points_amount" jdbcType="DECIMAL"/>
</resultMap>

<sql id="allColumns">
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
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1

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

<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>

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

<if test=" null != activityId">
and `activity_id` = #{activityId}
</if>
<if test=" null != activityItemId">
and `activity_item_id` = #{activityItemId}
</if>

<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns"> order by ${sortColumns} </if>
</sql>

<select id="findList" parameterType="com.iformall.domain.po.WxOfflineActivityGrantCashBack" resultMap="BaseResultMap">
select <include refid="allColumns" /> from wx_offline_activity_grant_cash_back
<include refid="dynamicWhereConditions" />
</select>

<insert id="insertList" parameterType="java.util.List">
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
<foreach collection="grantItemList" item="item" index="index" separator=",">
(#{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})
</foreach>
</insert>

</mapper>

+ 16
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantItemMapper.xml View File

@@ -29,6 +29,7 @@
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<result property="recordId" column="record_id" jdbcType="BIGINT"/>
<result property="status" column="status" jdbcType="INTEGER"/>
</resultMap>

<sql id="allColumns">
@@ -70,6 +71,10 @@
and `award_itam_id` = #{awardItamId}
</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=")">
@@ -119,6 +124,17 @@
<if test=" null != activityId ">
and activity_id = #{activityId}
</if>

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

<update id="updateStatusNo" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" >
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})
</update>

</mapper>

+ 18
- 0
mallinkService/src/main/resources/mapper/WxOfflineActivityGrantSettlementMapper.xml View File

@@ -25,6 +25,7 @@
<result property="realMerchantSharePrice" column="real_merchant_share_price" jdbcType="DECIMAL"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
<result property="status" column="status" jdbcType="INTEGER"/>
</resultMap>

<sql id="allColumns">
@@ -80,6 +81,9 @@
<if test=" null != createDateEnd">
and `create_date` &lt;= #{createDateEnd}
</if>
<if test=" null != status">
and `status` = #{status}
</if>
<if test=" null != merchantIdList ">
and merchant_id in
<foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")">
@@ -149,6 +153,10 @@
and `create_date` &lt;= #{createDateEnd}
</if>

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

</select>


@@ -174,6 +182,9 @@
<if test=" null != merchantId ">
and `merchant_id` = #{merchantId}
</if>
<if test=" null != status">
and `status` = #{status}
</if>
<if test=" null != merchantIdList ">
and merchant_id in
<foreach collection="merchantIdList" index="index" item="midItem" open="(" separator="," close=")">
@@ -185,4 +196,11 @@
</select>


<update id="updateStatusNo" parameterType="com.iformall.domain.po.WxOfflineActivityGrantAward" >
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})
</update>

</mapper>

Loading…
Cancel
Save