fix: 比例计算根据可退金额计算

This commit is contained in:
张松 2024-11-22 15:02:13 +08:00
parent 7b2cc558eb
commit 31965da486
1 changed files with 5 additions and 2 deletions

View File

@ -2818,7 +2818,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
BigDecimal ratio = calcDetailRatio(orderDetail, returnNum);
currentDetailAMount = orderDetail.getPriceAmount().divide(orderDetail.getNum(), 8, RoundingMode.HALF_UP)
.multiply(returnNum).setScale(2, RoundingMode.HALF_UP);
returnAmount = returnAmount.add(oldOrderInfo.getPayAmount().multiply(ratio));
if (oldOrderInfo.getRefundAmount() == null) {
oldOrderInfo.setRefundAmount(BigDecimal.ZERO);
}
returnAmount = returnAmount.add(oldOrderInfo.getPayAmount().subtract(oldOrderInfo.getRefundAmount()).multiply(ratio));
saleAmount = saleAmount.add(orderDetail.getPrice());
packAMount = packAMount.add(orderDetail.getPackAmount()
.divide(orderDetail.getNum(), 8, RoundingMode.HALF_UP)
@ -2894,7 +2897,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
private BigDecimal calcDetailRatio(TbOrderDetail orderDetail, BigDecimal returnNum) {
List<TbOrderDetail> detailList = mpOrderDetailService.selectByOrderIdAndState(orderDetail.getOrderId(), TableConstant.OrderInfo.Status.CLOSED, TableConstant.OrderInfo.Status.REFUND);
List<TbOrderDetail> detailList = mpOrderDetailService.selectByOrderIdAndState(orderDetail.getOrderId(), TableConstant.OrderInfo.Status.CLOSED);
BigDecimal totalAmount = BigDecimal.ZERO;
for (TbOrderDetail item : detailList) {
if (item.getUserCouponId() == null) {