Pu Zhibing
2025-04-02 d36376f732544c5ecfb59eff3eea8ab087d1a1f4
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -11,6 +11,8 @@
import com.google.fleetengine.auth.token.TripClaims;
import com.google.fleetengine.auth.token.VehicleClaims;
import com.google.fleetengine.auth.token.factory.signer.*;
import com.stylefeng.guns.modular.system.model.OrderTracks;
import com.stylefeng.guns.modular.system.service.IOrderTracksService;
import com.stylefeng.guns.modular.system.util.RedisUtil;
import com.stylefeng.guns.modular.system.util.UUIDUtil;
import lombok.extern.slf4j.Slf4j;
@@ -78,6 +80,9 @@
   
   @Autowired
   private RedisUtil redisUtil;
   @Autowired
   private IOrderTracksService orderTracksService;
   
   
   
@@ -631,7 +636,7 @@
    * @param end_lng 终点经度
    * @return
    */
   public boolean updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
   public boolean updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng, Integer orderId, Integer orderType) {
      String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId + "?updateMask=";
      List<String> sb = new ArrayList<>();
      if(StringUtils.hasLength(vehicleId)){
@@ -709,12 +714,12 @@
            String status = error.getString("status");
            if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
               redisUtil.remove("google_token");
               return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
               return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng, orderId, orderType);
            }
            String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
            if(reason.equals("ACCESS_TOKEN_EXPIRED")){
               redisUtil.remove("google_token");
               return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
               return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng, orderId, orderType);
            }
         }
         if(code == 404){
@@ -722,6 +727,13 @@
         }
         logger.error("修改行程异常:  tripId={}  body={}", tripId, response.body());
         return false;
      }else{
         if("ENROUTE_TO_DROPOFF".equals(tripStatus)){
            OrderTracks orderTracks = new OrderTracks();
            orderTracks.setId(orderId);
            orderTracks.setOrderType(orderType);
            orderTracksService.insert(orderTracks);
         }
      }
      /**
       * 返回结果
@@ -1128,5 +1140,4 @@
//      }
      return true;
   }
}