Pu Zhibing
2024-11-15 b9a57ab37dc80cebe8129ea7833751718d89a84a
修改bug
2个文件已修改
188 ■■■■■ 已修改文件
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -12,12 +12,10 @@
import com.stylefeng.guns.modular.smallLogistics.server.impl.OrderLogisticsSpreadService;
import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.model.Car;
import com.stylefeng.guns.modular.system.model.OrderPosition;
import com.stylefeng.guns.modular.system.model.Reassign;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IOrderPositionService;
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.IReassignService;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest;
@@ -83,6 +81,9 @@
    
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private ICarService carService;
@@ -1061,4 +1062,48 @@
        }
        return ResultUtil.success();
    }
    @ResponseBody
    @PostMapping("/base/taxi/getTrips")
    public String getTrips(String vehicleId, Integer pageSize, String pageToken){
        return fleetEngineUtil.getTrips(vehicleId, pageSize, pageToken);
    }
    @ResponseBody
    @GetMapping("/base/taxi/getTripsStatus")
    public ResultUtil<List<Map<String, String>>> getTripsStatus(){
        String pageToken = null;
        List<Map<String, String>> list = new ArrayList<>();
        while (true){
            String trips = fleetEngineUtil.getTrips(null, 50, pageToken);
            if(ToolUtil.isEmpty(trips)){
                break;
            }
            JSONObject jsonObject = JSON.parseObject(trips);
            JSONArray array = jsonObject.getJSONArray("trips");
            if(null == array){
                break;
            }
            for (int i = 0; i < array.size(); i++) {
                JSONObject trip = array.getJSONObject(i);
                String tripStatus = trip.getString("tripStatus");
                String name = trip.getString("name");
                Integer index = name.lastIndexOf("/") + 1;
                String tripId = name.substring(index);
                Map<String, String> map = new HashMap<>();
                map.put(tripId, tripStatus);
                list.add(map);
            }
            pageToken = jsonObject.getString("nextPageToken");
            if(null == pageToken){
                break;
            }
        }
        return ResultUtil.success(list);
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java
@@ -965,6 +965,141 @@
    
    
    /**
     * 批量获取行程
     * @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