xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/order/XpOrderClientFallbackFactory.java
@@ -82,6 +82,12 @@ log.error("订单出队失败,原因: {}", cause.getMessage()); return R.fail(); } @Override public R<?> updateOrder(XpOrder xpOrder) { log.error("更新订单失败,原因: {}", cause.getMessage()); return R.fail(); } }; } } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/order/XpOrderClient.java
@@ -91,4 +91,12 @@ @PostMapping("/inner/order/popOrder") R<?> popOrder(@RequestBody PopOrderDto dto); /** * 修改订单信息 * * @param xpOrder 订单信息 */ @PostMapping("/inner/order/updateOrder") R<?> updateOrder(@RequestBody XpOrder xpOrder); } xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/XpOrder.java
@@ -207,4 +207,8 @@ @ApiModelProperty(value = "行程结束时间") private LocalDateTime tripEnd; @ApiModelProperty(value = "队列名称") @TableField("queue_name") private String queueName; } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java
@@ -514,12 +514,17 @@ // 尾部 redisService.addToTail(s, orderId + "_" + xpPoint.getPointLon() + "," + xpPoint.getPointLat() + "_0" + "_" + uid + "_" + xpOrder.getOrderNumber() + "_" + distance + "_" + duration + "_" + routeAndFareDto.getRoutePlanRule()); } xpOrder.setQueueName(s); xpOrderClient.updateOrder(xpOrder); return orderId; } } String key = CacheConstants.QUEUE_POINT_ID + "-" + xpPoint.getId() + "-" + xpPoint.getPointLon() + "," + xpPoint.getPointLat(); redisService.setCacheList(key, Arrays.asList(orderId + "_" + xpPoint.getPointLon() + "," + xpPoint.getPointLat() + "_0" + "_" + uid + "_" + xpOrder.getOrderNumber() + "_" + distance + "_" + duration + "_" + routeAndFareDto.getRoutePlanRule())); xpOrder.setQueueName(key); xpOrderClient.updateOrder(xpOrder); return orderId; // xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -128,6 +128,16 @@ return R.ok(); } /** * 修改订单信息 * * @param xpOrder 订单信息 */ @PostMapping("/inner/order/updateOrder") public R<?> updateOrder(@RequestBody XpOrder xpOrder){ return xpOrderService.updateById(xpOrder)?R.ok():R.fail(); } /** * 新增订单 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -1687,12 +1687,16 @@ XpOrder order = this.getById(dto.getOrderId()); order.setAcceptanceTime(LocalDateTime.now()); order.setVehicleId(dto.getXpVehicleId()); R<XpVehicle> byVehicleVin = xpVehicleClient.findByVehicleVin(dto.getXpVehicleVin()); if (byVehicleVin.getCode()==200){ order.setVehicleId(byVehicleVin.getData().getId()); } order.setStatus(2); // Redis弹出这个队列元素 // value 订单Id_经纬度_状态_用户id_订单编号_距离_时间 String popFirstElement = redisService.popFirstElement(dto.getQueueName()); String popFirstElement = redisService.popFirstElement(order.getQueueName()); XpGeoQueryEntity xpGeoQueryEntity = new XpGeoQueryEntity(); String[] split = popFirstElement.split("_"); xpGeoQueryEntity.setOrderId(split[0]);