From bfa07660cb22003d3fc0da73ba9f44ba79512105 Mon Sep 17 00:00:00 2001 From: eric <465889110@qq.com> Date: Sun, 7 Sep 2025 19:46:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=A7=9F=E7=94=B5=E5=AD=90?= =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/impl/OrderServiceImpl.java | 14 ++++++++ .../order/thirdpart/facade/SyncFacade.java | 15 +++++++++ .../thirdpart/integration/SyncInteg.java | 33 +++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 src/main/java/com/sczx/order/thirdpart/facade/SyncFacade.java create mode 100644 src/main/java/com/sczx/order/thirdpart/integration/SyncInteg.java 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 cf8c912..1ab99ec 100644 --- a/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/sczx/order/service/impl/OrderServiceImpl.java @@ -22,6 +22,7 @@ import com.sczx.order.thirdpart.dto.req.CarQueryConditionReq; import com.sczx.order.thirdpart.integration.CarInteg; import com.sczx.order.thirdpart.integration.PayInteg; import com.sczx.order.thirdpart.integration.StoreInteg; +import com.sczx.order.thirdpart.integration.SyncInteg; import com.sczx.order.utils.JwtUtil; import com.sczx.order.utils.OrderUtil; import com.sczx.order.utils.RedisUtil; @@ -78,6 +79,9 @@ public class OrderServiceImpl implements OrderService { @Autowired private PayService payService; + @Autowired + private SyncInteg syncInteg; + @Override public OrderMainPO queryOrderMainPoByOrderNo(String orderNo, String delFlag) { LambdaQueryWrapper currentOrderWrapper = new LambdaQueryWrapper<>(); @@ -822,6 +826,16 @@ public class OrderServiceImpl implements OrderService { .set(CarPO::getBrsStatus, CarStatusEnum.RENT_ING.getCode()); carRepo.update(carPOLambdaUpdateWrapper); + //同步租电订单 + LambdaQueryWrapper querySubBatteryWrapper = new LambdaQueryWrapper<>(); + querySubBatteryWrapper.eq(OrderSubPO::getOrderId, orderMainPO.getOrderId()) + .eq(OrderSubPO::getSuborderType, SubOrderTypeEnum.RENTBATTEY.getCode()) + .orderByDesc(OrderSubPO::getCreatedAt) + .last(" limit 1"); + OrderSubPO renBatteryOrderSubPO = orderSubRepo.getOne(queryWrapper); + Long batterySubOrderId = renBatteryOrderSubPO.getSuborderId(); + syncInteg.sendSubOrderId(batterySubOrderId); + return getOrderInfoByOrderNo(bindCarToOrderReq.getOrderNo()); } catch (Exception e){ log.warn("绑定车辆失败",e); diff --git a/src/main/java/com/sczx/order/thirdpart/facade/SyncFacade.java b/src/main/java/com/sczx/order/thirdpart/facade/SyncFacade.java new file mode 100644 index 0000000..30fcbf1 --- /dev/null +++ b/src/main/java/com/sczx/order/thirdpart/facade/SyncFacade.java @@ -0,0 +1,15 @@ +package com.sczx.order.thirdpart.facade; + + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@FeignClient(name = "sczx-sync", url = "${sczx-sync.ribbon.listOfServers:}") +public interface SyncFacade { + + @GetMapping("/send/subOrder") + Map sendSubOrderId(Long subOrderId); + +} \ No newline at end of file diff --git a/src/main/java/com/sczx/order/thirdpart/integration/SyncInteg.java b/src/main/java/com/sczx/order/thirdpart/integration/SyncInteg.java new file mode 100644 index 0000000..dc327b3 --- /dev/null +++ b/src/main/java/com/sczx/order/thirdpart/integration/SyncInteg.java @@ -0,0 +1,33 @@ +package com.sczx.order.thirdpart.integration; + +import com.sczx.order.exception.InnerException; +import com.sczx.order.thirdpart.facade.SyncFacade; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Slf4j +@Component +public class SyncInteg { + + @Autowired + private SyncFacade syncFacade; + + public Map sendSubOrderId(Long subOrderId){ + try{ + Map result = syncFacade.sendSubOrderId(subOrderId); + if(result.get("code") == "200"){ + return result; + } + } catch (Exception e){ + log.error("发送租电订单同步失败",e); + throw new InnerException("发送租电订单同步失败"); + } + return null; + } + + + +}