From 7ae343fc7761a3b5535716ff07a82e5d571d60e8 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期二, 27 八月 2024 09:14:44 +0800
Subject: [PATCH] 修改2.0 bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java              |   21 ++++--
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java         |    2 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java          |    2 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java                        |    2 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                |    7 +-
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java  |   12 +++
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                 |   21 +++---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java                   |    2 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java           |    9 ++
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java                 |    3 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java |   13 +++-
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java                  |   17 +++--
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                 |   10 ++
 13 files changed, 76 insertions(+), 45 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
index bc7cd0a..0f77fdc 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
@@ -49,7 +49,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address, String pickUpCode, Integer language, Integer uid) throws Exception;
+    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String pickUpCode, Integer language, Integer uid) throws Exception;
 
 
     /**
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
index ad00677..254ba65 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -18,6 +18,7 @@
 import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
 import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
 import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
+import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
 import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
 import com.stylefeng.guns.modular.system.util.quartz.QuartzUtil;
 import com.stylefeng.guns.modular.system.util.quartz.jobs.OrderTimeOutJob;
@@ -192,9 +193,10 @@
             orderLogistics.setTripId(UUIDUtil.getRandomCode());
         }
         String value = redisUtil.getValue("DRIVER" + driver.getId());
+        String tripId = redisUtil.getValue("trip" + orderLogistics.getUserId());
         if(ToolUtil.isNotEmpty(value)) {
             String[] split = value.split(",");
-            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
             //超时时间
             long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
             orderLogistics.setEstimateArriveTime(new Date(timeOut));
@@ -346,13 +348,18 @@
      * @param state
      * @param lon
      * @param lat
-     * @param address
      * @return
      * @throws Exception
      */
     @Override
-    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address, String pickUpCode, Integer language, Integer uid) throws Exception {
+    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String pickUpCode, Integer language, Integer uid) throws Exception {
         OrderLogistics orderLogistics = this.selectById(orderId);
+        String tripId = redisUtil.getValue("trip" + orderLogistics.getUserId());
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon, tripId);
+        if(null == reverseGeocode){
+            return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
+        }
+        String address = reverseGeocode.getAddress();
         if(!uid.equals(orderLogistics.getDriverId())){
             return ResultUtil.error(language == 1 ? "操作失败,请刷新订单" : language == 2 ? "Operation failed, please refresh the order" : "L’opération a échoué, veuillez actualiser la commande");
         }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
index d98f3ee..6442673 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -74,7 +74,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address,String phone, Integer language, Integer uid) throws Exception;
+    ResultUtil process(Integer orderId, Integer state, Double lon, Double lat,String phone, Integer language, Integer uid) throws Exception;
 
 
     /**
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index cabeeb7..5402770 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -18,6 +18,7 @@
 import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo;
 import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
 import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
+import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
 import com.stylefeng.guns.modular.system.util.quartz.QuartzUtil;
 import com.stylefeng.guns.modular.system.util.quartz.jobs.OrderTimeOutJob;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
@@ -194,6 +195,7 @@
     @Override
     public synchronized ResultUtil grabOrder(Integer orderId, Integer uid, Integer language) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
         //处理摆渡车的情况
         if(orderPrivateCar.getType() == 2){
             //查看用户下的摆渡车是否已被人抢了
@@ -239,7 +241,7 @@
             String value = redisUtil.getValue("DRIVER" + driver.getId());
             if(ToolUtil.isNotEmpty(value)) {
                 String[] split = value.split(",");
-                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                 //超时时间
                 long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                 orderPrivateCar.setEstimateArriveTime(new Date(timeOut));
@@ -471,8 +473,14 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat, String address,String phone, Integer language, Integer uid) throws Exception {
+    public ResultUtil process(Integer orderId, Integer state, Double lon, Double lat,String phone, Integer language, Integer uid) throws Exception {
         OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon, tripId);
+        if(null == reverseGeocode){
+            return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
+        }
+        String address = reverseGeocode.getAddress();
         if(!uid.equals(orderPrivateCar.getDriverId())){
             return ResultUtil.error(language == 1 ? "操作失败,请刷新订单" : language == 2 ? "Operation failed, please refresh the order" : "L’opération a échoué, veuillez actualiser la commande");
         }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java
index bef0100..afcba89 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java
@@ -15,7 +15,7 @@
      * @throws Exception
      */
     Company query(String lon, String lat) throws Exception;
