商品券计算 排序问题

This commit is contained in:
2025-10-14 11:13:55 +08:00
parent 1637287974
commit 73b56e7513

View File

@@ -667,7 +667,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
*/ */
private void foodsCalculate(List<OrderDetail> orderDetails, boolean isAllFoods, List<Long> couponFoodIds, int discountNum, boolean isAsc, BigDecimalDTO prodCouponAmount) { private void foodsCalculate(List<OrderDetail> orderDetails, boolean isAllFoods, List<Long> couponFoodIds, int discountNum, boolean isAsc, BigDecimalDTO prodCouponAmount) {
orderDetails = getDetailsSort(orderDetails, isAsc); orderDetails = getDetailsSort(orderDetails, isAsc);
log.info("商品券 计算 orderDetails:{}", orderDetails); // log.info("商品券 计算 orderDetails:{}", orderDetails);
BigDecimal remaining = new BigDecimal(discountNum); BigDecimal remaining = new BigDecimal(discountNum);
for (OrderDetail detail : orderDetails) { for (OrderDetail detail : orderDetails) {
if ((isAllFoods || couponFoodIds.contains(detail.getProductId())) && detail.getUnitPrice().compareTo(BigDecimal.ZERO) > 0) { if ((isAllFoods || couponFoodIds.contains(detail.getProductId())) && detail.getUnitPrice().compareTo(BigDecimal.ZERO) > 0) {
@@ -686,7 +686,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
prodCouponAmount.setPrice(prodCouponAmount.getPrice().add(detail.getDiscountAmount())); prodCouponAmount.setPrice(prodCouponAmount.getPrice().add(detail.getDiscountAmount()));
} }
} }
log.info("商品券 计算 已经抵扣金额:{} ,剩余可抵扣数量:{}", prodCouponAmount.getPrice(), remaining); // log.info("商品券 计算 已经抵扣金额:{} ,剩余可抵扣数量:{}", prodCouponAmount.getPrice(), remaining);
if (remaining.compareTo(BigDecimal.ZERO) <= 0) { if (remaining.compareTo(BigDecimal.ZERO) <= 0) {
break; break;
} }
@@ -763,11 +763,11 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
private List<OrderDetail> getDetailsSort(List<OrderDetail> orderDetails, boolean isAsc) { private List<OrderDetail> getDetailsSort(List<OrderDetail> orderDetails, boolean isAsc) {
if (isAsc) { if (isAsc) {
return orderDetails.stream() return orderDetails.stream()
.sorted(Comparator.comparing(OrderDetail::getPrice)) .sorted(Comparator.comparing(OrderDetail::getUnitPrice))
.toList(); .toList();
} else { } else {
return orderDetails.stream() return orderDetails.stream()
.sorted(Comparator.comparing(OrderDetail::getPrice).reversed()) .sorted(Comparator.comparing(OrderDetail::getUnitPrice).reversed())
.toList(); .toList();
} }
} }