From 7f007d0f4d74e298ed914b309e3f10314dd090a6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 01 三月 2026 04:54:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 23 ++++++++++++++---------
1 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index f2c65df..1122483 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -51,6 +51,7 @@
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.account.GetUserListByUidsVo;
import com.xiaopeng.api.vo.account.UserCouponVo;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudOrderOperation.OrderOperationType;
import com.xiaopeng.api.vo.operation.RouteVo;
import com.xiaopeng.api.vo.order.*;
@@ -1987,8 +1988,9 @@
//乘客单处理逻辑
if(OrderType.USER_ORDER.equals(orderType)){
XpOrder order = this.getById(orderId);
+ Long appUserId = order.getAppUserId();
//订单为待接单状态
- if(order.getStatus() == 1){
+ if(order.getStatus() < 4){
AddTaxiPassengerVo addTaxiPassengerVo = new AddTaxiPassengerVo();
order.setAcceptanceTime(LocalDateTime.now());
R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin());
@@ -2008,8 +2010,7 @@
String[] split = popFirstElement.split("_");
xpGeoQueryEntity.setOrderId(split[0]);
// 存mongo数据
- xpPricingClient.updateXpGeoQueryEntity(split[0]);
- order.setAppUserId(null);
+ xpPricingClient.updateXpGeoQueryEntity(order.getId().toString());
// 修改车辆信息
@@ -2017,18 +2018,19 @@
xpVehicleClient.updateVehicleById(vehicle);
//绑定用户和车辆关系
- addTaxiPassengerVo.setUid(order.getAppUserId().toString());
+ addTaxiPassengerVo.setUid(appUserId.toString());
+ order.setAppUserId(null);
this.updateById(order);
addTaxiPassengerVo.setOrderNo(order.getOrderNumber());
// TODO appid
addTaxiPassengerVo.setAppId("");
userVehicleClient.addTaxiPassenger(addTaxiPassengerVo);
//推送乘客车辆到达预约点的导航数据
- sendRoute(order.getAppUserId().toString(), orderId, "ORDER_NAVIGATION_START_DATA");
+ sendRoute(addTaxiPassengerVo.getUid(), orderId, "ORDER_NAVIGATION_START_DATA", dto.getXpVehicleVin());
}else{
//推送行起点到终点的驶轨迹给乘客端
- sendRoute(order.getAppUserId().toString(), orderId, "ORDER_NAVIGATION_END_DATA");
+ sendRoute(appUserId.toString(), orderId, "ORDER_NAVIGATION_END_DATA", dto.getXpVehicleVin());
}
}
}
@@ -2039,7 +2041,8 @@
* @param appUserId
* @param keyStr
*/
- public void sendRoute(String appUserId, Long orderId, String keyStr){
+ public void sendRoute(String appUserId, Long orderId, String keyStr, String vin){
+ VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(vin)), VehiclePosition.class);
Object cacheObject = redisService.getCacheObject(keyStr + ":" + appUserId);
if(null != cacheObject){
RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
@@ -2047,8 +2050,9 @@
jsonObject.put("type", "ORDER_ROUTE");
jsonObject.put("timestamp", System.currentTimeMillis());
JSONObject content = new JSONObject();
- content.put("orderId", orderId);
+ content.put("orderId", orderId.toString());
content.put("routeType", "ORDER_NAVIGATION_START_DATA".equals(keyStr) ? 1 : 2);
+ content.put("direction", null != vehiclePosition ? vehiclePosition.getCourse() : 90);
JSONObject route = new JSONObject();
route.put("distance", routeVo.getDistance());
route.put("duration", routeVo.getDuration());
@@ -2061,12 +2065,13 @@
return point;
}).collect(Collectors.toList());
- route.put("polyline", collect);
+ route.put("polyline", collect.toArray());
content.put("route", route.toJSONString());
jsonObject.put("content", content.toJSONString());
SendMessageDTO messageDTO = new SendMessageDTO();
messageDTO.setAppUserId(appUserId);
messageDTO.setMessage(jsonObject.toJSONString());
+ System.err.println(messageDTO);
xpPushMessageClient.sendRoute(messageDTO);
}
}
--
Gitblit v1.7.1