-    Company query1(String lon, String lat) throws Exception;
+    Company query1(Integer uid, String lon, String lat) throws Exception;
 
 
     /**
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
index c9b3136..8d04e3d 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
@@ -436,5 +436,5 @@
      * @return
      * @throws Exception
      */
-    List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception;
+    List<Driver> queryIdleDriver(Integer userId, Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception;
 }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java
index ca19a16..806e14c 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java
@@ -13,6 +13,7 @@
 import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo;
 import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil;
 import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -34,6 +35,9 @@
     
     @Autowired
     private ICityService cityService;
+    
+    @Resource
+    private RedisUtil redisUtil;
 
 
     /**
@@ -52,8 +56,9 @@
     }
     
     @Override
-    public Company query1(String lon, String lat) throws Exception {
-        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(lat), Double.valueOf(lon));
+    public Company query1(Integer uid, String lon, String lat) throws Exception {
+        String tripId = redisUtil.getValue("trip" + uid);
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(lat), Double.valueOf(lon), tripId);
         if(null == reverseGeocode){
             return null;
         }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 1de4706..6b4e0a7 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -1031,7 +1031,7 @@
      */
     @Override
     public Map<String, Object> queryPhone(Double lat, Double lnt) throws Exception {
-        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt);
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, null);
         if(null == reverseGeocode){
             System.err.println("获取地址异常");
             return null;
@@ -3189,13 +3189,14 @@
      * @throws Exception
      */
     @Override
-    public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
+    public List<Driver> queryIdleDriver(Integer userId, Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
         List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
+        String tripId = redisUtil.getValue("trip" + userId);
         List<Driver> list = new ArrayList<>();
         for(Driver driver : drivers){
             String value = redisUtil.getValue("DRIVER" + driver.getId());
             if(ToolUtil.isNotEmpty(value)){
-                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]));
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]), tripId);
                 if(null != distancematrix){
                     if(distancematrix.getDistance() < (distance * 1000)){
                         list.add(driver);
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index df60022..47255f2 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -262,11 +262,13 @@
         switch (orderType){
             case 1://专车
                 map = orderPrivateCarService.queryPushOrder(orderId, language);
-                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
+                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                String tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId);
                 map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
 
                 //总距离
-                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()));
+                distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId);
                 map.put("totalDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0);
 
                 Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource")));
@@ -371,11 +373,13 @@
                 break;
             case 4://市内小件物流
                 map = orderLogisticsService.queryPushOrder(orderId, language);
-                DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon));
+                OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+                String tripId1 = redisUtil.getValue("trip" + orderLogistics.getUserId());
+                DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon), tripId1);
                 map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
 
                 //总距离
