From 8b09fbc19a96b57bf1d0e4d7c79b51a76aeca554 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 28 三月 2025 19:57:56 +0800
Subject: [PATCH] 修改bug

---
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java |  149 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 144 insertions(+), 5 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index fdc3d8c..5ca72fb 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -449,7 +449,7 @@
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public boolean createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
+	public JSONObject createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) {
 		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
@@ -478,7 +478,7 @@
 		end_point.put("longitude", end_lng);
 		dropoffPoint.put("point", end_point);
 		body.put("dropoffPoint", dropoffPoint);
-		logger.info("创建行程请求:{}", body.toJSONString());
+		logger.info("创建行程请求:{}  {}", tripId, body.toJSONString());
 		HttpRequest request = post.body(body.toJSONString());
 		HttpResponse response = request.execute();
 		logger.info("创建行程结果:{}", response.body());
@@ -499,7 +499,6 @@
 				}
 			}
 			logger.error("创建行程异常:  tripId={}  body={}", tripId, response.body());
-			return false;
 		}
 		/**
 		 * 返回结果
@@ -616,7 +615,7 @@
 		 * 	"currentRouteSegmentTrafficVersion": "2024-05-27T02:05:37.941167Z"
 		 * }
 		 */
-		return true;
+		return jsonObject;
 	}
 	
 	
@@ -698,7 +697,7 @@
 			dropoffPoint.put("point", end_point);
 			body.put("dropoffPoint", dropoffPoint);
 		}
-		logger.info("修改行程请求:{}", body.toJSONString());
+		logger.info("修改行程请求:{}  {}", tripId, body.toJSONString());
 		HttpRequest request = put.body(body.toJSONString());
 		HttpResponse response = request.execute();
 		logger.info("修改行程结果:{}", response.body());
@@ -717,6 +716,9 @@
 					redisUtil.remove("google_token");
 					return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
+			}
+			if(code == 404){
+				return true;
 			}
 			logger.error("修改行程异常:  tripId={}  body={}", tripId, response.body());
 			return false;
@@ -857,6 +859,7 @@
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
+		logger.info("查询行程请求:{}  {}", tripId, url);
 		HttpResponse response = get.execute();
 		logger.info("查询行程结果:{}", response.body());
 		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
