商品券计算 排序问题

This commit is contained in:
wangw 2025-10-14 11:13:55 +08:00
parent 1637287974
commit 73b56e7513
1 changed files with 4 additions and 4 deletions

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) {
orderDetails = getDetailsSort(orderDetails, isAsc);
log.info("商品券 计算 orderDetails:{}", orderDetails);
// log.info("商品券 计算 orderDetails:{}", orderDetails);
BigDecimal remaining = new BigDecimal(discountNum);
for (OrderDetail detail : orderDetails) {
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()));
}
}
log.info("商品券 计算 已经抵扣金额:{} ,剩余可抵扣数量:{}", prodCouponAmount.getPrice(), remaining);
// log.info("商品券 计算 已经抵扣金额:{} ,剩余可抵扣数量:{}", prodCouponAmount.getPrice(), remaining);
if (remaining.compareTo(BigDecimal.ZERO) <= 0) {
break;
}
@ -763,11 +763,11 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
private List<OrderDetail> getDetailsSort(List<OrderDetail> orderDetails, boolean isAsc) {
if (isAsc) {
return orderDetails.stream()
.sorted(Comparator.comparing(OrderDetail::getPrice))
.sorted(Comparator.comparing(OrderDetail::getUnitPrice))
.toList();
} else {
return orderDetails.stream()
.sorted(Comparator.comparing(OrderDetail::getPrice).reversed())
.sorted(Comparator.comparing(OrderDetail::getUnitPrice).reversed())
.toList();
}
}