zhibing.pu
2024-06-21 45f8febad90601cdcad0b754e8a79da11d2d3561
修改google地图对接bug
14个文件已修改
362 ■■■■■ 已修改文件
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderStatusWarpper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/resources/application-produce.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/resources/logback-spring.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -136,6 +136,7 @@
                orderStatusWarpper.setOrderId(orderPrivateCar.getId());
                orderStatusWarpper.setOrderType(1);
                orderStatusWarpper.setState(orderPrivateCar.getState());
                orderStatusWarpper.setTripId(orderPrivateCar.getTripId());
                data.add(orderStatusWarpper);
            }
            List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
@@ -147,6 +148,7 @@
                orderStatusWarpper.setOrderId(orderTaxi.getId());
                orderStatusWarpper.setOrderType(2);
                orderStatusWarpper.setState(orderTaxi.getState());
//                orderStatusWarpper.setTripId(orderTaxi.getTripId());
                data.add(orderStatusWarpper);
            }
            List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
@@ -158,6 +160,7 @@
                orderStatusWarpper.setOrderId(orderCrossCity.getId());
                orderStatusWarpper.setOrderType(3);
                orderStatusWarpper.setState(orderCrossCity.getState());
//                orderStatusWarpper.setTripId(orderPrivateCar.getTripId());
                data.add(orderStatusWarpper);
            }
            return ResultUtil.success(data);
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -13,6 +13,7 @@
import com.stylefeng.guns.modular.system.model.UserInfo;
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.itextpdf.HtmlToPdfUtils;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
@@ -81,6 +82,9 @@
    private ITransactionDetailsService transactionDetailsService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    @Autowired
    private FleetEngineUtil fleetEngineUtil;
