限时折扣 与会员价
This commit is contained in:
parent
da7ddb8128
commit
0d2a930ae8
|
|
@ -943,21 +943,15 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||
if (limitRate.getFoodType() == 2 && !limitRate.getFoodIds().contains(orderDetail.getProductId())) {
|
||||
throw new CzgException("限时折扣使用失败,商品" + orderDetail.getProductName() + "不享受限时折扣");
|
||||
}
|
||||
if (!isVipPrice || "limit-time".equals(limitRate.getDiscountPriority())) {
|
||||
if (orderDetail.getPrice().compareTo(BigDecimal.ZERO) == 0) {
|
||||
orderDetail.setUnitPrice(orderDetail.getPrice());
|
||||
} else {
|
||||
// 确保最终结果保留两位小数并向上取整
|
||||
orderDetail.setUnitPrice(
|
||||
orderDetail.getPrice()
|
||||
.multiply(new BigDecimal(limitRate.getDiscountRate()).divide(new BigDecimal("100"), 2, RoundingMode.CEILING))
|
||||
.setScale(2, RoundingMode.CEILING)
|
||||
);
|
||||
}
|
||||
if (orderDetail.getPrice().compareTo(BigDecimal.ZERO) == 0) {
|
||||
orderDetail.setUnitPrice(orderDetail.getPrice());
|
||||
} else {
|
||||
// 确保最终结果保留两位小数并向上取整
|
||||
orderDetail.setUnitPrice(
|
||||
(orderDetail.getMemberPrice() == null || orderDetail.getMemberPrice().compareTo(BigDecimal.ZERO) <= 0)
|
||||
? orderDetail.getPrice() : orderDetail.getMemberPrice());
|
||||
orderDetail.getPrice()
|
||||
.multiply(new BigDecimal(limitRate.getDiscountRate()).divide(new BigDecimal("100"), 2, RoundingMode.CEILING))
|
||||
.setScale(2, RoundingMode.CEILING)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
if (isVipPrice) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue