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<>();