From 73427c7a74686bd2a16e00c2ac9c28cf1de40c4c Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期日, 01 三月 2026 07:41:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 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 8365f24..ebfdb4b 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.*;
@@ -1051,7 +1052,7 @@
// 消息推送
Map<String, Object> params = new HashMap<>();
Map<String, Object> content = new HashMap<>();
- content.put("orderId", order.getId());
+ content.put("orderId", order.getId().toString());
content.put("status", OrderStatusEnum.CANCELED.getCode());
params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
params.put("content", com.alibaba.fastjson2.JSONObject.toJSONString(content));
@@ -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", JSON.toJSONString(collect));
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