Browse Source

//OfflineActivity

release_toaliyun_real
xiaohu 1 year ago
parent
commit
808dacb4e8
3 changed files with 37 additions and 1 deletions
  1. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java
  2. +4
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java
  3. +29
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java

+ 4
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java View File

@@ -79,12 +79,16 @@ public class WxOfflineActivityAwardsItem extends TenantEntity {
*/
@TableField(value = "mall_share_rate")
private BigDecimal mallShareRate;
@TableField(exist = false)
private BigDecimal mallSharePrice;

/**
* 商户分担比例
*/
@TableField(value = "merchant_share_rate")
private BigDecimal merchantShareRate;
@TableField(exist = false)
private BigDecimal merchantSharePrice;

/**
* 创建时间


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

@@ -129,12 +129,16 @@ public class WxOfflineActivityGrantItem extends TenantEntity {
*/
@TableField(value = "mall_share_rate")
private BigDecimal mallShareRate;
@TableField(exist = false)
private BigDecimal mallSharePrice;

/**
* 商户分担比例
*/
@TableField(value = "merchant_share_rate")
private BigDecimal merchantShareRate;
@TableField(exist = false)
private BigDecimal merchantSharePrice;

/**
* 创建时间


+ 29
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java View File

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.NumberFormat;
@@ -206,8 +207,13 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
limitCount = activityItem.getAwardsItemLimit();
}
activityItem.setRealAwardsItemLimit(limitCount);
//计算商户商管分别承担金额
handlerAwardsSharePrice(activityItem.getActivityAwardsItemList());
}
else if(EnumOfflineActivityType.GIFT.getCode().equals(activityItem.getType())){
//计算商户商管分别承担金额
handlerAwardsSharePrice(activityItem.getActivityAwardsItemList());

List<WxOfflineActivityAwardsItem> sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparing(WxOfflineActivityAwardsItem::getMinAmount)).collect(toList());
WxOfflineActivityAwardsItem grantAwardsItem = null;
for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){
@@ -237,7 +243,9 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
grantItem.setAwardPrice(grantAwardsItem.getPrice());
grantItem.setMoneyRule(grantAwardsItem.getMoneyRule());
grantItem.setMallShareRate(grantAwardsItem.getMallShareRate());
grantItem.setMallSharePrice(grantAwardsItem.getMallSharePrice());
grantItem.setMerchantShareRate(grantAwardsItem.getMerchantShareRate());
grantItem.setMerchantSharePrice(grantAwardsItem.getMerchantSharePrice());
activityItem.setActivityGrantItemList(Collections.singletonList(grantItem));
}
else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) {
@@ -260,10 +268,24 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
awardsItem.setPrice(cashBackPriceTen.multiply(new BigDecimal(10)));
}
}
//计算商户商管分别承担金额
handlerAwardsSharePrice(activityItem.getActivityAwardsItemList());
}
}
}

private void handlerAwardsSharePrice(List<WxOfflineActivityAwardsItem> awardsItemList){
if(awardsItemList == null || awardsItemList.isEmpty()){
return;
}
for(WxOfflineActivityAwardsItem awardsItem : awardsItemList){
awardsItem.setMallSharePrice(awardsItem.getPrice()
.multiply(awardsItem.getMallShareRate().divide(new BigDecimal(100)))
.setScale(0, RoundingMode.HALF_UP));
awardsItem.setMerchantSharePrice(awardsItem.getPrice().subtract(awardsItem.getMallSharePrice()));
}
}

@Override
@Transactional(rollbackFor = Exception.class)
public void grantAward(WxOfflineActivityGrantAward wxOfflineActivityGrantAward) {
@@ -470,7 +492,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
grantGrantItem.setAwardMaxAmount(awardsItem.getMaxAmount());
grantGrantItem.setAwardsItemRule(activityItem.getAwardsItemRule());
grantGrantItem.setCashBackRatio(awardsItem.getCashBackRatio());
grantGrantItem.setAwardPrice(awardsItem.getPrice().multiply(new BigDecimal(grantGrantItem.getAwardCount())).setScale(2, BigDecimal.ROUND_HALF_UP));
grantGrantItem.setAwardPrice(awardsItem.getPrice().multiply(new BigDecimal(grantGrantItem.getAwardCount())).setScale(2, RoundingMode.HALF_UP));
grantGrantItem.setMoneyRule(awardsItem.getMoneyRule());
grantGrantItem.setMallShareRate(awardsItem.getMallShareRate());
grantGrantItem.setMerchantShareRate(awardsItem.getMerchantShareRate());
@@ -556,6 +578,12 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity
activityItem.setIsMeet(false);
continue;
}
for (WxOfflineActivityGrantItem grantItem : grantActivityItemList) {
grantItem.setMallSharePrice(grantItem.getAwardPrice()
.multiply(grantItem.getMallShareRate().divide(new BigDecimal(100)))
.setScale(0, RoundingMode.HALF_UP));
grantItem.setMerchantSharePrice(grantItem.getAwardPrice().subtract(grantItem.getMallSharePrice()));
}
activityItem.setIsMeet(true);
activityItem.setActivityGrantItemList(grantActivityItemList);
}


Loading…
Cancel
Save