@@ -965,11 +968,147 @@
 	
 	
 	/**
+	 * 批量获取行程
+	 * @param vehicleId
+	 * @param pageSize
+	 * @param pageToken
+	 * @return
+	 */
+	public String getTrips(String vehicleId, Integer pageSize, String pageToken) {
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips:search";
+		HttpRequest post = HttpUtil.createPost(url);
+		Map<String, String> headers = new HashMap<>();
+		headers.put("Authorization", "Bearer " + getToken());
+		headers.put("Content-Type", "application/json");
+		post.addHeaders(headers);
+		JSONObject body = new JSONObject();
+		if(StringUtils.hasLength(vehicleId)){
+			body.put("vehicleId", vehicleId);
+		}
+		body.put("activeTripsOnly", false);
+		if(null != pageSize){
+			body.put("pageSize", pageSize);
+		}
+		if(null != pageToken){
+			body.put("pageToken", pageToken);
+		}
+		logger.info("查询行程请求:{}", body);
+		post.body(body.toJSONString());
+		HttpResponse response = post.execute();
+		logger.info("查询行程结果:{}", response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
+		JSONObject error = jsonObject.getJSONObject("error");
+		if(null != error){
+			Integer code = error.getInteger("code");
+			if(code == 404){
+				return null;
+			}
+			if(code == 401){
+				String status = error.getString("status");
+				if(StringUtils.hasLength(status) && status.equals("UNAUTHENTICATED")){
+					redisUtil.remove("google_token");
+					return getTrips(vehicleId, pageSize, pageToken);
+				}
+				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
+				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
+					redisUtil.remove("google_token");
+					return getTrips(vehicleId, pageSize, pageToken);
+				}
+			}
+			logger.error("获取行程异常:body={}", response.body());
+			return null;
+		}
+		/**
+		 * 返回结果
+		 * {
+		 * 	"name": "providers/i-go-odrd-testing/trips/I-GO-RIDE1",
+		 * 	"vehicleId": "I-GO-CAR1",
+		 * 	"tripStatus": "ENROUTE_TO_PICKUP",
+		 * 	"tripType": "SHARED",
+		 * 	"pickupPoint": {
+		 * 		"point": {
+		 * 			"latitude": 30.604131,
+		 * 			"longitude": 104.151957
+		 *                }* 	},
+		 * 	"pickupTime": "2024-05-27T02:10:39.763347Z",
+		 * 	"dropoffPoint": {
+		 * 		"point": {
+		 * 			"latitude": 30.636319,
+		 * 			"longitude": 104.129219
+		 *        }
+		 *    },
+		 * 	"dropoffTime": "2024-05-27T02:23:37.762549Z",
+		 * 	"numberOfPassengers": 1,
+		 * 	"remainingDistanceMeters": 0,
+		 * 	"etaToFirstWaypoint": "2024-05-27T02:10:39.763347Z",
+		 * 	"remainingWaypoints": [
+		 *        {
+		 * 			"location": {
+		 * 				"point": {
+		 * 					"latitude": 30.604131,
+		 * 					"longitude": 104.151957
+		 *                }
+		 *            },
+		 * 			"tripId": "I-GO-RIDE1",
+		 * 			"waypointType": "PICKUP_WAYPOINT_TYPE",
+		 * 			"distanceMeters": 0,
+		 * 			"eta": "2024-05-27T02:10:39.763347Z",
+		 * 			"duration": "0s"
+		 *        },
+		 *        {
+		 * 			"location": {
+		 * 				"point": {
+		 * 					"latitude": 30.636319,
+		 * 					"longitude": 104.129219
+		 *                }
+		 *            },
+		 * 			"tripId": "I-GO-RIDE1",
+		 * 			"waypointType": "DROP_OFF_WAYPOINT_TYPE",
+		 * 			"encodedPathToWaypoint": "AhqdAq8NM2ZcYrZmDgDo4Z0B7887ka5C0v0Y8aUejs8f7gL98gGstAWPpQLU5gvsfcf3JPiXJ8vEDosr0coVsuEEwtYElQ2h6QGXHron0ALV4gTRlQHdiqEC5rWzAq6zBVPRrAX0rQS9mAGazgTx5ASmZ7EknJ4B2ALyGPAC8QO9DKY58RGtGoYGtASJEYAGxkzyFulZ0BbAEpOQAuQR2FfPlgKolAveP7u0CdC_JIy7Aojb6QHL2_EElKUCpgGgsiTbqQHHlgKPqAjHR8SIgQHnhinsjwqhFfZGk-cKlLUIy8cC498CxF28pwLcrginpiGQm5sB36aFAcuTJPCWCdiUCeh1w94JR7PiAsCKC-cTo-MLrLAm3JQJp7ML07sh4KEC0xLMhZAB65U6oO4m_7gh6IkLz-oh2-MCwLAC5OwC-wGbsQuouwiD9gKQsQLPQ_BN0-ICxwWo2QS3zwG_DewHyiTaBbcdzwimVL0jnYMC-5IC8VH3BcBDr2mVFLMKqQX0kQG54QH-Pqm3AdIHirsB8YEBooEBvSDF7QWK4wWhkUbymkPLCNEG_gi1nwTqnATlvgSupwEo5pwExgONJhj9CKEspblC2sVHwaYX8qYXheQF3rsBkrIBgcYRqoMBlpQBx4IB6owBhiq3jgGYpwGfuQHwuQWfKfUBmw70I5-5BeiREFPAC-cI8AgACFvHAgGIAq-HBcyYBefJFMjkFK-fFMyyBbOhAYCREIe_EbeFAcSSAY-wAegI_LwQ6I4BjW3r-hL8gRb_5gXkuAH7AcwMq8IE1C2ckgGHJ_wv--oEkLkBjC3ng17sxooCw5gBwAvz5hCM9BHzsxHomAHcqwW1jQX6gQWpvwGOuwGl-wWSgBPVxATZAa31BP7KEqnFE8LBBL0aiqsOnHBf-pIF6Q6ABNIHxTzezhLl3gSMDcXUBQzCiQG5pAHKiQTdsgGStAGQigGhkgXAuwWXhBD4lhSXlxScMtjEBfubAb-fBOAOgOsEiLETAA==",
+		 * 			"distanceMeters": 8260,
+		 * 			"eta": "2024-05-27T02:23:37.762549Z",
+		 * 			"duration": "777.999202s",
+		 * 			"trafficToWaypoint": {
+		 * 				"speedReadingInterval": [
+		 *                    {
+		 * 						"endPolylinePointIndex": 284,
+		 * 						"speed": "NORMAL"
+		 *                    }
+		 * 				],
+		 * 				"encodedPathToWaypoint": "AhqdAq8NM2ZcYrZmDgDo4Z0B7887ka5C0v0Y8aUejs8f7gL98gGstAWPpQLU5gvsfcf3JPiXJ8vEDosr0coVsuEEwtYElQ2h6QGXHron0ALV4gTRlQHdiqEC5rWzAq6zBVPRrAX0rQS9mAGazgTx5ASmZ7EknJ4B2ALyGPAC8QO9DKY58RGtGoYGtASJEYAGxkzyFulZ0BbAEpOQAuQR2FfPlgKolAveP7u0CdC_JIy7Aojb6QHL2_EElKUCpgGgsiTbqQHHlgKPqAjHR8SIgQHnhinsjwqhFfZGk-cKlLUIy8cC498CxF28pwLcrginpiGQm5sB36aFAcuTJPCWCdiUCeh1w94JR7PiAsCKC-cTo-MLrLAm3JQJp7ML07sh4KEC0xLMhZAB65U6oO4m_7gh6IkLz-oh2-MCwLAC5OwC-wGbsQuouwiD9gKQsQLPQ_BN0-ICxwWo2QS3zwG_DewHyiTaBbcdzwimVL0jnYMC-5IC8VH3BcBDr2mVFLMKqQX0kQG54QH-Pqm3AdIHirsB8YEBooEBvSDF7QWK4wWhkUbymkPLCNEG_gi1nwTqnATlvgSupwEo5pwExgONJhj9CKEspblC2sVHwaYX8qYXheQF3rsBkrIBgcYRqoMBlpQBx4IB6owBhiq3jgGYpwGfuQHwuQWfKfUBmw70I5-5BeiREFPAC-cI8AgACFvHAgGIAq-HBcyYBefJFMjkFK-fFMyyBbOhAYCREIe_EbeFAcSSAY-wAegI_LwQ6I4BjW3r-hL8gRb_5gXkuAH7AcwMq8IE1C2ckgGHJ_wv--oEkLkBjC3ng17sxooCw5gBwAvz5hCM9BHzsxHomAHcqwW1jQX6gQWpvwGOuwGl-wWSgBPVxATZAa31BP7KEqnFE8LBBL0aiqsOnHBf-pIF6Q6ABNIHxTzezhLl3gSMDcXUBQzCiQG5pAHKiQTdsgGStAGQigGhkgXAuwWXhBD4lhSXlxScMtjEBfubAb-fBOAOgOsEiLETAA=="
+		 *            }
+		 *        }
+		 * 	],
+		 * 	"currentRouteSegmentVersion": "2024-05-27T02:10:39.773373Z",
+		 * 	"remainingWaypointsVersion": "2024-05-27T02:05:37.941167Z",
+		 * 	"currentRouteSegmentEndPoint": {
+		 * 		"location": {
+		 * 			"point": {
+		 * 				"latitude": 30.604131,
+		 * 				"longitude": 104.151957
+		 *            }
+		 *        },
+		 * 		"tripId": "I-GO-RIDE1",
+		 * 		"waypointType": "PICKUP_WAYPOINT_TYPE"
+		 *    },
+		 * 	"remainingWaypointsRouteVersion": "2024-05-27T02:10:39.773373Z",
+		 * 	"currentRouteSegmentTrafficVersion": "2024-05-27T02:10:39.773373Z",
+		 * 	"view": "SDK"
+		 * }
+		 */
+		
+		return response.body();
+	}
+	
+	
+	
+	/**
 	 * 上报google可结算订单
 	 * @param tripId 行程id
 	 * @return
 	 */
 	public boolean reportBillableEvent(String tripId) {
+		log.info("行程上报:{}", tripId);
 		String billableEventId = UUIDUtil.getRandomCode();
 		String url = "https://mobilitybilling.googleapis.com/v1:reportBillableEvent?regionCode=GH&key=" + key + "&billableEventId=" + billableEventId;
 		HttpRequest post = HttpUtil.createPost(url);

--
Gitblit v1.7.1