Browse Source

订单详情订单金额分摊方式调整

zouxuan 3 years ago
parent
commit
00c39a7b00

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -98,6 +98,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             if(collect.size() == 0){
                 throw new BizException("订单金额异常");
             }
+            BigDecimal totalAmount = collect.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
             for (int i = 0; i < collect.size(); i++) {
                 StudentPaymentOrderDetail orderDetail = collect.get(i);
                 //如果是最后一件商品
@@ -105,7 +106,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
                     orderDetail.setPrice(orderDetail.getPrice().subtract(waitRemitFee));
                 } else {
                     //获取比例
-                    BigDecimal ratioAmount = orderDetail.getPrice().divide((couponRemitFee.add(orderDetail.getPrice())), 6, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal ratioAmount = orderDetail.getPrice().divide(totalAmount, 6, BigDecimal.ROUND_HALF_UP);
                     //获取分配的减免金额
                     BigDecimal multiply = ratioAmount.multiply(couponRemitFee).setScale(2, BigDecimal.ROUND_HALF_UP);
                     waitRemitFee = waitRemitFee.subtract(multiply);