From 65dcb2917a3b68e19351878e1d93f0b0ecb83cb5 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 13 二月 2026 16:49:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 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 fdfcb4d..9fd1e5f 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
@@ -12,6 +12,7 @@
import com.xiaopeng.api.dto.order.GetOrderNumDto;
import com.xiaopeng.api.dto.order.HistoryEndPointsDto;
import com.xiaopeng.api.dto.order.HistoryStartPointsDto;
+import com.xiaopeng.api.dto.order.PopOrderDto;
import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
import com.xiaopeng.api.dto.statistics.DailyCountDTO;
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
@@ -28,6 +29,7 @@
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.account.XpAppUser;
+import com.xiaopeng.api.model.operation.XpGeoQueryEntity;
import com.xiaopeng.api.model.operation.XpFeedbackType;
import com.xiaopeng.api.model.operation.XpPoint;
import com.xiaopeng.api.model.order.XpOrder;
@@ -74,11 +76,13 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
@@ -1639,6 +1643,42 @@
/**
+ * 成功操作下发命令后调用 用于弹出redis队列的获取成功的数据
+ * @param dto
+ */
+ @Override
+ @Transactional
+// @ShardingTransactionType(TransactionType.BASE)
+ public void popOrder(PopOrderDto dto) {
+
+ XpOrder order = this.getById(dto.getOrderId());
+ order.setAcceptanceTime(LocalDateTime.now());
+ order.setVehicleId(dto.getXpVehicleId());
+ order.setStatus(2);
+
+ // Redis弹出这个队列元素
+ // value 订单Id_经纬度_状态_用户id_订单编号_距离_时间
+ String popFirstElement = redisService.popFirstElement(dto.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);
+
+ }
+
+
+ /**
* 获取当前用户正在执行的订单
*
* @param uid
--
Gitblit v1.7.1