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