逾期及续租处理

This commit is contained in:
2025-08-23 14:46:59 +08:00
parent a4dd2e7f0f
commit f6a3c98048

View File

@ -283,6 +283,26 @@ public class OrderServiceImpl implements OrderService {
rentOrder.setAmount(rentCarOrderAmount); rentOrder.setAmount(rentCarOrderAmount);
rentOrder.setCreatedAt(LocalDateTime.now()); rentOrder.setCreatedAt(LocalDateTime.now());
rentOrder.setPaymentMethod(paymentType); rentOrder.setPaymentMethod(paymentType);
// 起支付返回预支付信息
UnifiedPaymentInfoDTO unifiedPaymentInfoDTO = null;
//发起支付
if(StringUtils.equalsIgnoreCase(userInfoDTO.getMiniProgramType(), MiniProgramTypeEnum.WECHAT.getType())){
RentCarRuleDTO rentCarRuleDTO = carInteg.getRentCarRuleByCarRuleId(orderMainPO.getRentCarRuleId());
PaymentRequest paymentRequest = new PaymentRequest();
paymentRequest.setCompanyId(orderMainPO.getOperatorId());
paymentRequest.setOutTradeNo(rentOrder.getPaymentId());
paymentRequest.setOpenId(userInfoDTO.getWechatOpenid());
paymentRequest.setAttach(orderMainPO.getOperatorId().toString());
paymentRequest.setSpbillCreateIp("127.0.0.1");
paymentRequest.setBody(rentCarRuleDTO.getRuleName());
// paymentRequest.setTotalFee(rentCarOrderAmount.multiply(new BigDecimal(100)).intValue());
paymentRequest.setTotalFee(10);
unifiedPaymentInfoDTO = payInteg.unifiedOrder(paymentRequest);
// TODO 其他支付类型
}
orderSubRepo.save(rentOrder); orderSubRepo.save(rentOrder);
LocalDateTime nowTime = LocalDateTime.now(); LocalDateTime nowTime = LocalDateTime.now();
@ -297,11 +317,11 @@ public class OrderServiceImpl implements OrderService {
updateWrapper.set(OrderMainPO::getRenewalTimes, orderMainPO.getRenewalTimes()+1); updateWrapper.set(OrderMainPO::getRenewalTimes, orderMainPO.getRenewalTimes()+1);
updateWrapper.set(OrderMainPO::getEndRentTime, newEndRentTime); updateWrapper.set(OrderMainPO::getEndRentTime, newEndRentTime);
updateWrapper.set(OrderMainPO::getOrderAmount, orderMainPO.getOrderAmount().add(rentCarOrderAmount)); updateWrapper.set(OrderMainPO::getOrderAmount, orderMainPO.getOrderAmount().add(rentCarOrderAmount));
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RERENT_WAIT_PAY.getCode());
updateWrapper.eq(OrderMainPO::getOrderNo, rentCarOrderReq.getOrderNo()); updateWrapper.eq(OrderMainPO::getOrderNo, rentCarOrderReq.getOrderNo());
orderMainRepo.update(updateWrapper); orderMainRepo.update(updateWrapper);
// TODO 发起支付返回预支付信息
UnifiedPaymentInfoDTO unifiedPaymentInfoDTO = new UnifiedPaymentInfoDTO();
//返回订单信息 //返回订单信息
OrderDTO orderDTO = getOrderInfoByOrderNo(rentCarOrderReq.getOrderNo()); OrderDTO orderDTO = getOrderInfoByOrderNo(rentCarOrderReq.getOrderNo());
@ -365,7 +385,7 @@ public class OrderServiceImpl implements OrderService {
log.info("开始取消订单"); log.info("开始取消订单");
OrderMainPO orderMainPO = queryOrderMainPoByOrderNo(payOrderReq.getOrderNo(), "0"); OrderMainPO orderMainPO = queryOrderMainPoByOrderNo(payOrderReq.getOrderNo(), "0");
if(Objects.nonNull(orderMainPO)){ if(Objects.nonNull(orderMainPO)){
if(!OrderStatusEnum.WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())&&OrderStatusEnum.RERENT_WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){ if(!OrderStatusEnum.WAIT_PAY.getCode().equalsIgnoreCase(orderMainPO.getOrderStatus())){
throw new BizException("订单非待支付状态,不能取消"); throw new BizException("订单非待支付状态,不能取消");
} }
@ -443,19 +463,38 @@ public class OrderServiceImpl implements OrderService {
rentOrder.setSuborderType(SubOrderTypeEnum.OVERDUE.getCode()); rentOrder.setSuborderType(SubOrderTypeEnum.OVERDUE.getCode());
rentOrder.setAmount(overDueAmount); rentOrder.setAmount(overDueAmount);
rentOrder.setCreatedAt(LocalDateTime.now()); rentOrder.setCreatedAt(LocalDateTime.now());
rentOrder.setPayStatus(PayStatusEnum.USERPAYING.getCode());
rentOrder.setPaymentMethod(paymentType); rentOrder.setPaymentMethod(paymentType);
// 发起支付返回预支付信息
UnifiedPaymentInfoDTO unifiedPaymentInfoDTO = null;
//发起支付
if(StringUtils.equalsIgnoreCase(userInfoDTO.getMiniProgramType(), MiniProgramTypeEnum.WECHAT.getType())){
RentCarRuleDTO rentCarRuleDTO = carInteg.getRentCarRuleByCarRuleId(orderMainPO.getRentCarRuleId());
PaymentRequest paymentRequest = new PaymentRequest();
paymentRequest.setCompanyId(orderMainPO.getOperatorId());
paymentRequest.setOutTradeNo(rentOrder.getPaymentId());
paymentRequest.setOpenId(userInfoDTO.getWechatOpenid());
paymentRequest.setAttach(orderMainPO.getOperatorId().toString());
paymentRequest.setSpbillCreateIp("127.0.0.1");
paymentRequest.setBody(rentCarRuleDTO.getRuleName());
// paymentRequest.setTotalFee(overDueAmount.multiply(new BigDecimal(100)).intValue());
paymentRequest.setTotalFee(10);
unifiedPaymentInfoDTO = payInteg.unifiedOrder(paymentRequest);
// TODO 其他支付类型
}
orderSubRepo.save(rentOrder); orderSubRepo.save(rentOrder);
//更新订单状态及信息 //更新订单状态及信息
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
//TODO 这里应该是支付以后再将状态改为租车中,这里先改为租车中便于演示流程 //将订单状态改为续租待或逾期待支付状态
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_ING.getCode()); updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RERENT_WAIT_PAY.getCode());
updateWrapper.set(OrderMainPO::getOrderAmount, orderMainPO.getOrderAmount().add(overDueAmount)); updateWrapper.set(OrderMainPO::getOrderAmount, orderMainPO.getOrderAmount().add(overDueAmount));
updateWrapper.eq(OrderMainPO::getOrderNo, rentCarOrderReq.getOrderNo()); updateWrapper.eq(OrderMainPO::getOrderNo, rentCarOrderReq.getOrderNo());
orderMainRepo.update(updateWrapper); orderMainRepo.update(updateWrapper);
// TODO 发起支付返回预支付信息
UnifiedPaymentInfoDTO unifiedPaymentInfoDTO = new UnifiedPaymentInfoDTO();
//返回订单信息 //返回订单信息
OrderDTO orderDTO = getOrderInfoByOrderNo(rentCarOrderReq.getOrderNo()); OrderDTO orderDTO = getOrderInfoByOrderNo(rentCarOrderReq.getOrderNo());