手动结束订单时,如果未取车则更新逻辑退押金和租金
This commit is contained in:
@ -205,6 +205,9 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService
|
||||
ZcOrderSub querySub = zcOrderSubService.selectZcOrderSub(depositSub);
|
||||
|
||||
if (querySub != null) {
|
||||
|
||||
ZcOrderMain queryMain = selectZcOrderMainByOrderId(orderId);
|
||||
|
||||
// 创建退款子订单
|
||||
String suborderNo = OrderUtil.generateSubOrderNo(OrderUtil.FD_PREFIX);
|
||||
|
||||
@ -212,17 +215,22 @@ public class ZcOrderMainServiceImpl implements IZcOrderMainService
|
||||
refundSub.setOrderId(orderId);
|
||||
refundSub.setSuborderNo(suborderNo);
|
||||
refundSub.setSuborderType(OrderUtil.FD_DEPOSIT);
|
||||
// 计算实际退款金额(押金减去逾期费用)
|
||||
BigDecimal overdueAmount = BigDecimal.ZERO;
|
||||
long overdueDays = DateUtils.daysBetween(queryOrder.getEndRentTime(), DateUtils.getNowDate());
|
||||
if (overdueDays > 0) {
|
||||
overdueAmount = queryOrder.getOverdueFee().multiply(new BigDecimal(overdueDays));
|
||||
// 如果租车订单未取车,退租车费用和押金费用
|
||||
if(queryMain.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){
|
||||
refundSub.setAmount(queryOrder.getDepositPrice().add(queryOrder.getRentalPrice()));
|
||||
}else {
|
||||
// 计算实际退款金额(押金减去逾期费用)
|
||||
BigDecimal overdueAmount = BigDecimal.ZERO;
|
||||
long overdueDays = DateUtils.daysBetween(queryOrder.getEndRentTime(), DateUtils.getNowDate());
|
||||
if (overdueDays > 0) {
|
||||
overdueAmount = queryOrder.getOverdueFee().multiply(new BigDecimal(overdueDays));
|
||||
}
|
||||
BigDecimal refundAmount = querySub.getAmount().subtract(overdueAmount);
|
||||
if (refundAmount.compareTo(BigDecimal.ZERO) < 0) {
|
||||
refundAmount = BigDecimal.ZERO;
|
||||
}
|
||||
refundSub.setAmount(refundAmount);
|
||||
}
|
||||
BigDecimal refundAmount = querySub.getAmount().subtract(overdueAmount);
|
||||
if (refundAmount.compareTo(BigDecimal.ZERO) < 0) {
|
||||
refundAmount = BigDecimal.ZERO;
|
||||
}
|
||||
refundSub.setAmount(refundAmount);
|
||||
refundSub.setPaymentMethod(querySub.getPaymentMethod());
|
||||
refundSub.setCreatedAt(DateUtils.getNowDate());
|
||||
refundSub.setPaymentId(querySub.getPaymentId());
|
||||
|
||||
Reference in New Issue
Block a user