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 38b7f91b5..8d7dee101 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -240,8 +240,25 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity activityItem.setActivityGrantItemList(Collections.singletonList(grantItem)); } else if (EnumOfflineActivityType.CASHBACK.getCode().equals(activityItem.getType())) { + if(wxOfflineActivityGrantAward.getOrderMoneySum().compareTo(activityItem.getLimitMoney()) < 0){ + activityItem.setIsMeet(false); + continue; + } activityItem.setIsMeet(true); activityItem.setRealAwardsItemLimit(1); + for (WxOfflineActivityAwardsItem awardsItem : activityItem.getActivityAwardsItemList()) { + //计算返现金额 + BigDecimal cashBackPrice = wxOfflineActivityGrantAward.getOrderMoneySum() + .multiply(awardsItem.getCashBackRatio().divide(new BigDecimal(100))); + if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(activityItem.getAwardsItemRule())){ + awardsItem.setPrice(cashBackPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { + awardsItem.setPrice(cashBackPrice.setScale(0, BigDecimal.ROUND_HALF_UP)); + }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ + BigDecimal cashBackPriceTen = cashBackPrice.divide(new BigDecimal(10)).setScale(0, BigDecimal.ROUND_HALF_UP); + awardsItem.setPrice(cashBackPriceTen.multiply(new BigDecimal(10))); + } + } } } } 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 305101b0f..5d1ff180e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantItemServiceImpl.java @@ -50,8 +50,7 @@ public class WxOfflineActivityGrantItemServiceImpl implements WxOfflineActivityG if(EnumOfflineActivityAwardsRule.DEF.getCode().equals(grantGrantItem.getAwardsItemRule())){ grantGrantItem.setAwardPrice(awardPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(grantGrantItem.getAwardsItemRule())) { - BigDecimal awardPriceYuan = awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP); - grantGrantItem.setAwardPrice(awardPriceYuan.multiply(new BigDecimal(100))); + grantGrantItem.setAwardPrice(awardPrice.setScale(0, BigDecimal.ROUND_HALF_UP)); }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(grantGrantItem.getAwardsItemRule())){ BigDecimal awardPriceTen = awardPrice.divide(new BigDecimal(10)).setScale(0, BigDecimal.ROUND_HALF_UP); grantGrantItem.setAwardPrice(awardPriceTen.multiply(new BigDecimal(10)));