fix: 比例计算根据可退金额计算
This commit is contained in:
parent
d50d511c71
commit
81756dfad5
|
|
@ -2118,7 +2118,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
returnCoupon(orderInfo, true);
|
||||
|
||||
// 设置折扣比例
|
||||
orderInfo.setDiscountRatio(payDTO.getDiscount().setScale(4, RoundingMode.DOWN));
|
||||
orderInfo.setDiscountRatio(payDTO.getDiscount().setScale(4, RoundingMode.HALF_DOWN));
|
||||
|
||||
Set<String> productIdSet = new HashSet<>();
|
||||
List<TbCashierCart> cashierCarts = mpCashierCartService.selectByOrderIdAndState(orderInfo.getId());
|
||||
|
|
@ -2190,7 +2190,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
private BigDecimal resetAmountByDiscount(PayDTO payDTO, TbOrderInfo orderInfo) {
|
||||
List<TbCashierCart> cashierCarts = mpCashierCartService.selectByOrderIdAndState(orderInfo.getId());
|
||||
List<TbOrderDetail> detailList = mpOrderDetailService.selectByOrderId(orderInfo.getId());
|
||||
BigDecimal discount = payDTO.getDiscount().setScale(4, RoundingMode.DOWN);
|
||||
BigDecimal discount = payDTO.getDiscount().setScale(4, RoundingMode.HALF_DOWN);
|
||||
BigDecimal totalAmount = BigDecimal.ZERO;
|
||||
for (TbCashierCart cashierCart : cashierCarts) {
|
||||
if (cashierCart.getUserCouponId() == null) {
|
||||
|
|
@ -2807,7 +2807,7 @@ 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.DOWN);
|
||||
.multiply(returnNum).setScale(2, RoundingMode.HALF_DOWN);
|
||||
if (oldOrderInfo.getRefundAmount() == null) {
|
||||
oldOrderInfo.setRefundAmount(BigDecimal.ZERO);
|
||||
}
|
||||
|
|
@ -2838,7 +2838,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
.multiply(returnNum)).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
}
|
||||
returnAmount = returnAmount.setScale(2, RoundingMode.DOWN);
|
||||
returnAmount = returnAmount.setScale(2, RoundingMode.HALF_DOWN);
|
||||
|
||||
if (remainNum.compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 单个打包费
|
||||
|
|
@ -2920,8 +2920,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
return BigDecimal.ONE;
|
||||
}
|
||||
|
||||
return orderDetail.getPriceAmount().divide(totalAmount, 10, RoundingMode.DOWN)
|
||||
.divide(orderDetail.getNum(), 10, RoundingMode.DOWN).multiply(returnNum).setScale(2, RoundingMode.DOWN);
|
||||
return orderDetail.getPriceAmount().divide(totalAmount, 10, RoundingMode.HALF_DOWN)
|
||||
.divide(orderDetail.getNum(), 10, RoundingMode.HALF_DOWN).multiply(returnNum).setScale(2, RoundingMode.HALF_DOWN);
|
||||
}
|
||||
|
||||
private void updateStockAndRecord(List<TbOrderDetail> orderDetailList) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue