From afbd8e340732c17a56693ad425dca59d8a0a8f37 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 30 四月 2026 14:04:05 +0800
Subject: [PATCH] 完善电话脱敏功能

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 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 ea3aff9..7f12a6b 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
@@ -11,6 +11,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.ImmutableMap;
+import com.xiaopeng.api.dto.WeatherDTO;
 import com.xiaopeng.api.dto.account.GetUserCouponDto;
 import com.xiaopeng.api.dto.account.UcUserInfo;
 import com.xiaopeng.api.dto.account.UseUserCouponDto;
@@ -2449,14 +2450,31 @@
                                 // 当前费率+(费率*上升百分比)
                                 priceRate = new BigDecimal(priceRate).multiply(divide).add(new BigDecimal(priceRate)).setScale(2, RoundingMode.HALF_UP).doubleValue();
                             }
+
+                            // 天气预报动态调价
+                            JSONArray ws = jsonObject.getJSONArray("weather");
+                            if(null != ws){
+                                WeatherDTO data = xpMapClient.wether(order.getCityCode()).getData();
+                                List<WeatherDTO.Lives> lives = data.getLives();
+                                if(lives!=null && !lives.isEmpty()){
+                                    String w = lives.get(0).getWeather();
+                                    for (Object o : ws) {
+                                        JSONObject ele = JSONObject.parseObject(o.toString());
+                                        if(w.contains(ele.getString("weatherType"))){
+                                            double floatRate = jsonObject.getDouble("ratio");
+                                            priceRate = new BigDecimal(priceRate).add(new BigDecimal(floatRate)).doubleValue();
+                                            break;
+                                        }
+                                    }
+                                }
+                            }
+
+
                             // 冷却时间
                             Integer time = getOrderNum(jsonObject, 6);
                             // 触发调价了
                             redisService.setCacheObject("USER_DYNAMIC_PRICE_" + order.getCityId() + "_" + uid, priceRate, time.longValue(), TimeUnit.MINUTES);
                         }
-
-                        //天气预报动态调价
-
                     }
                 }
 

--
Gitblit v1.7.1