-                distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()));
+                distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(map.get("endLat").toString()), Double.valueOf(map.get("endLon").toString()), tripId1);
                 map.put("totalDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0);
 
                 Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource")));
@@ -568,20 +572,15 @@
      */
     @Override
     public ResultUtil process(Integer orderId, Integer orderType, Integer state, Integer uid, Double lon, Double lat,String phone, String pickUpCode, Integer language) throws Exception {
-        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lon);
-        if(null == reverseGeocode){
-            return ResultUtil.error(language == 1 ? "无效的经纬度" : language == 2 ? "Invalid longitude and latitude" : "Longitude et latitude non valides");
-        }
-        String address = reverseGeocode.getAddress();
         switch (orderType){
             case 1://专车
-                return orderPrivateCarService.process(orderId, state, lon, lat, address, phone, language, uid);
+                return orderPrivateCarService.process(orderId, state, lon, lat, phone, language, uid);
             case 2://出租
 //                return orderTaxiService.process(orderId, state, lon, lat, address);
             case 3://城际
 //                return orderCrossCityService.process(orderId, state, lon, lat, address);
             case 4://同城小件
-                return orderLogisticsService.process(orderId, state, lon, lat, address, pickUpCode, language, uid);
+                return orderLogisticsService.process(orderId, state, lon, lat, pickUpCode, language, uid);
             case 5://跨城小件
 //                return orderLogisticsService.process(orderId, state, lon, lat, address);
             case 6:
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
index 77dd8e0..a3ccf8f 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
@@ -52,13 +52,12 @@
 
     /**
      * 获取客服电话(个人中心)
-     * @param code
      * @return
      * @throws Exception
      */
     @Override
     public Map<String, Object> queryCustomerPhone(Double lat, Double lnt) throws Exception {
-        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat);
+        ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lat, null);
         if(null == reverseGeocode){
             System.err.println("获取地图信息出错");
             return new HashMap<>();
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index acc5b13..feb3c96 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -159,7 +159,7 @@
         reassign.setInsertTime(new Date());
         reassign.setState(2);
         this.insert(reassign);
-
+        String tripId = "";
         //修改改派通知状态
         switch (reassign.getOrderType()){
             case 1:
@@ -168,6 +168,7 @@
                 orderPrivateCar.setState(11);
                 orderPrivateCar.setReassignNotice(2);
                 orderPrivateCarService.updateById(orderPrivateCar);
+                tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
                 break;
             case 2:
                 OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
@@ -175,6 +176,7 @@
                 orderTaxi.setState(11);
                 orderTaxi.setReassignNotice(2);
                 orderTaxiService.updateById(orderTaxi);
+                tripId = redisUtil.getValue("trip" + orderTaxi.getUserId());
                 break;
             case 4:
                 OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId());
@@ -182,6 +184,7 @@
                 orderLogistics.setState(11);
                 orderLogistics.setReassignNotice(2);
                 orderLogisticsService.updateById(orderLogistics);
+                tripId = redisUtil.getValue("trip" + orderLogistics.getUserId());
                 break;
             case 5:
                 OrderLogistics orderLogistics1 = orderLogisticsService.selectById(reassign.getOrderId());
@@ -189,20 +192,22 @@
                 orderLogistics1.setState(11);
                 orderLogistics1.setReassignNotice(2);
                 orderLogisticsService.updateById(orderLogistics1);
+                tripId = redisUtil.getValue("trip" + orderLogistics1.getUserId());
                 break;
         }
         systemNoticeService.addSystemNotice(2, language == 1 ? "您的改派申请已成功提交,我们会尽快为你处理!" : language == 2 ?
                 "Your request for reassignment was submitted, we shall handle it for you as soon as possible." :
                 "Votre demande de réaffectation a été soumise. Nous la traiterons pour vous dans les plus brefs délais.", uid);
-
+    
+        
         //开始自动完成改派
         switch (reassign.getOrderType()){
             case 1:
                 OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId());
-                Company company = companyCityService.query1(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
+                Company company = companyCityService.query1(orderPrivateCar.getUserId(), String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
                 PushOrder pushOrder = pushOrderService.querys(1, 1, company.getId()).get(0);
                 //获取空闲司机
-                List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                List<Driver> list = driverService.queryIdleDriver(orderPrivateCar.getUserId(), 1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
                 System.err.println("【" + orderPrivateCar.getId() + "】空闲司机:" + JSON.toJSONString(list));
                 if(list.size() > 0){
                     String text = "";
@@ -265,7 +270,7 @@
                         String value = redisUtil.getValue("DRIVER" + driver1.getId());
                         if(ToolUtil.isNotEmpty(value)) {
                             String[] split = value.split(",");
-                            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+                            DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderPrivateCar.getStartLat(), orderPrivateCar.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                             //超时时间
                             long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                             orderPrivateCar.setEstimateArriveTime(new Date(timeOut));
@@ -451,10 +456,10 @@
                 break;
             case 4:
                 OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId());
-                Company company1 = companyCityService.query1(String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
+                Company company1 = companyCityService.query1(orderLogistics.getUserId(), String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
                 PushOrder pushOrder1 = pushOrderService.querys(1, 1, company1.getId()).get(0);
                 //获取空闲司机
-                List<Driver> list1 = driverService.queryIdleDriver(orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder1.getPushDistance(), null);//所有附近空闲司机
+                List<Driver> list1 = driverService.queryIdleDriver(orderLogistics.getUserId(), orderLogistics.getType(), orderLogistics.getServerCarModelId(), orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder1.getPushDistance(), null);//所有附近空闲司机
                 System.err.println("【" + orderLogistics.getId() + "】空闲司机:" + JSON.toJSONString(list1));
                 if(list1.size() > 0){
                     Driver driver1 = list1.get(0);
@@ -515,7 +520,7 @@
                     String value = redisUtil.getValue("DRIVER" + driver1.getId());
                     if(ToolUtil.isNotEmpty(value)) {
                         String[] split = value.split(",");
-                        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]));
+                        DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(orderLogistics.getStartLat(), orderLogistics.getStartLon(), Double.valueOf(split[1]), Double.valueOf(split[0]), tripId);
                         //超时时间
                         long timeOut = System.currentTimeMillis() + (distancematrix.getDuration() * 1000);
                         orderLogistics.setEstimateArriveTime(new Date(timeOut));
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
index 72c49d9..c9c45a9 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/GoogleMapUtil.java
@@ -4,6 +4,7 @@
 import com.google.gson.GsonBuilder;
 import com.google.maps.*;
 import com.google.maps.model.*;
+import com.stylefeng.guns.core.util.ToolUtil;
 
 /**
  * 谷歌地图工具类
@@ -46,11 +47,14 @@
      * @return
      * @throws Exception
      */
-    public static ReverseGeocodeVo getReverseGeocode(double lat, double lng) throws Exception{
+    public static ReverseGeocodeVo getReverseGeocode(double lat, double lng, String tripId) throws Exception{
         GeoApiContext context = new GeoApiContext.Builder()
                 .apiKey(key)
                 .build();
         GeocodingApiRequest request = GeocodingApi.reverseGeocode(context, new LatLng(lat, lng));
+        if(ToolUtil.isNotEmpty(tripId)){
+            request.header("X-Goog-Maps-Experience-ID", tripId);//行程id
+        }
         GeocodingResult[] results = request.await();
         ReverseGeocodeVo vo = null;
         if(results.length > 0){
@@ -179,7 +183,7 @@
      * @return
      * @throws Exception
      */
-    public static DistancematrixVo getDistancematrix(Double sLat, Double sLnt, Double eLat, Double eLnt) throws Exception{
+    public static DistancematrixVo getDistancematrix(Double sLat, Double sLnt, Double eLat, Double eLnt, String tripId) throws Exception{
         GeoApiContext context = new GeoApiContext.Builder()
                 .apiKey(key)
                 .build();
@@ -187,6 +191,9 @@
         request.origins(new LatLng(sLat, sLnt));
         request.destinations(new LatLng(eLat, eLnt));
         request.mode(TravelMode.DRIVING);//出行方式(驾车)
+        if(ToolUtil.isNotEmpty(tripId)){
+            request.header("X-Goog-Maps-Experience-ID", tripId);//行程id
+        }
         DistanceMatrix distanceMatrix = request.await();
         Gson gson = new GsonBuilder().setPrettyPrinting().create();
         System.out.println(gson.toJson(distanceMatrix));
@@ -227,12 +234,6 @@
 
 
 
-    public static void main(String[] ages){
-        try {
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
 
 
 
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index 704a15a..a44e21b 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -245,9 +245,11 @@
         Integer oldState = 0;
         Long startServiceTime = null;
         Double servedMileage = null;
+        String tripId = "";
         switch (orderType){
             case 1:
                 OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                tripId = redisUtil.getValue("trip" + orderPrivateCar.getUserId());
                 if(orderPrivateCar == null){
                     this.removeTask(orderId, orderType);
                 }else{
@@ -262,6 +264,7 @@
                 break;
             case 2:
                 OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                tripId = redisUtil.getValue("trip" + orderTaxi.getUserId());
                 if(orderTaxi == null){
                     this.removeTask(orderId, orderType);
                 }else{
@@ -276,6 +279,7 @@
                 break;
             case 3:
                 OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                tripId = redisUtil.getValue("trip" + orderCrossCity.getUserId());
                 if(orderCrossCity == null){
                     this.removeTask(orderId, orderType);
                 }else{
@@ -289,6 +293,7 @@
                 break;
             case 4:
                 OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+                tripId = redisUtil.getValue("trip" + orderLogistics.getUserId());
                 if(orderLogistics == null){
                     this.removeTask(orderId, orderType);
                 }else{
@@ -302,6 +307,7 @@
                 break;
             case 5:
                 OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
+                tripId = redisUtil.getValue("trip" + orderLogistics1.getUserId());
                 if(orderLogistics1 == null){
                     this.removeTask(orderId, orderType);
                 }else{
@@ -340,7 +346,7 @@
             if(ToolUtil.isNotEmpty(value) && ToolUtil.isNotEmpty(startLonLat)){
                 String[] split = value.split(",");
                 String[] split1 = startLonLat.split(",");
-                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0]));
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0]), tripId);
                 if(null == distancematrix){
                     System.err.println("地图获取距离出错");
                 }else{
@@ -369,7 +375,7 @@
             if(ToolUtil.isNotEmpty(value) && ToolUtil.isNotEmpty(endLonLat)){
                 String[] split = value.split(",");
                 String[] split1 = endLonLat.split(",");
-                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0]));
+                DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(split[1]), Double.valueOf(split[0]), Double.valueOf(split1[1]), Double.valueOf(split1[0]), tripId);
                 if(null == distancematrix){
                     System.err.println("地图获取距离出错");
                 }else{

--
Gitblit v1.7.1