限时折扣
This commit is contained in:
parent
4d6cac0e1f
commit
fed18330b5
|
|
@ -793,10 +793,10 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
// log.info("商品券 计算 orderDetails:{}", orderDetails);
|
||||
BigDecimal remaining = new BigDecimal(discountNum);
|
||||
for (OrderDetail detail : orderDetails) {
|
||||
if (detail.getIsTemporary() != 1 && (isAllFoods || couponFoodIds.contains(detail.getProductId())) && detail.getUnitPrice().compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (detail.getIsTemporary() != 1 && (isAllFoods || (CollUtil.isNotEmpty(couponFoodIds) && couponFoodIds.contains(detail.getProductId()))) && detail.getUnitPrice().compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (remaining.compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (isTimeDiscountShare && detail.getIsTimeDiscount() == 1) {
|
||||
throw new ValidateException("生成支付订单失败,商品:" + detail.getProductName() + " 抵扣券与限时折扣不可共用。");
|
||||
continue;
|
||||
}
|
||||
if (remaining.compareTo(detail.getNum().subtract(detail.getReturnNum())) >= 0) {
|
||||
detail.setCouponNum(detail.getNum().subtract(detail.getReturnNum()).setScale(2, RoundingMode.CEILING));
|
||||
|
|
@ -830,7 +830,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
&& detail.getUnitPrice().compareTo(BigDecimal.ZERO) > 0
|
||||
&& detail.getNum().subtract(detail.getReturnNum()).subtract(detail.getCouponNum()).compareTo(BigDecimal.TWO) >= 0) {
|
||||
if (isTimeDiscountShare && detail.getIsTimeDiscount() == 1) {
|
||||
throw new ValidateException("生成支付订单失败,商品:" + detail.getProductName() + " 买一送一券与限时折扣不可共用。");
|
||||
continue;
|
||||
}
|
||||
detail.setCouponNum(detail.getCouponNum().add(BigDecimal.ONE));
|
||||
detail.setDiscountAmount(detail.getDiscountAmount().add(detail.getUnitPrice()));
|
||||
|
|
@ -852,7 +852,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
&& detail.getUnitPrice().compareTo(BigDecimal.ZERO) > 0
|
||||
&& detail.getNum().subtract(detail.getReturnNum()).subtract(detail.getCouponNum()).compareTo(BigDecimal.TWO) >= 0) {
|
||||
if (isTimeDiscountShare && detail.getIsTimeDiscount() == 1) {
|
||||
throw new ValidateException("生成支付订单失败,商品:" + detail.getProductName() + " 抵扣券与限时折扣不可共用。");
|
||||
continue;
|
||||
}
|
||||
detail.setHalfPriceCouponNum(BigDecimal.ONE);
|
||||
BigDecimal halfPrice = detail.getUnitPrice().divide(new BigDecimal("2"), 2, RoundingMode.FLOOR);
|
||||
|
|
|
|||
Loading…
Reference in New Issue