退款 金额 回填

This commit is contained in:
wangw 2025-02-28 17:21:39 +08:00
parent 8887ce766d
commit e939ae9cd1
1 changed files with 22 additions and 1 deletions

View File

@ -432,6 +432,7 @@ public class PayServiceImpl implements PayService {
isPay = false;
refPayOrderNo = "";
}
orderInfo.setStatus(OrderStatusEnums.PART_REFUND.getCode());
if (CollUtil.isNotEmpty(param.getRefundDetails())) {
for (OrderDetail refundDetail : param.getRefundDetails()) {
AssertUtil.isNull(refundDetail.getNum(), "退单数量不能为空");
@ -475,10 +476,30 @@ public class PayServiceImpl implements PayService {
}
orderDetail.setRefundNo(refPayOrderNo);
orderDetail.setRefundRemark(orderDetail.getRefundRemark() + param.getRefundReason());
if (orderDetail.getNum().compareTo(orderDetail.getRefundNum().add(orderDetail.getReturnNum())) == 0) {
orderDetail.setStatus(OrderStatusEnums.REFUND.getCode());
} else {
orderDetail.setStatus(OrderStatusEnums.PART_REFUND.getCode());
}
orderDetailService.updateById(orderDetail);
}
} else {
refundAmountTotal = param.getRefundAmount();
if (isPay) {
orderDetailService.updateChain()
.eq(OrderDetail::getOrderId, param.getOrderId())
.setRaw(OrderDetail::getRefundNum, "num-refund_num")
.setRaw(OrderDetail::getReturnAmount, "pay_amount")
.set(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode())
.update();
} else {
orderDetailService.updateChain()
.eq(OrderDetail::getOrderId, param.getOrderId())
.setRaw(OrderDetail::getReturnNum, "num")
.set(OrderDetail::getStatus, OrderStatusEnums.REFUND.getCode())
.update();
}
}
//总退款金额
//TODO 退款 未处理
@ -501,7 +522,7 @@ public class PayServiceImpl implements PayService {
.bizEnum(ShopUserFlowBizEnum.ORDER_REFUND)
.build();
shopUserService.updateMoney(orderInfo.getShopId(), shopUserMoneyEditDTO);
} else if (!orderInfo.getPayType().equals(PayEnums.CASH_PAY.getValue())){
} else if (!orderInfo.getPayType().equals(PayEnums.CASH_PAY.getValue())) {
//退款 param.getRefundAmount()
refundOrder(orderInfo.getShopId(), orderInfo.getId(), orderInfo.getPayOrderId(),
refPayOrderNo, param.getRefundReason(), param.getRefundAmount());