手动结束订单时,如果未取车则更新逻辑退押金和租金

This commit is contained in:
19173159168
2025-09-07 20:17:59 +08:00
parent 183fbcfe3d
commit 688d8d236b

View File

@ -205,6 +205,9 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService
ZcOrderSub querySub = zcOrderSubService.selectZcOrderSub(depositSub); ZcOrderSub querySub = zcOrderSubService.selectZcOrderSub(depositSub);
if (querySub != null) { if (querySub != null) {
ZcOrderMain queryMain = selectZcOrderMainByOrderId(orderId);
// 创建退款子订单 // 创建退款子订单
String suborderNo = OrderUtil.generateSubOrderNo(OrderUtil.FD_PREFIX); String suborderNo = OrderUtil.generateSubOrderNo(OrderUtil.FD_PREFIX);
@ -212,6 +215,10 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService
refundSub.setOrderId(orderId); refundSub.setOrderId(orderId);
refundSub.setSuborderNo(suborderNo); refundSub.setSuborderNo(suborderNo);
refundSub.setSuborderType(OrderUtil.FD_DEPOSIT); refundSub.setSuborderType(OrderUtil.FD_DEPOSIT);
// 如果租车订单未取车,退租车费用和押金费用
if(queryMain.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){
refundSub.setAmount(queryOrder.getDepositPrice().add(queryOrder.getRentalPrice()));
}else {
// 计算实际退款金额(押金减去逾期费用) // 计算实际退款金额(押金减去逾期费用)
BigDecimal overdueAmount = BigDecimal.ZERO; BigDecimal overdueAmount = BigDecimal.ZERO;
long overdueDays = DateUtils.daysBetween(queryOrder.getEndRentTime(), DateUtils.getNowDate()); long overdueDays = DateUtils.daysBetween(queryOrder.getEndRentTime(), DateUtils.getNowDate());
@ -223,6 +230,7 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService
refundAmount = BigDecimal.ZERO; refundAmount = BigDecimal.ZERO;
} }
refundSub.setAmount(refundAmount); refundSub.setAmount(refundAmount);
}
refundSub.setPaymentMethod(querySub.getPaymentMethod()); refundSub.setPaymentMethod(querySub.getPaymentMethod());
refundSub.setCreatedAt(DateUtils.getNowDate()); refundSub.setCreatedAt(DateUtils.getNowDate());
refundSub.setPaymentId(querySub.getPaymentId()); refundSub.setPaymentId(querySub.getPaymentId());