diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java index f2511929b..dc95ebc54 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityAwardsItem.java @@ -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; /** * 创建时间 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 3b5f84b3d..7bd378699 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityGrantItem.java @@ -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; /** * 创建时间 diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java index 16e97a2bc..ea012c496 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxOfflineActivityRecord.java @@ -179,7 +179,7 @@ public class WxOfflineActivityRecord extends TenantEntity { /** * 审核时间 */ - @Excel(name = "审核意见", width = 20, format = "yyyy-MM-dd HH:mm:ss", orderNum = "10") + @Excel(name = "审核时间", width = 20, format = "yyyy-MM-dd HH:mm:ss", orderNum = "10") @TableField(value = "audit_time") private Date auditTime; 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 6075b7139..61db73e7b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -16,6 +16,8 @@ import com.iformall.mapper.*; import com.iformall.service.*; import com.iformall.utils.DateUtils; import com.iformall.utils.DownFileUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,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; @@ -40,6 +43,8 @@ import static java.util.stream.Collectors.*; @Service public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivityGrantAwardService{ + private static final Logger log = LoggerFactory.getLogger(WxOfflineActivityGrantAwardServiceImpl.class); + @Autowired private WxOfflineActivityGrantAwardMapper wxOfflineActivityGrantAwardMapper; @@ -202,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 sortAwardsItemList = activityItem.getActivityAwardsItemList().stream().sorted(Comparator.comparing(WxOfflineActivityAwardsItem::getMinAmount)).collect(toList()); WxOfflineActivityAwardsItem grantAwardsItem = null; for(WxOfflineActivityAwardsItem awardsItem : sortAwardsItemList){ @@ -233,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())) { @@ -256,10 +268,24 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity awardsItem.setPrice(cashBackPriceTen.multiply(new BigDecimal(10))); } } + //计算商户商管分别承担金额 + handlerAwardsSharePrice(activityItem.getActivityAwardsItemList()); } } } + private void handlerAwardsSharePrice(List 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) { @@ -466,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()); @@ -552,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); }