zhibing.pu
2024-06-21 cb7ba897d7978906cd0cae284ba042a6c7040fa6
修改google地图对接bug
5个文件已修改
119 ■■■■■ 已修改文件
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderLogistics.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderLogisticsController.java
@@ -120,7 +120,7 @@
        //修改行程信息
        try {
            fleetEngineUtil.updateTrip("CANCELED", null, null, 4, tOrderLogistics.getId(), null, null, null, null);
            fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderLogistics.getTripId(), null, null, null, null);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TOrderPrivateCarController.java
@@ -309,7 +309,7 @@
    
        //修改行程信息
        try {
            fleetEngineUtil.updateTrip("CANCELED", null, null, 1, tOrderPrivateCar.getId(), null, null, null, null);
            fleetEngineUtil.updateTrip("CANCELED", null, null, tOrderPrivateCar.getTripId(), null, null, null, null);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderLogistics.java
@@ -255,6 +255,8 @@
     */
    private String bindId;
    private String tripId;
    public Integer getOldState() {
        return oldState;
    }
@@ -719,6 +721,14 @@
        this.bindId = bindId;
    }
    public String getTripId() {
        return tripId;
    }
    public void setTripId(String tripId) {
        this.tripId = tripId;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderPrivateCar.java
@@ -293,6 +293,8 @@
    private Integer isFrozen;
    private String tripId;
    public Integer getIsFrozen() {
        return isFrozen;
    }
@@ -837,6 +839,22 @@
        this.serverCarModelId = serverCarModelId;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getTripId() {
        return tripId;
    }
    public void setTripId(String tripId) {
        this.tripId = tripId;
    }
    @Override
    protected Serializable pkVal() {
        return this.id;
ManagementIGOTravel/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());