|
@@ -840,13 +840,12 @@ DISCOUNT("畅学卡")
|
|
|
}
|
|
|
|
|
|
if (couponInfo.getUseLimit() != null && amount.compareTo(BigDecimal
|
|
|
- .valueOf(couponInfo.getUseLimit()).setScale(2, BigDecimal.ROUND_HALF_UP)) < 0
|
|
|
- && !couponAmountMap.isEmpty()) {
|
|
|
+ .valueOf(couponInfo.getUseLimit()).setScale(2, BigDecimal.ROUND_HALF_UP)) < 0) {
|
|
|
throw new BizException("优惠券不可用");
|
|
|
}
|
|
|
|
|
|
|
|
|
- amount = amount.subtract(BigDecimal.valueOf(couponInfo.getDiscountPrice()));
|
|
|
+ BigDecimal actual = amount.subtract(BigDecimal.valueOf(couponInfo.getDiscountPrice()));
|
|
|
|
|
|
|
|
|
|
|
@@ -857,7 +856,7 @@ DISCOUNT("畅学卡")
|
|
|
BigDecimal actualPrice = entry.getValue();
|
|
|
BigDecimal couponAmount;
|
|
|
|
|
|
- if (amount.compareTo(BigDecimal.ZERO) >0) {
|
|
|
+ if (actual.compareTo(BigDecimal.ZERO) >0) {
|
|
|
couponAmount = BigDecimal.valueOf(couponInfo.getDiscountPrice())
|
|
|
.multiply(userOrderDetail.getActualPrice()).divide(amount, 2, RoundingMode.HALF_DOWN);
|
|
|
} else {
|
|
@@ -870,7 +869,7 @@ DISCOUNT("畅学卡")
|
|
|
couponAmount,userOrderDetail.getDiscountJson()));
|
|
|
userOrderDetail.setActualPrice(actualPrice.subtract(couponAmount));
|
|
|
}
|
|
|
- if (remainAmount.compareTo(BigDecimal.ZERO) > 0&& amount.compareTo(BigDecimal.ZERO) >0) {
|
|
|
+ if (remainAmount.compareTo(BigDecimal.ZERO) > 0 && actual.compareTo(BigDecimal.ZERO) >0) {
|
|
|
UserOrderDetail userOrderDetail = goodsInfos.get(couponAmountMap.keySet().stream().findFirst().get()).getUserOrderDetail();
|
|
|
userOrderDetail.setActualPrice(userOrderDetail.getActualPrice().subtract(remainAmount));
|
|
|
|