From 1ee6637e101e539b7e327c779087d81de9d8b129 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 30 四月 2026 17:33:14 +0800
Subject: [PATCH] 开发优惠券发放逻辑
---
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java | 92 ++++++++++++++++++++++++++--------------------
1 files changed, 52 insertions(+), 40 deletions(-)
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
index e8ab585..822488c 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -126,6 +126,9 @@
@Resource
private XpAppUserCouponClient xpAppUserCouponClient;
+ @Resource
+ private OfficialPartnerUtil officialPartnerUtil;
+
// 自定义线程池
private static final ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
@@ -1075,29 +1078,33 @@
continue;
}
-
- // 关闭巡游单子
- R stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vehiclePosition.getVehicleVin());
- if (stringR == null || stringR.getCode() != 200) {
- log.info("关闭巡游单子失败 车牌号 {}", vehiclePosition.getPlateNumber());
- continue;
+ //非合作商的车辆需要处理巡游单
+ if(null != vehiclePosition.getOfficialPartnerId()){
+ // 关闭巡游单子
+ R stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vehiclePosition.getVehicleVin());
+ if (stringR == null || stringR.getCode() != 200) {
+ log.info("关闭巡游单子失败 车牌号 {}", vehiclePosition.getPlateNumber());
+ continue;
+ }
+ log.info("关闭巡游单成功 {} {}", vehiclePosition.getPlateNumber(), orderNo);
+ // 下发命令
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setVin(vehiclePosition.getVehicleVin());
+ pushOrderDto.setOrderId(xpOrder.getId().toString());
+ pushOrderDto.setStartLatitude(xpOrder.getStartLat());
+ pushOrderDto.setStartLongitude(xpOrder.getStartLon());
+ pushOrderDto.setEndLatitude(xpOrder.getEndLat());
+ pushOrderDto.setEndLongitude(xpOrder.getEndLon());
+ pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
+ pushOrderDto.setOrderType(OrderType.USER_ORDER);
+ pushOrderDto.setStage(1);
+ // 调用推送服务 orderId + carVin
+ orderMissionClient.pushOrder(pushOrderDto);
+ log.info("开始推送 {} 订单到XPU。单号 {}", xpOrder.getOrderNumber(), orderNo);
+ }else {
+ //合作商的车辆需要调用合作商的订单通知接口
+ officialPartnerUtil.pusNewOrder(vehiclePosition.getOfficialPartnerId(), xpOrder);
}
- log.info("关闭巡游单成功 {} {}", vehiclePosition.getPlateNumber(), orderNo);
- // 下发命令
- PushOrderDto pushOrderDto = new PushOrderDto();
- pushOrderDto.setVin(vehiclePosition.getVehicleVin());
- pushOrderDto.setOrderId(xpOrder.getId().toString());
- pushOrderDto.setStartLatitude(xpOrder.getStartLat());
- pushOrderDto.setStartLongitude(xpOrder.getStartLon());
- pushOrderDto.setEndLatitude(xpOrder.getEndLat());
- pushOrderDto.setEndLongitude(xpOrder.getEndLon());
- pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
- pushOrderDto.setOrderType(OrderType.USER_ORDER);
- pushOrderDto.setStage(1);
- // 调用推送服务 orderId + carVin
- orderMissionClient.pushOrder(pushOrderDto);
- log.info("开始推送 {} 订单到XPU。单号 {}", xpOrder.getOrderNumber(), orderNo);
-
redisService.removeByPattern(quoteName,xpOrder.getOrderNumber());
log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
return true;
@@ -1138,25 +1145,30 @@
continue;
}
- // 关闭巡游单子
- R<?> stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vehicleId1.getVehicleVin());
- if (stringR == null || stringR.getCode() != 200) {
- log.info("关闭巡游单子失败 车牌号 {}", vehicleId1.getPlateNumber());
- continue;
+ if(null == vehicleId1.getOfficialPartnerId()){
+ // 关闭巡游单子
+ R<?> stringR = xpCruiseOrderClient.cancelCruiseOrderByVin(vehicleId1.getVehicleVin());
+ if (stringR == null || stringR.getCode() != 200) {
+ log.info("关闭巡游单子失败 车牌号 {}", vehicleId1.getPlateNumber());
+ continue;
+ }
+ log.info("关闭巡游单成功 {} {}", vehicleId1.getPlateNumber(), orderNo);
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setVin(vehiclePosition.getVin());
+ pushOrderDto.setOrderId(xpOrder.getId().toString());
+ pushOrderDto.setStartLatitude(xpOrder.getStartLat());
+ pushOrderDto.setStartLongitude(xpOrder.getStartLon());
+ pushOrderDto.setEndLatitude(xpOrder.getEndLat());
+ pushOrderDto.setEndLongitude(xpOrder.getEndLon());
+ pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
+ pushOrderDto.setOrderType(OrderType.USER_ORDER);
+ pushOrderDto.setStage(1);
+ // 调用推送服务 orderId + carVin
+ orderMissionClient.pushOrder(pushOrderDto);
+ }else {
+ //合作商的车辆需要调用合作商的订单通知接口
+ officialPartnerUtil.pusNewOrder(vehicleId1.getOfficialPartnerId(), xpOrder);
}
- log.info("关闭巡游单成功 {} {}", vehicleId1.getPlateNumber(), orderNo);
- PushOrderDto pushOrderDto = new PushOrderDto();
- pushOrderDto.setVin(vehiclePosition.getVin());
- pushOrderDto.setOrderId(xpOrder.getId().toString());
- pushOrderDto.setStartLatitude(xpOrder.getStartLat());
- pushOrderDto.setStartLongitude(xpOrder.getStartLon());
- pushOrderDto.setEndLatitude(xpOrder.getEndLat());
- pushOrderDto.setEndLongitude(xpOrder.getEndLon());
- pushOrderDto.setEndPoiName(xpOrder.getEndPointName());
- pushOrderDto.setOrderType(OrderType.USER_ORDER);
- pushOrderDto.setStage(1);
- // 调用推送服务 orderId + carVin
- orderMissionClient.pushOrder(pushOrderDto);
log.info("开始推送 {} 订单到XPU", xpOrder.getOrderNumber());
redisService.popFirstElement(quoteName);
log.info("将订单 {} 从队列 {} 弹出去", orderNo, quoteName);
--
Gitblit v1.7.1