From 45f8febad90601cdcad0b754e8a79da11d2d3561 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期五, 21 六月 2024 10:01:06 +0800
Subject: [PATCH] 修改google地图对接bug

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java |   87 +++++++++++++++++++++----------------------
 1 files changed, 43 insertions(+), 44 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index cb511e9..fa994a3 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -102,13 +102,13 @@
 	 * @param licensePlate 车牌号
 	 * @param id 车辆id
 	 */
-	public String createVehicles(int maximumCapacity, String licensePlate, Integer id) throws Exception{
+	public String createVehicles(int maximumCapacity, String licensePlate, String id) throws Exception{
 		String google_token = redisUtil.getValue("google_token");
 		if(!StringUtils.hasLength(google_token)){
 			google_token = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", google_token);
 		}
-		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles?vehicleId=" + "I-GO-CAR" + id;
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles?vehicleId=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
 		headers.put("Authorization", "Bearer " + google_token);
@@ -131,7 +131,7 @@
 		HttpRequest request = post.body(body.toJSONString());
 		HttpResponse response = request.execute();
 		logger.info("创建车辆结果:{}", response.body());
-		JSONObject jsonObject = JSON.parseObject(response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
 		if(null != error){
 			Integer code = error.getInteger("code");
@@ -142,7 +142,7 @@
 					return createVehicles(maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(body.toJSONString());
+			throw new Exception(response.body());
 		}
 		/**
 		 * 返回结果
@@ -176,21 +176,21 @@
 	 * @param id
 	 * @return
 	 */
-	public String updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, Integer id) throws Exception{
+	public String updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) throws Exception{
 		String google_token = redisUtil.getValue("google_token");
 		if(!StringUtils.hasLength(google_token)){
 			google_token = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", google_token);
 		}
-		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + "I-GO-CAR" + id + "?updateMask=";
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
-		if(!StringUtils.hasLength(vehicleState)){
+		if(StringUtils.hasLength(vehicleState)){
 			sb.add("vehicleState");
 		}
 		if(null != maximumCapacity){
 			sb.add("maximumCapacity");
 		}
-		if(!StringUtils.hasLength(licensePlate)){
+		if(StringUtils.hasLength(licensePlate)){
 			sb.add("licensePlate");
 		}
 		String collect = sb.stream().collect(Collectors.joining(","));
@@ -208,13 +208,13 @@
 		 * OFFLINE	车辆不接受新行程。注意:在完成分配给车辆的行程时,车辆仍可继续在此状态下运行。
 		 * ONLINE	车辆正在接受新行程。
 		 */
-		if(!StringUtils.hasLength(vehicleState)){
+		if(StringUtils.hasLength(vehicleState)){
 			body.put("vehicleState", vehicleState);
 		}
 		if(null != maximumCapacity){
 			body.put("maximumCapacity", maximumCapacity);
 		}
-		if(!StringUtils.hasLength(licensePlate)){
+		if(StringUtils.hasLength(licensePlate)){
 			JSONObject licensePlate1 = new JSONObject();
 			licensePlate1.put("countryCode", "GH");
 			licensePlate1.put("lastCharacter", getLastNumber(licensePlate));
@@ -229,7 +229,7 @@
 		logger.info("修改车辆信息请求:{}", body.toJSONString());
 		HttpResponse response = put.execute();
 		logger.info("修改车辆信息结果:{}", response.body());
-		JSONObject jsonObject = JSON.parseObject(response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
 		if(null != error){
 			Integer code = error.getInteger("code");
@@ -240,7 +240,7 @@
 					return updateVehicles(vehicleState, maximumCapacity, licensePlate, id);
 				}
 			}
-			throw new Exception(body.toJSONString());
+			throw new Exception(response.body());
 		}
 		/**
 		 * 返回结果
@@ -272,13 +272,13 @@
 	 * @param id 车辆id
 	 * @return
 	 */
-	public String getVehicles(Integer id) throws Exception{
+	public String getVehicles(String id) throws Exception{
 		String google_token = redisUtil.getValue("google_token");
 		if(!StringUtils.hasLength(google_token)){
 			google_token = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", google_token);
 		}
-		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles" + (null != id ? "/I-GO-CAR" + id : "");
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + (null != id ? id : "");
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
 		headers.put("Authorization", "Bearer " + google_token);
@@ -287,7 +287,7 @@
 		
 		HttpResponse response = get.execute();
 		logger.info("查询车辆结果:{}", response.body());
-		JSONObject jsonObject = JSON.parseObject(response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
 		if(null != error){
 			Integer code = error.getInteger("code");
@@ -374,21 +374,20 @@
 	 * 创建新的行程
 	 * @param vehicleId 车辆id
 	 * @param numberOfPassengers 人数
-	 * @param orderType 订单类型(1/4)
-	 * @param orderId 订单id
+	 * @param tripId 订单id
 	 * @param start_lat 起点纬度
 	 * @param start_lng 起点经度
 	 * @param end_lat 终点纬度
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String createTrip(Integer vehicleId, Integer numberOfPassengers, Integer orderType, Integer orderId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception{
+	public String createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception{
 		String google_token = redisUtil.getValue("google_token");
 		if(!StringUtils.hasLength(google_token)){
 			google_token = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", google_token);
 		}
-		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + "I-GO-" + (orderType == 1 ? "RIDE" : "DELIVERY") + orderId;
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips?tripId=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
 		headers.put("Authorization", "Bearer " + google_token);
@@ -396,7 +395,9 @@
 		post.addHeaders(headers);
 		
 		JSONObject body = new JSONObject();
-		body.put("vehicleId", "I-GO-CAR" + vehicleId);
+		if(StringUtils.hasLength(vehicleId)){
+			body.put("vehicleId", vehicleId);
+		}
 		body.put("tripStatus", "NEW");
 		body.put("tripType", "SHARED");
 		body.put("numberOfPassengers", numberOfPassengers);
@@ -418,7 +419,7 @@
 		HttpRequest request = post.body(body.toJSONString());
 		HttpResponse response = request.execute();
 		logger.info("创建行程结果:{}", response.body());
-		JSONObject jsonObject = JSON.parseObject(response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
 		if(null != error){
 			Integer code = error.getInteger("code");
@@ -426,10 +427,10 @@
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
 				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
-					return createTrip(vehicleId, numberOfPassengers, orderType, orderId, start_lat, start_lng, end_lat, end_lng);
+					return createTrip(vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
-			throw new Exception(body.toJSONString());
+			throw new Exception(response.body());
 		}
 		/**
 		 * 返回结果
@@ -555,36 +556,35 @@
 	 * @param tripStatus 行程状态
 	 * @param vehicleId 车辆id
 	 * @param numberOfPassengers 人数
-	 * @param orderType 订单类型(1/4)
-	 * @param orderId 订单id
+	 * @param tripId 订单id
 	 * @param start_lat 起点纬度
 	 * @param start_lng 起点经度
 	 * @param end_lat 终点纬度
 	 * @param end_lng 终点经度
 	 * @return
 	 */
-	public String updateTrip(String tripStatus, Integer vehicleId, Integer numberOfPassengers, Integer orderType, Integer orderId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception {
+	public String updateTrip(String tripStatus, String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception {
 		String google_token = redisUtil.getValue("google_token");
 		if(!StringUtils.hasLength(google_token)){
 			google_token = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", google_token);
 		}
-		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + "I-GO-" + (orderType == 1 ? "RIDE" : "DELIVERY") + orderId + "?updateMask=";
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId + "?updateMask=";
 		List<String> sb = new ArrayList<>();
-		if(null != vehicleId){
+		if(StringUtils.hasLength(vehicleId)){
 			sb.add("vehicleId");
 		}
-		if(!StringUtils.hasLength(tripStatus)){
+		if(StringUtils.hasLength(tripStatus)){
 			sb.add("tripStatus");
 		}
 		if(null != numberOfPassengers){
 			sb.add("numberOfPassengers");
 		}
-		if(!StringUtils.hasLength(start_lat) && !StringUtils.hasLength(start_lng)){
+		if(StringUtils.hasLength(start_lat) && StringUtils.hasLength(start_lng)){
 			sb.add("pickupPoint");
 		}
 		
-		if(!StringUtils.hasLength(end_lat) && !StringUtils.hasLength(end_lng)){
+		if(StringUtils.hasLength(end_lat) && StringUtils.hasLength(end_lng)){
 			sb.add("dropoffPoint");
 		}
 		String collect = sb.stream().collect(Collectors.joining(","));
@@ -597,8 +597,8 @@
 		put.addHeaders(headers);
 		
 		JSONObject body = new JSONObject();
-		if(null != vehicleId){
-			body.put("vehicleId", "I-GO-CAR" + vehicleId);
+		if(StringUtils.hasLength(vehicleId)){
+			body.put("vehicleId", vehicleId);
 		}
 		/**
 		 * UNKNOWN_TRIP_STATUS	默认,用于未指定或无法识别的行程状态。
@@ -611,13 +611,13 @@
 		 * COMPLETE	乘客已下车,行程已完成。
 		 * CANCELED	在司机、乘客或拼车服务提供商取车之前,行程被取消。
 		 */
-		if(!StringUtils.hasLength(tripStatus)){
+		if(StringUtils.hasLength(tripStatus)){
 			body.put("tripStatus", tripStatus);
 		}
 		if(null != numberOfPassengers){
 			body.put("numberOfPassengers", numberOfPassengers);
 		}
-		if(!StringUtils.hasLength(start_lat) && !StringUtils.hasLength(start_lng)){
+		if(StringUtils.hasLength(start_lat) && StringUtils.hasLength(start_lng)){
 			JSONObject pickupPoint = new JSONObject();
 			JSONObject point = new JSONObject();
 			point.put("latitude", start_lat);
@@ -626,7 +626,7 @@
 			body.put("pickupPoint", pickupPoint);
 		}
 		
-		if(!StringUtils.hasLength(end_lat) && !StringUtils.hasLength(end_lng)){
+		if(StringUtils.hasLength(end_lat) && StringUtils.hasLength(end_lng)){
 			JSONObject dropoffPoint = new JSONObject();
 			JSONObject end_point = new JSONObject();
 			end_point.put("latitude", end_lat);
@@ -638,7 +638,7 @@
 		HttpRequest request = put.body(body.toJSONString());
 		HttpResponse response = request.execute();
 		logger.info("修改行程结果:{}", response.body());
-		JSONObject jsonObject = JSON.parseObject(response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
 		if(null != error){
 			Integer code = error.getInteger("code");
@@ -646,7 +646,7 @@
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
 				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
-					return updateTrip(tripStatus, vehicleId, numberOfPassengers, orderType, orderId, start_lat, start_lng, end_lat, end_lng);
+					return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng);
 				}
 			}
 			throw new Exception(response.body());
@@ -776,17 +776,16 @@
 	
 	/**
 	 * 获取行程信息
-	 * @param orderType 订单类型(1/4)
-	 * @param orderId 订单id
+	 * @param tripId 订单id
 	 * @return
 	 */
-	public String getTrip(Integer orderType, Integer orderId) throws Exception {
+	public String getTrip(String tripId) throws Exception {
 		String google_token = redisUtil.getValue("google_token");
 		if(!StringUtils.hasLength(google_token)){
 			google_token = fleetEngineAuth(0, null);
 			redisUtil.setStrValue("google_token", google_token);
 		}
-		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/I-GO-" + (orderType == 1 ? "RIDE" : "DELIVERY") + orderId;
+		String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
 		headers.put("Authorization", "Bearer " + google_token);
@@ -795,7 +794,7 @@
 		
 		HttpResponse response = get.execute();
 		logger.info("查询行程结果:{}", response.body());
-		JSONObject jsonObject = JSON.parseObject(response.body());
+		JSONObject jsonObject = JSON.parseObject(response.body().replaceAll("@type", "type"));
 		JSONObject error = jsonObject.getJSONObject("error");
 		if(null != error){
 			Integer code = error.getInteger("code");
@@ -806,7 +805,7 @@
 				String reason = error.getJSONArray("details").getJSONObject(0).getString("reason");
 				if(reason.equals("ACCESS_TOKEN_EXPIRED")){
 					redisUtil.remove("google_token");
-					return getTrip(orderType, orderId);
+					return getTrip(tripId);
 				}
 			}
 			throw new Exception(response.body());

--
Gitblit v1.7.1