From d0bd61d3b3f637750bb21587dfa81503f2d4b6a8 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期一, 24 六月 2024 11:07:02 +0800
Subject: [PATCH] 修改google地图对接bug

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java    |   78 +++++++-------
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java        |    1 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml  |    6 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                         |    4 
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java          |   78 +++++++-------
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java                    |   11 ++
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java             |   12 ++
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml |    6 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                         |    4 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml               |    1 
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java        |   76 +++++++-------
 DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java                  |   11 ++
 12 files changed, 164 insertions(+), 124 deletions(-)

diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 2582519..5b51032 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -1734,13 +1734,13 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<String> getFleetEngineAuth(HttpServletRequest request){
+    public ResultUtil<Map<String, Object>> getFleetEngineAuth(HttpServletRequest request){
         try {
             Integer uid = driverService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            String s = fleetEngineUtil.fleetEngineAuth(2, uid);
+            Map<String, Object> s = fleetEngineUtil.fleetEngineAuth(2, uid);
             return ResultUtil.success(s);
         }catch (Exception e){
             e.printStackTrace();
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
index 4d9ac6d..53142ff 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -383,6 +383,7 @@
         (select `name` from t_company where 1 = 1 and if(a.companyId is null or a.companyId = 0, id = 1, if(a.franchiseeId is null or a.franchiseeId = 0, id = a.companyId, id = a.franchiseeId))) as company,
         b.carLicensePlate as licensePlate,
         b.carColor as carColor,
+        b.vehicleId,
         CONCAT(d.`name`, c.`name`) as brand,
         (
         (select count(id) from t_order_private_car where driverId = a.id and state in (7, 8, 9)) +
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 66ca7f7..bf33bed 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
@@ -1112,6 +1112,7 @@
             CarModel carModel = carModelMapper.selectById(car.getCarModelId());
             fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
         }
+        loginWarpper.setVehicleId(car.getVehicleId());
         return ResultUtil.success(loginWarpper);
     }
 
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 49a5904..4be7b9f 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
@@ -54,7 +54,7 @@
 	 * @param type 0=服务端,1=乘客,2=司机
 	 * @return
 	 */
-	public String fleetEngineAuth(int type, Integer id){
+	public Map<String, Object> fleetEngineAuth(int type, Integer id){
 		try {
 			//谷歌云服务器使用这部分代码
 //			AuthTokenMinter minter = AuthTokenMinter.builder()
@@ -75,23 +75,53 @@
 					.build();
 			
 			String jwt = "";
+			Long expirationTimestamp = 0L;
 			if(0 == type){
 				FleetEngineToken serverToken = minter.getServerToken();
 				jwt = serverToken.jwt();
+				expirationTimestamp = serverToken.expirationTimestamp().getTime();
 			}
 			if(1 == type){
 				FleetEngineToken consumerToken = minter.getConsumerToken(TripClaims.create("I-GO-USER" + id));
 				jwt = consumerToken.jwt();
+				expirationTimestamp = consumerToken.expirationTimestamp().getTime();
 			}
 			if(2 == type){
 				FleetEngineToken driverToken = minter.getDriverToken(VehicleClaims.create("I-GO-CAR" + id));
 				jwt = driverToken.jwt();
+				expirationTimestamp = driverToken.expirationTimestamp().getTime();
 			}
-			return jwt;
+			Map<String, Object> map = new HashMap<>();
+			map.put("token", jwt);
+			map.put("expirationTimestamp", expirationTimestamp);
+			return map;
 		} catch (SigningTokenException e) {
 			throw new RuntimeException(e);
 		}
 	}
+	
+	
+	
+	public String getToken(){
+		String token_json = redisUtil.getValue("google_token");
+		String google_token = "";
+		if(!StringUtils.hasLength(token_json)){
+			Map<String, Object> map = fleetEngineAuth(0, null);
+			redisUtil.setStrValue("google_token", JSON.toJSONString(map));
+			google_token = map.get("token").toString();
+		}else{
+			JSONObject jsonObject1 = JSON.parseObject(token_json);
+			Long expirationTimestamp = jsonObject1.getLong("expirationTimestamp");
+			google_token = jsonObject1.getString("token");
+			if((expirationTimestamp - 10000L) <= System.currentTimeMillis()){
+				Map<String, Object> map = fleetEngineAuth(0, null);
+				redisUtil.setStrValue("google_token", JSON.toJSONString(map));
+				google_token = map.get("token").toString();
+			}
+		}
+		return google_token;
+	}
+	
 	
 	
 	
@@ -103,15 +133,10 @@
 	 * @param id 车辆id
 	 */
 	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=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		post.addHeaders(headers);
 		
@@ -177,11 +202,6 @@
 	 * @return
 	 */
 	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/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleState)){
@@ -198,7 +218,7 @@
 		
 		HttpRequest put = HttpUtil.createRequest(Method.PUT, url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		put.addHeaders(headers);
 		
@@ -273,15 +293,10 @@
 	 * @return
 	 */
 	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 ? id : "");
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
@@ -382,15 +397,10 @@
 	 * @return
 	 */
 	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=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		post.addHeaders(headers);
 		
@@ -564,11 +574,6 @@
 	 * @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 {
-		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 + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleId)){
@@ -592,7 +597,7 @@
 		
 		HttpRequest put = HttpUtil.createRequest(Method.PUT, url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		put.addHeaders(headers);
 		
@@ -780,15 +785,10 @@
 	 * @return
 	 */
 	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/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java
index d56e1f1..82043b2 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java
@@ -98,6 +98,8 @@
     private String birthday;
     @ApiModelProperty("居住地")
     private String driverAddress;
+    @ApiModelProperty("google车辆id")
+    private String vehicleId;
 
     public Integer getId() {
         return id;
@@ -488,7 +490,17 @@
             driverInfoWarpper.setLanguage(null != map.get("language") ? Integer.valueOf(String.valueOf(map.get("language"))) : 2);
             driverInfoWarpper.setBirthday(null != map.get("birthday") ? String.valueOf(map.get("birthday")) : "");
             driverInfoWarpper.setDriverAddress(null != map.get("driverAddress") ? String.valueOf(map.get("driverAddress")) : "");
+            driverInfoWarpper.setVehicleId(null != map.get("vehicleId") ? String.valueOf(map.get("vehicleId")) : "");
         }
         return driverInfoWarpper;
     }
+    
+    
+    public String getVehicleId() {
+        return vehicleId;
+    }
+    
+    public void setVehicleId(String vehicleId) {
+        this.vehicleId = vehicleId;
+    }
 }
diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java
index 203afbc..12afe29 100644
--- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java
+++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java
@@ -19,6 +19,9 @@
 
     @ApiModelProperty("跳转页面 100000=跳转至【完善个人资料】 200000=跳转至【完善车辆信息】")
     private String jumpCode;
+    
+    @ApiModelProperty("google车辆id")
+    private String vehicleId;
 
 
     public String getJumpCode() {
@@ -68,4 +71,12 @@
     public void setTerminalId(String terminalId) {
         this.terminalId = terminalId;
     }
+    
+    public String getVehicleId() {
+        return vehicleId;
+    }
+    
+    public void setVehicleId(String vehicleId) {
+        this.vehicleId = vehicleId;
+    }
 }
diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
index 79c051d..4be7b9f 100644
--- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
+++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -54,7 +54,7 @@
 	 * @param type 0=服务端,1=乘客,2=司机
 	 * @return
 	 */
-	public String fleetEngineAuth(int type, Integer id){
+	public Map<String, Object> fleetEngineAuth(int type, Integer id){
 		try {
 			//谷歌云服务器使用这部分代码
 //			AuthTokenMinter minter = AuthTokenMinter.builder()
@@ -75,23 +75,53 @@
 					.build();
 			
 			String jwt = "";
+			Long expirationTimestamp = 0L;
 			if(0 == type){
 				FleetEngineToken serverToken = minter.getServerToken();
 				jwt = serverToken.jwt();
+				expirationTimestamp = serverToken.expirationTimestamp().getTime();
 			}
 			if(1 == type){
 				FleetEngineToken consumerToken = minter.getConsumerToken(TripClaims.create("I-GO-USER" + id));
 				jwt = consumerToken.jwt();
+				expirationTimestamp = consumerToken.expirationTimestamp().getTime();
 			}
 			if(2 == type){
 				FleetEngineToken driverToken = minter.getDriverToken(VehicleClaims.create("I-GO-CAR" + id));
 				jwt = driverToken.jwt();
+				expirationTimestamp = driverToken.expirationTimestamp().getTime();
 			}
-			return jwt;
+			Map<String, Object> map = new HashMap<>();
+			map.put("token", jwt);
+			map.put("expirationTimestamp", expirationTimestamp);
+			return map;
 		} catch (SigningTokenException e) {
 			throw new RuntimeException(e);
 		}
 	}
+	
+	
+	
+	public String getToken(){
+		String token_json = redisUtil.getValue("google_token");
+		String google_token = "";
+		if(!StringUtils.hasLength(token_json)){
+			Map<String, Object> map = fleetEngineAuth(0, null);
+			redisUtil.setStrValue("google_token", JSON.toJSONString(map));
+			google_token = map.get("token").toString();
+		}else{
+			JSONObject jsonObject1 = JSON.parseObject(token_json);
+			Long expirationTimestamp = jsonObject1.getLong("expirationTimestamp");
+			google_token = jsonObject1.getString("token");
+			if((expirationTimestamp - 10000L) <= System.currentTimeMillis()){
+				Map<String, Object> map = fleetEngineAuth(0, null);
+				redisUtil.setStrValue("google_token", JSON.toJSONString(map));
+				google_token = map.get("token").toString();
+			}
+		}
+		return google_token;
+	}
+	
 	
 	
 	
@@ -103,15 +133,10 @@
 	 * @param id 车辆id
 	 */
 	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=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		post.addHeaders(headers);
 		
@@ -177,11 +202,6 @@
 	 * @return
 	 */
 	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/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleState)){
@@ -198,7 +218,7 @@
 		
 		HttpRequest put = HttpUtil.createRequest(Method.PUT, url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		put.addHeaders(headers);
 		
@@ -273,15 +293,10 @@
 	 * @return
 	 */
 	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 ? "/" + 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);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
@@ -382,15 +397,10 @@
 	 * @return
 	 */
 	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=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		post.addHeaders(headers);
 		
@@ -564,11 +574,6 @@
 	 * @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 {
-		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 + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleId)){
@@ -592,7 +597,7 @@
 		
 		HttpRequest put = HttpUtil.createRequest(Method.PUT, url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		put.addHeaders(headers);
 		
@@ -780,15 +785,10 @@
 	 * @return
 	 */
 	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/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index c624777..ee0750b 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -1343,13 +1343,13 @@
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<String> getFleetEngineAuth(HttpServletRequest request){
+    public ResultUtil<Map<String, Object>> getFleetEngineAuth(HttpServletRequest request){
         try {
             Integer uid = userInfoService.getUserIdFormRedis(request);
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            String s = fleetEngineUtil.fleetEngineAuth(1, uid);
+            Map<String, Object> s = fleetEngineUtil.fleetEngineAuth(1, uid);
             return ResultUtil.success(s);
         }catch (Exception e){
             e.printStackTrace();
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
index d485fde..2e6eabe 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
@@ -128,7 +128,8 @@
         trackId as trackId,
         isDelete as isDelete,
         telX as telX,
-        bindId as bindId
+        bindId as bindId,
+        tripId
         from t_order_logistics where isDelete = 1
         <if test="null != start and null != end">
             and insertTime between #{start} and #{end}
@@ -159,7 +160,8 @@
         payMoney as payMoney,
         ifnull(discountMoney, 0) as discountMoney,
         (select price from t_order_logistics_spread where orderLogisticsId = a.id) as differenceMoney,
-        cancelMidway
+        cancelMidway,
+        tripId
         from t_order_logistics as a where userId = #{uid} and isDelete = 1 order by insertTime desc limit #{pageNum}, #{size}
     </select>
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
index 52915ce..75870fa 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -321,7 +321,8 @@
         isDelete as isDelete,
         oldState as oldState,
         telX as telX,
-        bindId as bindId
+        bindId as bindId,
+        tripId
         from t_order_private_car where isDelete = 1 and userId = #{uid}
         <if test="null != state">
             and state in
@@ -345,7 +346,8 @@
         state as state,
         oldState as oldState,
         isFrozen,
-        cancelMidway
+        cancelMidway,
+        tripId
         from t_order_private_car where userId = #{uid} and isDelete = 1 order by insertTime desc limit #{pageNum}, #{size}
     </select>
 
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 fa994a3..4be7b9f 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
@@ -43,7 +43,7 @@
 	
 	@Autowired
 	private RedisUtil redisUtil;
-
+	
 	
 	
 	
@@ -54,7 +54,7 @@
 	 * @param type 0=服务端,1=乘客,2=司机
 	 * @return
 	 */
-	public String fleetEngineAuth(int type, Integer id){
+	public Map<String, Object> fleetEngineAuth(int type, Integer id){
 		try {
 			//谷歌云服务器使用这部分代码
 //			AuthTokenMinter minter = AuthTokenMinter.builder()
@@ -75,23 +75,53 @@
 					.build();
 			
 			String jwt = "";
+			Long expirationTimestamp = 0L;
 			if(0 == type){
 				FleetEngineToken serverToken = minter.getServerToken();
 				jwt = serverToken.jwt();
+				expirationTimestamp = serverToken.expirationTimestamp().getTime();
 			}
 			if(1 == type){
 				FleetEngineToken consumerToken = minter.getConsumerToken(TripClaims.create("I-GO-USER" + id));
 				jwt = consumerToken.jwt();
+				expirationTimestamp = consumerToken.expirationTimestamp().getTime();
 			}
 			if(2 == type){
 				FleetEngineToken driverToken = minter.getDriverToken(VehicleClaims.create("I-GO-CAR" + id));
 				jwt = driverToken.jwt();
+				expirationTimestamp = driverToken.expirationTimestamp().getTime();
 			}
-			return jwt;
+			Map<String, Object> map = new HashMap<>();
+			map.put("token", jwt);
+			map.put("expirationTimestamp", expirationTimestamp);
+			return map;
 		} catch (SigningTokenException e) {
 			throw new RuntimeException(e);
 		}
 	}
+	
+	
+	
+	public String getToken(){
+		String token_json = redisUtil.getValue("google_token");
+		String google_token = "";
+		if(!StringUtils.hasLength(token_json)){
+			Map<String, Object> map = fleetEngineAuth(0, null);
+			redisUtil.setStrValue("google_token", JSON.toJSONString(map));
+			google_token = map.get("token").toString();
+		}else{
+			JSONObject jsonObject1 = JSON.parseObject(token_json);
+			Long expirationTimestamp = jsonObject1.getLong("expirationTimestamp");
+			google_token = jsonObject1.getString("token");
+			if((expirationTimestamp - 10000L) <= System.currentTimeMillis()){
+				Map<String, Object> map = fleetEngineAuth(0, null);
+				redisUtil.setStrValue("google_token", JSON.toJSONString(map));
+				google_token = map.get("token").toString();
+			}
+		}
+		return google_token;
+	}
+	
 	
 	
 	
@@ -103,15 +133,10 @@
 	 * @param id 车辆id
 	 */
 	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=" + id;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		post.addHeaders(headers);
 		
@@ -177,11 +202,6 @@
 	 * @return
 	 */
 	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/" + id + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleState)){
@@ -198,7 +218,7 @@
 		
 		HttpRequest put = HttpUtil.createRequest(Method.PUT, url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		put.addHeaders(headers);
 		
@@ -273,15 +293,10 @@
 	 * @return
 	 */
 	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 ? id : "");
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
@@ -382,15 +397,10 @@
 	 * @return
 	 */
 	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=" + tripId;
 		HttpRequest post = HttpUtil.createPost(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		post.addHeaders(headers);
 		
@@ -564,11 +574,6 @@
 	 * @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 {
-		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 + "?updateMask=";
 		List<String> sb = new ArrayList<>();
 		if(StringUtils.hasLength(vehicleId)){
@@ -592,7 +597,7 @@
 		
 		HttpRequest put = HttpUtil.createRequest(Method.PUT, url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		put.addHeaders(headers);
 		
@@ -780,15 +785,10 @@
 	 * @return
 	 */
 	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/" + tripId;
 		HttpRequest get = HttpUtil.createGet(url);
 		Map<String, String> headers = new HashMap<>();
-		headers.put("Authorization", "Bearer " + google_token);
+		headers.put("Authorization", "Bearer " + getToken());
 		headers.put("Content-Type", "application/json");
 		get.addHeaders(headers);
 		
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
index d4faec9..5e603ab 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
@@ -56,6 +56,8 @@
     private Integer isFrozen;
     @ApiModelProperty("中途取消(0=否,1=是)")
     private Integer cancelMidway;
+    
+    private String tripId;
 
     public Integer getOrderId() {
         return orderId;
@@ -257,6 +259,7 @@
                 orderWarpper.setReceipt(null != map.get("receipt") ? String.valueOf(map.get("receipt")) : "");
                 orderWarpper.setIsFrozen(null != map.get("isFrozen") ? Integer.valueOf(String.valueOf(map.get("isFrozen"))) : 1);
                 orderWarpper.setCancelMidway(null != map.get("cancelMidway") ? Integer.valueOf(String.valueOf(map.get("cancelMidway"))) : 0);
+                orderWarpper.setTripId(null != map.get("tripId") ? String.valueOf(map.get("tripId")) : "");
                 list.add(orderWarpper);
             }
         }
@@ -280,6 +283,14 @@
         this.cancelMidway = cancelMidway;
     }
     
+    public String getTripId() {
+        return tripId;
+    }
+    
+    public void setTripId(String tripId) {
+        this.tripId = tripId;
+    }
+    
     @Override
     public int compareTo(Object o) {
         if (o instanceof OrderWarpper) {

--
Gitblit v1.7.1