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 | 198 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 167 insertions(+), 31 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 f602b04..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 @@ -167,7 +167,7 @@ * @param licensePlate 车牌号 * @param id 车辆id */ - public String createVehicles(int maximumCapacity, String licensePlate, String id) throws Exception{ + public boolean createVehicles(int maximumCapacity, String licensePlate, String id) { String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles?vehicleId=" + id; HttpRequest post = HttpUtil.createPost(url); Map<String, String> headers = new HashMap<>(); @@ -207,7 +207,8 @@ return createVehicles(maximumCapacity, licensePlate, id); } } - throw new Exception(response.body()); + log.error("添加车辆信息异常: licensePlate={}, body={}", licensePlate, response.body()); + return false; } /** * 返回结果 @@ -230,7 +231,7 @@ * "waypointsVersion": "2024-05-23T03:05:23.293329Z" * } */ - return response.body(); + return true; } @@ -241,7 +242,7 @@ * @param id * @return */ - public String updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) throws Exception{ + public boolean updateVehicles(String vehicleState, Integer maximumCapacity, String licensePlate, String id) { String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/vehicles/" + id + "?updateMask="; List<String> sb = new ArrayList<>(); if(StringUtils.hasLength(vehicleState)){ @@ -305,7 +306,8 @@ return updateVehicles(vehicleState, maximumCapacity, licensePlate, id); } } - throw new Exception(response.body()); + log.error("修改车辆信息异常: licensePlate={}, body={}", licensePlate, response.body()); + return false; } /** * 返回结果 @@ -328,7 +330,7 @@ * "waypointsVersion": "2024-05-23T03:05:23.293329Z" * } */ - return response.body(); + return true; } @@ -337,7 +339,7 @@ * @param id 车辆id * @return */ - public String getVehicles(String id) throws Exception{ + public String getVehicles(String 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<>(); @@ -366,7 +368,8 @@ return getVehicles(id); } } - throw new Exception(response.body()); + log.error("查询车辆信息异常: id={}, body={}", id, response.body()); + return null; } /** * 返回结果 @@ -446,7 +449,7 @@ * @param end_lng 终点经度 * @return */ - public String createTrip(String vehicleId, Integer numberOfPassengers, String tripId, String start_lat, String start_lng, String end_lat, String end_lng) throws Exception{ + 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<>(); @@ -475,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()); @@ -495,7 +498,7 @@ return createTrip(vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng); } } - throw new Exception(response.body()); + logger.error("创建行程异常: tripId={} body={}", tripId, response.body()); } /** * 返回结果 @@ -612,7 +615,7 @@ * "currentRouteSegmentTrafficVersion": "2024-05-27T02:05:37.941167Z" * } */ - return response.body(); + return jsonObject; } @@ -628,7 +631,7 @@ * @param end_lng 终点经度 * @return */ - 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 { + public boolean updateTrip(String tripStatus, 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 + "?updateMask="; List<String> sb = new ArrayList<>(); if(StringUtils.hasLength(vehicleId)){ @@ -694,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()); @@ -714,7 +717,11 @@ return updateTrip(tripStatus, vehicleId, numberOfPassengers, tripId, start_lat, start_lng, end_lat, end_lng); } } - throw new Exception(response.body()); + if(code == 404){ + return true; + } + logger.error("修改行程异常: tripId={} body={}", tripId, response.body()); + return false; } /** * 返回结果 @@ -834,7 +841,7 @@ * "numberOfPassengers": 1 * } */ - return response.body(); + return true; } @@ -844,7 +851,7 @@ * @param tripId 订单id * @return */ - public String getTrip(String tripId) throws Exception { + public String getTrip(String tripId) { String url = "https://fleetengine.googleapis.com/v1/providers/" + provider + "/trips/" + tripId; HttpRequest get = HttpUtil.createGet(url); Map<String, String> headers = new HashMap<>(); @@ -852,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")); @@ -873,7 +881,8 @@ return getTrip(tripId); } } - throw new Exception(response.body()); + logger.error("获取行程异常: tripId={} body={}", tripId, response.body()); + return null; } /** * 返回结果 @@ -959,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) throws Exception { + 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); @@ -973,22 +1118,13 @@ post.addHeaders(headers); JSONObject body = new JSONObject(); body.put("related_ids", "[\"" + tripId + "\"]"); + body.put("regionCode", "GH"); post.body(body.toJSONString()); - - - - - - - - - - //上线客户测试和上线运营开放 // HttpResponse response = post.execute(); // if(200 != response.getStatus()){ -// logger.error(response.body()); -// throw new Exception(response.body()); +// logger.error("google地图上报结算 tripId:{} 异常:{}", tripId,response.body()); +// return false; // } return true; } -- Gitblit v1.7.1