@@ -1330,4 +1334,27 @@
            }
        }
    }
    @ResponseBody
    @PostMapping("/api/user/getFleetEngineAuth")
    @ApiOperation(value = "获取google地图授权token", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<String> getFleetEngineAuth(HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            String s = fleetEngineUtil.fleetEngineAuth(1, uid);
            return ResultUtil.success(s);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
@@ -282,6 +282,7 @@
        h.money as cancelMoney,
        h.reason as cancelReason,
        h.remark as cancelRemark,
        a.tripId,
        a.snatchOrderTime
        from t_order_logistics a
        left join t_driver b on (a.driverId = b.id)
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java
@@ -421,4 +421,9 @@
     */
    @TableField("cancelMidway")
    private Integer cancelMidway;
    /**
     * google行程id
     */
    @TableField("tripId")
    private String tripId;
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -47,6 +47,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -690,25 +691,29 @@
    
        orderLogistics.setIsReassign(1);
        orderLogistics.setIsDelete(1);
        orderLogistics.setTripId(UUIDUtil.getRandomCode());
        this.insert(orderLogistics);
    
    
        Integer vehicleId = null;
        String vehicleId = null;
        if(null != orderLogistics.getDriverId()){
            Driver driver = driverService.selectById(orderLogistics.getDriverId());
            vehicleId = driver.getCarId();
            Car car = carMapper.selectById(driver.getCarId());
            if(!StringUtils.hasLength(car.getVehicleId())){
                car.setVehicleId(UUIDUtil.getRandomCode());
                carMapper.updateById(car);
            }
            //查询车辆信息,没有则创建信息
            String vehicles = fleetEngineUtil.getVehicles(vehicleId);
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if(ToolUtil.isEmpty(vehicles)){
                Car car = carService.selectById(vehicleId);
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }
        
        }
        //创建行程数据
        fleetEngineUtil.createTrip(vehicleId, 1, 4, orderLogistics.getId(),
        fleetEngineUtil.createTrip(vehicleId, 1, orderLogistics.getTripId(),
                orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(), orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
    
    
@@ -831,6 +836,7 @@
        BaseWarpper baseWarpper = new BaseWarpper();
        baseWarpper.setState(orderLogistics.getState());
        baseWarpper.setId(orderLogistics.getId());
        baseWarpper.setContent(orderLogistics.getTripId());
        return ResultUtil.success(baseWarpper);
    }
    
@@ -2563,7 +2569,7 @@
        }
        
        //修改行程信息
        fleetEngineUtil.updateTrip("CANCELED", null, null, 4, orderLogistics.getId(), null, null, null, null);
        fleetEngineUtil.updateTrip("CANCELED", null, null, orderLogistics.getTripId(), null, null, null, null);
        
        //添加消息
        systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功取消包裹订单,谢谢使用!" : language == 2 ? "You've cancelled the delivery order successfully, thank you for using I-GO "
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -447,6 +447,7 @@
        a.moneyType,
        a.moneyTime,
        a.isFrozen,
        a.tripId,
        DATE_FORMAT(a.snatchOrderTime, '%Y-%m-%d %H:%i:%s') as snatchOrderTime
        from t_order_private_car a
        left join t_driver b on (a.driverId = b.id)
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -410,5 +410,10 @@
     */
    @TableField("cancelMidway")
    private Integer cancelMidway;
    /**
     * google行程id
     */
    @TableField("tripId")
    private String tripId;
   
}
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -49,6 +49,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -354,25 +355,29 @@
        orderPrivateCar.setIsReassign(1);
        orderPrivateCar.setIsDelete(1);
        orderPrivateCar.setTripId(UUIDUtil.getRandomCode());
        this.insert(orderPrivateCar);
    
    
        Integer vehicleId = null;
        String vehicleId = null;
        if(null != orderPrivateCar.getDriverId()){
            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
            vehicleId = driver.getCarId();
            Car car = carMapper.selectById(driver.getCarId());
            if(!StringUtils.hasLength(car.getVehicleId())){
                car.setVehicleId(UUIDUtil.getRandomCode());
                carMapper.updateById(car);
            }
            //查询车辆信息,没有则创建信息
            String vehicles = fleetEngineUtil.getVehicles(vehicleId);
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if(ToolUtil.isEmpty(vehicles)){
                Car car = carService.selectById(vehicleId);
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }
    
        }
        //创建行程数据
        fleetEngineUtil.createTrip(vehicleId, 1, 1, orderPrivateCar.getId(),
        fleetEngineUtil.createTrip(vehicleId, 1, orderPrivateCar.getTripId(),
                orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(), orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
        
@@ -495,6 +500,7 @@
        BaseWarpper baseWarpper = new BaseWarpper();
        baseWarpper.setState(orderPrivateCar.getState());
        baseWarpper.setId(orderPrivateCar.getId());
        baseWarpper.setContent(orderPrivateCar.getTripId());
        return ResultUtil.success(baseWarpper);
    }
@@ -718,7 +724,7 @@
        }
        
        //修改行程信息
        fleetEngineUtil.updateTrip("CANCELED", null, null, 1, orderPrivateCar.getId(), null, null, null, null);
        fleetEngineUtil.updateTrip("CANCELED", null, null, orderPrivateCar.getTripId(), null, null, null, null);
        
        //添加消息
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java
@@ -4,12 +4,14 @@
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
import java.util.Date;
/**
 * 车辆
 */
@Data
@TableName("t_car")
public class Car {
    /**
@@ -103,170 +105,9 @@
     */
    @TableField("addObjectId")
    private Integer addObjectId;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getIsPlatCar() {
        return isPlatCar;
    }
    public void setIsPlatCar(Integer isPlatCar) {
        this.isPlatCar = isPlatCar;
    }
    public Integer getCompanyId() {
        return companyId;
    }
    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }
    public Integer getFranchiseeId() {
        return franchiseeId;
    }
    public void setFranchiseeId(Integer franchiseeId) {
        this.franchiseeId = franchiseeId;
    }
    public String getCarColor() {
        return carColor;
    }
    public void setCarColor(String carColor) {
        this.carColor = carColor;
    }
    public Integer getCarModelId() {
        return carModelId;
    }
    public void setCarModelId(Integer carModelId) {
        this.carModelId = carModelId;
    }
    public Integer getCarBrandId() {
        return carBrandId;
    }
    public void setCarBrandId(Integer carBrandId) {
        this.carBrandId = carBrandId;
    }
    public String getCarLicensePlate() {
        return carLicensePlate;
    }
    public void setCarLicensePlate(String carLicensePlate) {
        this.carLicensePlate = carLicensePlate;
    }
    public String getCarPhoto() {
        return carPhoto;
    }
    public void setCarPhoto(String carPhoto) {
        this.carPhoto = carPhoto;
    }
    public String getDrivingLicenseNumber() {
        return drivingLicenseNumber;
    }
    public void setDrivingLicenseNumber(String drivingLicenseNumber) {
        this.drivingLicenseNumber = drivingLicenseNumber;
    }
    public String getDrivingLicensePhoto() {
        return drivingLicensePhoto;
    }
    public void setDrivingLicensePhoto(String drivingLicensePhoto) {
        this.drivingLicensePhoto = drivingLicensePhoto;
    }
    public Date getAnnualInspectionTime() {
        return annualInspectionTime;
    }
    public void setAnnualInspectionTime(Date annualInspectionTime) {
        this.annualInspectionTime = annualInspectionTime;
    }
    public String getInsurancePhoto() {
        return insurancePhoto;
    }
    public void setInsurancePhoto(String insurancePhoto) {
        this.insurancePhoto = insurancePhoto;
    }
    public Date getCommercialInsuranceTime() {
        return commercialInsuranceTime;
    }
    public void setCommercialInsuranceTime(Date commercialInsuranceTime) {
        this.commercialInsuranceTime = commercialInsuranceTime;
    }
    public Date getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Integer getAddType() {
        return addType;
    }
    public void setAddType(Integer addType) {
        this.addType = addType;
    }
    public Integer getAddObjectId() {
        return addObjectId;
    }
    public void setAddObjectId(Integer addObjectId) {
        this.addObjectId = addObjectId;
    }
    @Override
    public String toString() {
        return "Car{" +
                "id=" + id +
                ", isPlatCar=" + isPlatCar +
                ", companyId=" + companyId +
                ", carColor='" + carColor + '\'' +
                ", carModelId=" + carModelId +
                ", carBrandId=" + carBrandId +
                ", carLicensePlate='" + carLicensePlate + '\'' +
                ", carPhoto='" + carPhoto + '\'' +
                ", drivingLicenseNumber='" + drivingLicenseNumber + '\'' +
                ", drivingLicensePhoto='" + drivingLicensePhoto + '\'' +
                ", annualInspectionTime=" + annualInspectionTime +
                ", commercialInsuranceTime=" + commercialInsuranceTime +
                ", insertTime=" + insertTime +
                ", state=" + state +
                ", addType=" + addType +
                ", addObjectId=" + addObjectId +
                '}';
    }
    /**
     * google车辆id
     */
    @TableField("vehicleId")
    private String vehicleId;
}
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());
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java
@@ -146,6 +146,7 @@
    private String snatchOrderTime;
    @ApiModelProperty("超时取消时间")
    private Integer timeOutCancel;
    private String tripId;
    private List<OrderPosition> orderPositionList;
    public static OrderInfoWarpper getOrderInfoWarpper(Map<String, Object> map){
@@ -219,6 +220,7 @@
            orderInfoWarpper.setTimeOutCancel(null != map.get("timeOutCancel") ? Integer.valueOf(map.get("timeOutCancel").toString()) : 0);
            orderInfoWarpper.setSnatchOrderTime(null != map.get("snatchOrderTime") ? map.get("snatchOrderTime").toString() : "");
            orderInfoWarpper.setPriceDifference(null != map.get("priceDifference") ? Double.valueOf(map.get("priceDifference").toString()) : 0);
            orderInfoWarpper.setTripId(null != map.get("tripId") ? map.get("tripId").toString() : "");
        }
        if(orderInfoWarpper.getState()==7){
            orderInfoWarpper.setOrderMoney(orderInfoWarpper.getOrderMoney()-orderInfoWarpper.getDiscountMoney());
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderStatusWarpper.java
@@ -11,6 +11,8 @@
    private Integer orderType;
    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)")
    private Integer state;
    private String tripId;
    public Integer getOrderId() {
        return orderId;
@@ -35,4 +37,12 @@
    public void setState(Integer state) {
        this.state = state;
    }
    public String getTripId() {
        return tripId;
    }
    public void setTripId(String tripId) {
        this.tripId = tripId;
    }
}
UserIGOTravel/guns-admin/src/main/resources/application-produce.yml
@@ -47,7 +47,7 @@
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/igotravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0
    url: jdbc:mysql://127.0.0.1:3306/igotravel2.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0
    username: root
    password: HjKbXilb9zajmXbl
    db-name: guns #用来搜集数据库的所有表
UserIGOTravel/guns-admin/src/main/resources/logback-spring.xml
@@ -212,7 +212,7 @@
    </springProfile>
    <springProfile name="produce">
        <root level="warn">
        <root level="info">
            <!-- 生产环境最好不配置console写文件 -->
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />