From 1d8fa38794d80659dd263085198fd0e0f9a2cec7 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 13 二月 2026 21:23:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 73 ++++++++++++++++++++++++------------
1 files changed, 49 insertions(+), 24 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 cbf7ba7..fbe1452 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
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.ImmutableMap;
import com.xiaopeng.api.dto.account.GetUserCouponDto;
+import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.dto.order.GetOrderNumDto;
import com.xiaopeng.api.dto.order.HistoryEndPointsDto;
@@ -20,6 +21,7 @@
import com.xiaopeng.api.dto.vehicleConvoy.BaseVehicleUserDto;
import com.xiaopeng.api.feignClient.account.XpAppUserClient;
import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
+import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
import com.xiaopeng.api.feignClient.operation.XpPointClient;
import com.xiaopeng.api.feignClient.operation.XpPricingClient;
import com.xiaopeng.api.feignClient.operation.XpSystemSettingClient;
@@ -40,7 +42,9 @@
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.account.UserCouponVo;
+import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudOrderOperation.OrderOperationType;
import com.xiaopeng.api.vo.order.*;
+import com.xiaopeng.api.vo.vehicleConvoy.AddTaxiPassengerVo;
import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo;
import com.xiaopeng.common.core.constant.CacheConstants;
import com.xiaopeng.common.core.domain.R;
@@ -127,6 +131,7 @@
private final XpSystemSettingClient xpSystemSettingClient;
private final OrderTrajectoryService orderTrajectoryService;
private final XpPushMessageClient xpPushMessageClient;
+ private final OrderMissionClient orderMissionClient;
@Autowired
private MongoTemplate mongoTemplate;
@@ -726,7 +731,6 @@
// TODO 加配置文件取
cancelTaxiPassengerVo.setAppId("");
-
BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
if (baseVehicleUserDto.getCode() != 200) {
throw new RuntimeException("取消订单失败");
@@ -749,6 +753,13 @@
Integer i = Integer.valueOf(cacheObject.toString());
redisService.setCacheCancelOrder("CANCEL_ORDER_" + uid, i + 1);
}
+
+ // 下发命令
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setOrderId(order.getId());
+ pushOrderDto.setVin(xpVehicle.getVehicleVin());
+ pushOrderDto.setOperation_type(OrderOperationType.VEHICLE_CANCEL_ORDER);
+ orderMissionClient.cancelOrder(pushOrderDto);
}
@Override
@@ -769,7 +780,10 @@
xpOrderCancelService.save(xpOrderCancel);
- // 推送消息
+ R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId());
+ XpVehicle xpVehicle = xpVehicleR.getData();
+
+
// 消息推送
Map<String, Object> params = new HashMap<>();
Map<String, Object> content = new HashMap<>();
@@ -784,6 +798,13 @@
sendMessageDTO.setAppUserId(String.valueOf(order.getAppUserId()));
xpPushMessageClient.sendStatus(sendMessageDTO);
log.info("订单取消消息推送完毕");
+
+ // 下发命令
+ PushOrderDto pushOrderDto = new PushOrderDto();
+ pushOrderDto.setOrderId(order.getId());
+ pushOrderDto.setVin(xpVehicle.getVehicleVin());
+ pushOrderDto.setOperation_type(OrderOperationType.CLOUD_CANCEL_ORDER);
+ orderMissionClient.cancelOrder(pushOrderDto);
}
/**
@@ -817,6 +838,7 @@
evaluate.setFeedbackContent(dto.getFeedbackContent());
evaluate.setFeedbackPictures(dto.getFeedbackPictures());
evaluate.setFeedbackTypeId(dto.getFeedbackTypeId());
+ evaluate.setCreateTime(LocalDateTime.now());
xpOrderEvaluateService.save(evaluate);
}
@@ -1743,8 +1765,11 @@
orderDetailVo.setFeedbackPictures(evaluate.getFeedbackPictures());
orderDetailVo.setFeedbackContent(evaluate.getFeedbackContent());
orderDetailVo.setOrderRating(evaluate.getOrderRating());
- XpFeedbackType feedbackType = xpSystemSettingClient.getFeedbackTypeById(evaluate.getFeedbackTypeId()).getData();
- orderDetailVo.setFeedbackTypeName(feedbackType.getFeedbackType());
+ if(evaluate.getFeedbackTypeId()!=null){
+ XpFeedbackType feedbackType = xpSystemSettingClient.getFeedbackTypeById(evaluate.getFeedbackTypeId()).getData();
+ orderDetailVo.setFeedbackTypeName(feedbackType.getFeedbackType());
+ }
+
}
List<OrderTrajectory> trajectories = mongoTemplate.find(
new Query(Criteria.where("orderId").is(orderId))
@@ -1776,35 +1801,35 @@
@Transactional
// @ShardingTransactionType(TransactionType.BASE)
public void popOrder(PopOrderDto dto) {
-
XpOrder order = this.getById(dto.getOrderId());
order.setAcceptanceTime(LocalDateTime.now());
-
+ AddTaxiPassengerVo addTaxiPassengerVo = new AddTaxiPassengerVo();
R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin());
if (byVehicleVin.getCode() == 200) {
order.setVehicleId(byVehicleVin.getData().getId());
+ addTaxiPassengerVo.setVin(byVehicleVin.getData().getVehicleVin());
}
order.setStatus(2);
- // Redis弹出这个队列元素
- // value 订单Id_经纬度_状态_用户id_订单编号_距离_时间
- String popFirstElement = redisService.popFirstElement(order.getQueueName());
- XpGeoQueryEntity xpGeoQueryEntity = new XpGeoQueryEntity();
- String[] split = popFirstElement.split("_");
- xpGeoQueryEntity.setOrderId(split[0]);
- String[] split1 = split[1].split(",");
- xpGeoQueryEntity.setLocation(new GeoJsonPoint(Double.parseDouble(split1[0]), Double.parseDouble(split1[1])));
- xpGeoQueryEntity.setTimestamp(new Date());
- // 计算2个时间的秒数
- LocalDateTime createTime = order.getCreateTime();
- LocalDateTime acceptanceTime = order.getAcceptanceTime();
- xpGeoQueryEntity.setSeconds((int) Duration.between(createTime, acceptanceTime).getSeconds());
- String currentTimeSlot = DateUtils.getCurrentTimeSlot();
- xpGeoQueryEntity.setTime(currentTimeSlot);
- // 存mongo数据
- xpPricingClient.saveXpGeoQueryEntity(xpGeoQueryEntity);
- this.updateById(order);
+ addTaxiPassengerVo.setUid(order.getAppUserId().toString());
+ addTaxiPassengerVo.setOrderNo(order.getOrderNumber());
+ // TODO appid
+ addTaxiPassengerVo.setAppId("");
+ BaseVehicleUserDto baseVehicleUserDto = userVehicleClient.addTaxiPassenger(addTaxiPassengerVo);
+ if(baseVehicleUserDto.getCode()==200){
+
+ // Redis弹出这个队列元素
+ // value 订单Id_经纬度_状态_用户id_订单编号_距离_时间
+ String popFirstElement = redisService.popFirstElement(order.getQueueName());
+ XpGeoQueryEntity xpGeoQueryEntity = new XpGeoQueryEntity();
+ String[] split = popFirstElement.split("_");
+ xpGeoQueryEntity.setOrderId(split[0]);
+ // 存mongo数据
+ xpPricingClient.updateXpGeoQueryEntity(split[0]);
+ this.updateById(order);
+
+ }
}
--
Gitblit v1.7.1