From 520d74080b8df2152680d4e408dd5ef0bad26c5a Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Sat, 23 Aug 2025 16:37:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=AD=E7=A7=9F=E5=92=8C=E9=80=BE=E6=9C=9F?= =?UTF-8?q?=E5=A4=84=E7=90=86=E7=8A=B6=E6=80=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sczx/order/service/impl/OrderServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java index 3dba403..64e0693 100644 --- a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java @@ -235,12 +235,16 @@ public class OrderServiceImpl implements OrderService { String redisLockKey = RedisKeyConstants.ORDER_SUB_KEY + userInfoDTO.getUserId(); if(redisUtil.getRedisLock(redisLockKey, "续租")) { try{ + LambdaQueryWrapper currentOrderWrapper = new LambdaQueryWrapper<>(); currentOrderWrapper.eq(OrderMainPO::getOrderNo, rentCarOrderReq.getOrderNo()).last( " limit 1"); OrderMainPO orderMainPO = orderMainRepo.getOne(currentOrderWrapper); if(orderMainPO == null){ throw new BizException("订单不存在"); } + if(!OrderStatusEnum.RENT_ING.getCode().equals(orderMainPO.getOrderStatus()) && !OrderStatusEnum.RENT_OVERDUE.getCode().equals(orderMainPO.getOrderStatus())){ + throw new BizException("订单非租赁或逾期状态,不能续租"); + } //生成子表订单 String paymentType; if(rentCarOrderReq.getIsAutoDeduct()){ @@ -353,6 +357,7 @@ public class OrderServiceImpl implements OrderService { LambdaQueryWrapper orderSubQueryWrapper = new LambdaQueryWrapper<>(); orderSubQueryWrapper.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId()); orderSubQueryWrapper.eq(OrderSubPO::getPayStatus, PayStatusEnum.USERPAYING.getCode()); + orderSubQueryWrapper.orderByDesc(OrderSubPO::getCreatedAt); List orderSubPOList = orderSubRepo.list(orderSubQueryWrapper); if(orderSubPOList.isEmpty()){ throw new InnerException("待支付子订单不存在"); @@ -437,6 +442,9 @@ public class OrderServiceImpl implements OrderService { if(orderMainPO == null){ throw new BizException("订单不存在"); } + if(!OrderStatusEnum.RENT_OVERDUE.getCode().equals(orderMainPO.getOrderStatus())){ + throw new BizException("订单非逾期状态,不能逾期处理"); + } //生成子表订单 String paymentType; if(rentCarOrderReq.getIsAutoDeduct()){