From 1f06e34d998a689d7cc8954ec6e946eebfd7b8a5 Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Sun, 28 Sep 2025 17:42:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A9=B3=E5=9B=9E=E8=A7=A3=E5=86=BB=E5=85=8D?= =?UTF-8?q?=E6=8A=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/impl/OrderServiceImpl.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) 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 a7a000a..07306ff 100644 --- a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java @@ -239,6 +239,7 @@ public class OrderServiceImpl implements OrderService { } } + @Transactional(rollbackFor = Exception.class) @Override public RentCarOrderResultDTO depositFreeSubmitRentCarOrder(RentCarOrderReq rentCarOrderReq) { log.info("开始发起免押 : {}", rentCarOrderReq); @@ -384,6 +385,7 @@ public class OrderServiceImpl implements OrderService { } + @Transactional(rollbackFor = Exception.class) @Override public RentCarOrderResultDTO depositFreePayRentCarOrder(RentCarOrderReq rentCarOrderReq) { SimpleUserInfoDTO userInfoDTO = jwtUtil.getUserInfoFromToken(); @@ -593,7 +595,7 @@ public class OrderServiceImpl implements OrderService { ,orderAmount); } - @Transactional + @Transactional(rollbackFor = Exception.class) @Override public void cancelOrder(PayOrderReq payOrderReq,OrderMainPO orderMainPO) { log.info("开始取消订单"); @@ -1048,7 +1050,6 @@ public class OrderServiceImpl implements OrderService { if(!orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode()) && !orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_RETURN.getCode())){ throw new BizException("订单状态异常,非待取车或待还车状态,无法驳回"); } - SimpleUserInfoDTO userInfoDTO = jwtUtil.getUserInfoFromToken(); if(orderMainPO.getOrderStatus().equals(OrderStatusEnum.WAIT_PICK.getCode())){ //获取租车子订单 @@ -1084,6 +1085,32 @@ public class OrderServiceImpl implements OrderService { orderSubRepo.save(fdSubOrder); } } + + LambdaQueryWrapper noDipoSubWrapper = new LambdaQueryWrapper<>(); + noDipoSubWrapper.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId()) + .eq(OrderSubPO::getDelFlag, "0") + .eq(OrderSubPO::getSuborderType, SubOrderTypeEnum.NO_DEPOSIT.getCode()) + .eq(OrderSubPO::getPayStatus, PayStatusEnum.SUCCESS).last(" limit 1"); + OrderSubPO noDepositOrder = orderSubRepo.getOne(noDipoSubWrapper); + if(Objects.nonNull(noDepositOrder)){ + log.info("查询支付宝冻结订单结果"); + AlipayQueryFreezeRequest alipayQueryFreezeRequest = new AlipayQueryFreezeRequest(); + alipayQueryFreezeRequest.setOutOrderNo(noDepositOrder.getPaymentId()); + alipayQueryFreezeRequest.setOperationType("FREEZE"); + alipayQueryFreezeRequest.setCompanyId(orderMainPO.getOperatorId().toString()); + AlipayQueryFreezeResponse queryFreezeResponse = payInteg.queryFundFreeze(alipayQueryFreezeRequest); + if(queryFreezeResponse!=null){ + boolean closePayOrder = payService.finishFreezeOrder(orderMainPO.getOperatorId(),noDepositOrder.getPaymentId(),noDepositOrder.getTransactionId(),noDepositOrder.getAmount()); + if(closePayOrder){ + //解冻成功更新状态为解冻成功 + LambdaUpdateWrapper updatenoDepositWrapper = new LambdaUpdateWrapper<>(); + updatenoDepositWrapper.set(OrderSubPO::getPayStatus, PayStatusEnum.UNFREEZE_SUCCESS.getCode()) + .eq(OrderSubPO::getSuborderId, noDepositOrder.getSuborderId()); + orderSubRepo.update(updatenoDepositWrapper); + } + + } + } }); } else { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();