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 61db73e7b..29d2e47ae 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantAwardServiceImpl.java @@ -260,11 +260,12 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity 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)); + awardsItem.setPrice(cashBackPrice.setScale(2, RoundingMode.HALF_UP)); } else if (EnumOfflineActivityAwardsRule.YUAN.getCode().equals(activityItem.getAwardsItemRule())) { - awardsItem.setPrice(cashBackPrice.setScale(0, BigDecimal.ROUND_HALF_UP)); + awardsItem.setPrice(cashBackPrice.setScale(0, RoundingMode.HALF_UP)); }else if (EnumOfflineActivityAwardsRule.TEN.getCode().equals(activityItem.getAwardsItemRule())){ - BigDecimal cashBackPriceTen = cashBackPrice.divide(new BigDecimal(10)).setScale(0, BigDecimal.ROUND_HALF_UP); + BigDecimal cashBackPriceTen = cashBackPrice.divide(new BigDecimal(10)) + .setScale(0, RoundingMode.HALF_UP); awardsItem.setPrice(cashBackPriceTen.multiply(new BigDecimal(10))); } } @@ -281,7 +282,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity for(WxOfflineActivityAwardsItem awardsItem : awardsItemList){ awardsItem.setMallSharePrice(awardsItem.getPrice() .multiply(awardsItem.getMallShareRate().divide(new BigDecimal(100))) - .setScale(0, RoundingMode.HALF_UP)); + .setScale(2, RoundingMode.HALF_UP)); awardsItem.setMerchantSharePrice(awardsItem.getPrice().subtract(awardsItem.getMallSharePrice())); } } @@ -492,7 +493,9 @@ 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, RoundingMode.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()); @@ -581,7 +584,7 @@ public class WxOfflineActivityGrantAwardServiceImpl implements WxOfflineActivity for (WxOfflineActivityGrantItem grantItem : grantActivityItemList) { grantItem.setMallSharePrice(grantItem.getAwardPrice() .multiply(grantItem.getMallShareRate().divide(new BigDecimal(100))) - .setScale(0, RoundingMode.HALF_UP)); + .setScale(2, RoundingMode.HALF_UP)); grantItem.setMerchantSharePrice(grantItem.getAwardPrice().subtract(grantItem.getMallSharePrice())); } activityItem.setIsMeet(true); 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 1f2dacfa9..fabce08af 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOfflineActivityGrantSettlementServiceImpl.java @@ -103,11 +103,13 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct BigDecimal lastGrantPrice = wxOfflineActivityGrantItem.getAwardPrice(); for (int i = 0; i < itemSize; i++) { WxOfflineActivityGrantSettlement settlement = itemSettlementList.get(i); - BigDecimal realGrantPrice = wxOfflineActivityGrantItem.getAwardPrice().multiply(settlement.getOrderRatio().divide(new BigDecimal(100))).setScale(0, RoundingMode.HALF_UP); + BigDecimal realGrantPrice = wxOfflineActivityGrantItem.getAwardPrice() + .multiply(settlement.getOrderRatio().divide(new BigDecimal(100))) + .setScale(2, RoundingMode.HALF_UP); settlement.setRealGrantPrice(realGrantPrice); settlement.setRealMallSharePrice(settlement.getRealGrantPrice() .multiply(settlement.getMallShareRate().divide(new BigDecimal(100))) - .setScale(0, RoundingMode.HALF_UP)); + .setScale(2, RoundingMode.HALF_UP)); settlement.setRealMerchantSharePrice(settlement.getRealGrantPrice().subtract(settlement.getRealMallSharePrice())); lastGrantPrice = lastGrantPrice.subtract(realGrantPrice); @@ -116,7 +118,7 @@ public class WxOfflineActivityGrantSettlementServiceImpl implements WxOfflineAct lastSettlement.setRealGrantPrice(lastGrantPrice); lastSettlement.setRealMallSharePrice(lastSettlement.getRealGrantPrice() .multiply(lastSettlement.getMallShareRate().divide(new BigDecimal(100))) - .setScale(0, RoundingMode.HALF_UP)); + .setScale(2, RoundingMode.HALF_UP)); lastSettlement.setRealMerchantSharePrice(lastSettlement.getRealGrantPrice().subtract(lastSettlement.getRealMallSharePrice())); settlementList.addAll(itemSettlementList);