From 1a787ef055b0928a4dad02fc81e737e21965f70d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 23 四月 2026 22:29:50 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java |   73 +++++++++++++++++++++++++++++++-----
 1 files changed, 63 insertions(+), 10 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java
index acb08bc..f0bdca0 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java
@@ -1,17 +1,27 @@
 package com.xiaopeng.order.service;
 
+import cn.hutool.core.util.StrUtil;
 import com.xiaopeng.api.feignClient.operation.XpPricingClient;
+import com.xiaopeng.api.feignClient.pushMessage.SubscribeMessageClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
 import com.xiaopeng.api.model.operation.XpPricing;
 import com.xiaopeng.api.model.order.XpOrder;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.pushMessage.SendSubscribeMessageVo;
 import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.core.enums.MessageTemplateEnum;
+import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.common.core.exception.ServiceException;
+import com.xiaopeng.common.redis.service.RedisService;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 @Service
 public class BootCommonService   {
@@ -23,7 +33,12 @@
     @Resource
     @Lazy
     private IXpOrderService xpOrderService;
-//    @Override
+    @Resource
+    private  RedisService redisService;
+    @Resource
+    private SubscribeMessageClient subscribeMessageClient;
+
+
     public XpOrder getXpOrder(Long orderId) {
 
         XpOrder xpOrder = xpOrderService.getById(orderId);
@@ -32,7 +47,6 @@
         }
         return xpOrder;
     }
-//    @Override
     public XpVehicle getXpVehicle(Long vehicleId) {
 
         R<XpVehicle>  xpVehicleR = xpVehicleClient.queryById(vehicleId);
@@ -41,7 +55,6 @@
         }
         return xpVehicleR.getData();
     }
-//    @Override
     public String getVehicleModelId(Long orderId) {
         if(orderId!= null){
             XpOrder xpOrder = getXpOrder(orderId);
@@ -51,7 +64,6 @@
         return null;
     }
 
-//    @Override
     public XpPricing getPricingByCid(Long cityId, String vehicleModelId) {
         R<XpPricing> xpPricingR = xpPricingClient.getPricingByCid(cityId,vehicleModelId);
         if (xpPricingR.getCode() != R.SUCCESS || xpPricingR.getData() == null) {
@@ -60,8 +72,6 @@
         }
         return xpPricingR.getData();
     }
-
-//    @Override
     public XpPricing getXpPricing(Long orderId) {
         if(orderId != null){
             XpOrder xpOrder = getXpOrder(orderId);
@@ -69,8 +79,6 @@
         }
         return null;
     }
-
-//    @Override
     public XpPricing getXpPricing(Long cityId, Long vehicleId) {
         String vehicleModelId = null;
         if(vehicleId != null){
@@ -79,8 +87,6 @@
         }
         return getPricingByCid(cityId, vehicleModelId);
     }
-
-//    @Override
     public XpPricing getXpPricing(Long cityId, Long orderId, Long vehicleId) {
         String vehicleModelId = null;
         if(vehicleId != null ){
@@ -96,6 +102,53 @@
     }
 
 
+    /**
+     * 设置缓存订单状态
+     * 并发送微信通知
+     * @param xpOrderId 订单id
+     * @param order OrderStatusEnum 订单状态
+     *  oldStatus 订单旧状态
+     */
+    public void setCache_orderStatus(Long xpOrderId, XpOrder order ,OrderStatusEnum status) {
+        if(order == null){
+            order = xpOrderService.getById(xpOrderId);
+        }
+        redisService.setCacheObject("ORDER_STATUS:" + xpOrderId, status.getCode(), 24L, TimeUnit.HOURS);
+
+        SendSubscribeMessageVo vo = new SendSubscribeMessageVo();
+        vo.setUserId(order.getAppUserId());
+        String json = null;
+        if(order.getStatus() == OrderStatusEnum.PENDING_ORDER.getCode()){
+            String plateNumber = null;
+                // 查询车辆
+            XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData();
+            if(xpVehicle != null){
+                plateNumber = xpVehicle.getPlateNumber();
+            }
+            if(StrUtil.isNotBlank(plateNumber)){
+                vo.setTemplateId(MessageTemplateEnum.E.getTemplateId());
+                json = MessageTemplateEnum.E.getRemarks();
+                json = json.replace("车牌号", plateNumber);
+                json = json.replace("报警时间", LocalDateTime.now().toString());
+            }
+        }else{
+
+            vo.setTemplateId(MessageTemplateEnum.A.getTemplateId());
+            json = MessageTemplateEnum.A.getRemarks();
+            json = json.replace("订单编号", order.getOrderNumber());
+            json = json.replace("订单状态", status.getDesc() );
+            json = json.replace("订单状态", OrderStatusEnum.getDescByCode(order.getStatus()));
+            json = json.replace("备注", "");
+            json = json.replace("时间", LocalDateTime.now().toString());
+            vo.setPage("");
+        }
+        if(StrUtil.isNotBlank(json)){
+            vo.setJson(json);
+            subscribeMessageClient.sendSubscribeMessage(vo);
+        }
+
+    }
+
 
 
 }

--
Gitblit v1.7.1