zhibing.pu
2024-06-21 0f9a91a7609e6623ada0f8b5a9ee878e77e5aa32
修改google地图对接bug
1 文件已重命名
17个文件已修改
454 ■■■■■ 已修改文件
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BalanceUsageRecordMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord1.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBalanceUsageRecordService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BalanceUsageRecordServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleMap/FleetEngineUtil.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/resources/application-produce.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/resources/logback-spring.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/resources/quartz.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -15,6 +15,7 @@
import com.stylefeng.guns.modular.system.util.ALiSendSms;
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.util.EmailUtil;
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecord;
@@ -93,6 +94,9 @@
    
    @Resource
    private IBalanceUsageRecordService balanceUsageRecordService;
    @Autowired
    private FleetEngineUtil fleetEngineUtil;
@@ -1721,4 +1725,27 @@
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/api/driver/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 = driverService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            String s = fleetEngineUtil.fleetEngineAuth(2, uid);
            return ResultUtil.success(s);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
@@ -26,7 +26,8 @@
        a.urgent as urgent,
        a.tipMoney as tipMoney,
        a.remark as remark,
        a.isReassign as isReassign
        a.isReassign as isReassign,
        a.tripId
        from t_order_logistics a
        left join t_user b on (a.userId = b.id)
        where a.id = #{orderId}
@@ -70,6 +71,7 @@
        a.driverPay,
        a.isFrozen,
        a.priceDifference,
        a.tripId,
        DATE_FORMAT(a.snatchOrderTime, '%Y-%m-%d %H:%i:%s') as snatchOrderTime
        from t_order_logistics a
        left join t_user b on (a.userId = b.id)
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java
@@ -420,4 +420,9 @@
     */
    @TableField("cancelMidway")
    private Integer cancelMidway;
    /**
     * google行程id
     */
    @TableField("tripId")
    private String tripId;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -20,6 +20,7 @@
import com.stylefeng.guns.modular.system.util.quartz.QuartzUtil;
import com.stylefeng.guns.modular.system.util.quartz.jobs.OrderTimeOutJob;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import org.apache.shiro.util.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@@ -169,7 +170,9 @@
                driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
        orderLogistics.setState(2);
        orderLogistics.setSnatchOrderTime(new Date());
        if(!StringUtils.hasLength(orderLogistics.getTripId())){
            orderLogistics.setTripId(UUIDUtil.getRandomCode());
        }
        this.updateById(orderLogistics);
        //修改司机为服务中
        driver.setState(3);
@@ -191,19 +194,23 @@
                    , new Date(packageTimeoutReminderInterval), packageTimeoutReminderInterval, -1);
        }
    
        String trip = fleetEngineUtil.getTrip(1, orderLogistics.getId());
        if(ToolUtil.isEmpty(trip)){
            String vehicles = fleetEngineUtil.getVehicles(orderLogistics.getCarId());
            if(ToolUtil.isEmpty(vehicles)){
                Car car = carService.selectById(orderLogistics.getCarId());
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getId());
        if(!StringUtils.hasLength(car.getVehicleId())){
            car.setVehicleId(UUIDUtil.getRandomCode());
            carService.updateById(car);
            }
            fleetEngineUtil.createTrip(orderLogistics.getCarId(), 1, 4, orderLogistics.getId(),
        String trip = fleetEngineUtil.getTrip(orderLogistics.getTripId());
        if(ToolUtil.isEmpty(trip)){
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if(ToolUtil.isEmpty(vehicles)){
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }
            fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderLogistics.getTripId(),
                    orderLogistics.getStartLat().toString(), orderLogistics.getStartLon().toString(),  orderLogistics.getEndLat().toString(), orderLogistics.getEndLon().toString());
        }else{
            //开始修改行程数据
            fleetEngineUtil.updateTrip(null, driver.getCarId(), null, 4, orderLogistics.getId(), null, null, null, null);
            fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
        }
        
        //推送相关代码------------------start----------------
@@ -315,8 +322,9 @@
        this.updateById(orderLogistics);
    
        Driver driver = driverService.selectById(orderLogistics.getDriverId());
        Car car = carMapper.selectById(driver.getCarId());
        //修改行程数据
        fleetEngineUtil.updateTrip(tripStatus, null, null, 4, orderLogistics.getId(), null, null, null, null);
        fleetEngineUtil.updateTrip(tripStatus, car.getVehicleId(), null, orderLogistics.getTripId(), null, null, null, null);
        
        // TODO: 2020/6/5 推送状态
        new Thread(new Runnable() {
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -207,7 +207,8 @@
        orderSource as orderSource,
        orderType as orderType,
        isReassign as isReassign,
        companyId as companyId
        companyId as companyId,
        tripId
        from t_order_private_car where id = #{orderId}
    </select>
@@ -252,6 +253,7 @@
        (select isSpecialCar from t_sys_reformist where companyId = a.companyId) as reassign,
        a.driverPay,
        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_user b on (a.userId = b.id)
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -442,4 +442,9 @@
     */
    @TableField("cancelMidway")
    private Integer cancelMidway;
    /**
     * google行程id
     */
    @TableField("tripId")
    private String tripId;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -20,6 +20,7 @@
import com.stylefeng.guns.modular.system.util.quartz.jobs.OrderTimeOutJob;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
import org.apache.shiro.util.StringUtils;
import org.quartz.JobDataMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -215,6 +216,9 @@
                driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
        orderPrivateCar.setState(2);
        orderPrivateCar.setSnatchOrderTime(new Date());
        if(!StringUtils.hasLength(orderPrivateCar.getTripId())){
            orderPrivateCar.setTripId(UUIDUtil.getRandomCode());
        }
        this.updateById(orderPrivateCar);
        //如果是预约单,则不修改司机为服务中
@@ -268,19 +272,23 @@
            }
        }
    
        String trip = fleetEngineUtil.getTrip(1, orderPrivateCar.getId());
        if(ToolUtil.isEmpty(trip)){
            String vehicles = fleetEngineUtil.getVehicles(orderPrivateCar.getCarId());
            if(ToolUtil.isEmpty(vehicles)){
                Car car = carService.selectById(orderPrivateCar.getCarId());
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getId());
        if(!StringUtils.hasLength(car.getVehicleId())){
            car.setVehicleId(UUIDUtil.getRandomCode());
            carService.updateById(car);
            }
            fleetEngineUtil.createTrip(orderPrivateCar.getCarId(), 1, 1, orderPrivateCar.getId(),
        String trip = fleetEngineUtil.getTrip(orderPrivateCar.getTripId());
        if(ToolUtil.isEmpty(trip)){
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if(ToolUtil.isEmpty(vehicles)){
                CarModel carModel = carModelMapper.selectById(car.getCarModelId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }
            fleetEngineUtil.createTrip(car.getVehicleId(), 1, orderPrivateCar.getTripId(),
                    orderPrivateCar.getStartLat().toString(), orderPrivateCar.getStartLon().toString(),  orderPrivateCar.getEndLat().toString(), orderPrivateCar.getEndLon().toString());
        }
        //开始修改行程数据
        fleetEngineUtil.updateTrip(null, driver.getCarId(), null, 1, orderPrivateCar.getId(), null, null, null, null);
        fleetEngineUtil.updateTrip(null, car.getVehicleId(), null, orderPrivateCar.getTripId(), null, null, null, null);
        
        //推送相关代码------------------start----------------
        new Thread(new Runnable() {
@@ -408,7 +416,7 @@
    
        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
        //修改行程数据
        fleetEngineUtil.updateTrip(tripStatus, null, 1, 1, orderPrivateCar.getId(), null, null, null, null);
        fleetEngineUtil.updateTrip(tripStatus, null, 1, orderPrivateCar.getTripId(), null, null, null, null);
        // TODO: 2020/6/5 推送状态
        OrderPrivateCar finalOrderPrivateCar = orderPrivateCar;
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BalanceUsageRecordMapper.java
@@ -1,7 +1,7 @@
package com.stylefeng.guns.modular.system.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord1;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -11,7 +11,7 @@
 * @author zhibing.pu
 * @Date 2024/5/13 10:24
 */
public interface BalanceUsageRecordMapper extends BaseMapper<BalanceUsageRecord> {
public interface BalanceUsageRecordMapper extends BaseMapper<BalanceUsageRecord1> {
    
    
    /**
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord1.java
File was renamed from DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BalanceUsageRecord.java
@@ -14,7 +14,7 @@
 */
@Data
@TableName("t_balance_usage_record")
public class BalanceUsageRecord {
public class BalanceUsageRecord1 {
    /**
     * 主键
     */
DriverIGOTravel/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 {
    /**
@@ -106,14 +108,6 @@
    private Integer authState;
    public Integer getAuthState() {
        return authState;
    }
    public void setAuthState(Integer authState) {
        this.authState = authState;
    }
    /**
     * 添加来源(1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加)
     */
@@ -129,194 +123,9 @@
     */
    @TableField("driverId")
    private Integer driverId;
    public Integer getDriverId() {
        return driverId;
    }
    public void setDriverId(Integer driverId) {
        this.driverId = driverId;
    }
    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 String getPeopleAndCarsPhone() {
        return peopleAndCarsPhone;
    }
    public void setPeopleAndCarsPhone(String peopleAndCarsPhone) {
        this.peopleAndCarsPhone = peopleAndCarsPhone;
    }
    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;
    }
    public Date getDrivingLicenseEndTime() {
        return drivingLicenseEndTime;
    }
    public void setDrivingLicenseEndTime(Date drivingLicenseEndTime) {
        this.drivingLicenseEndTime = drivingLicenseEndTime;
    }
    @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;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBalanceUsageRecordService.java
@@ -1,7 +1,7 @@
package com.stylefeng.guns.modular.system.service;
import com.baomidou.mybatisplus.service.IService;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord1;
import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecordList;
import java.util.List;
@@ -10,7 +10,7 @@
 * @author zhibing.pu
 * @Date 2024/5/13 10:25
 */
public interface IBalanceUsageRecordService extends IService<BalanceUsageRecord> {
public interface IBalanceUsageRecordService extends IService<BalanceUsageRecord1> {
    
    /**
     * 获取使用记录列表
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BalanceUsageRecordServiceImpl.java
@@ -2,7 +2,7 @@
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord;
import com.stylefeng.guns.modular.system.model.BalanceUsageRecord1;
import com.stylefeng.guns.modular.system.service.IBalanceUsageRecordService;
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecordList;
@@ -18,7 +18,7 @@
 * @Date 2024/5/13 10:25
 */
@Service
public class BalanceUsageRecordServiceImpl extends ServiceImpl<BalanceUsageRecordMapper, BalanceUsageRecord> implements IBalanceUsageRecordService {
public class BalanceUsageRecordServiceImpl extends ServiceImpl<BalanceUsageRecordMapper, BalanceUsageRecord1> implements IBalanceUsageRecordService {
    
    
    /**
@@ -90,7 +90,7 @@
     */
    @Override
    public void saveBalanceUsageRecord(Integer driverId, Integer type, Double money, Integer purpose) {
        BalanceUsageRecord balanceUsageRecord = new BalanceUsageRecord();
        BalanceUsageRecord1 balanceUsageRecord = new BalanceUsageRecord1();
        balanceUsageRecord.setDriverId(driverId);
        balanceUsageRecord.setType(type);
        balanceUsageRecord.setMoney(money);
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -29,6 +29,7 @@
import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.apache.shiro.util.ByteSource;
import org.apache.shiro.util.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@@ -1102,10 +1103,14 @@
    
        //司机登录,添加谷歌上的车辆信息
        Car car = carService.selectById(driver.getCarId());
        String vehicles = fleetEngineUtil.getVehicles(driver.getCarId());
        if(!StringUtils.hasLength(car.getVehicleId())){
            car.setVehicleId(UUIDUtil.getRandomCode());
            carService.updateById(car);
        }
        String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
        if(ToolUtil.isEmpty(vehicles)){
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
            fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
        }
        return ResultUtil.success(loginWarpper);
    }
@@ -1192,13 +1197,18 @@
            driverWorkMapper.updateById(driverWork);
            driver.setState(1);
    
            if(!StringUtils.hasLength(car.getVehicleId())){
                car.setVehicleId(UUIDUtil.getRandomCode());
                carService.updateById(car);
            }
            //司机下班,修改谷歌上的车辆信息
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            String vehicles = fleetEngineUtil.getVehicles(driver.getCarId());
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if(ToolUtil.isEmpty(vehicles)){
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }else{
                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }
        }else{
            LoginWarpper loginWarpper = new LoginWarpper();
@@ -1235,13 +1245,18 @@
            driverWorkMapper.insert(driverWork);
            driver.setState(2);
    
            if(!StringUtils.hasLength(car.getVehicleId())){
                car.setVehicleId(UUIDUtil.getRandomCode());
                carService.updateById(car);
            }
            //司机上班,修改谷歌上的车辆信息
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            String vehicles = fleetEngineUtil.getVehicles(driver.getCarId());
            String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId());
            if(ToolUtil.isEmpty(vehicles)){
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }else{
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), driver.getCarId());
                fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId());
            }
        }
        this.updateById(driver);
DriverIGOTravel/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());
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java
@@ -96,6 +96,7 @@
    private Integer timeOutCancel;
    @ApiModelProperty("接单时间")
    private String snatchOrderTime;
    private String tripId;
    public Integer getStartDuration() {
        return startDuration;
@@ -449,6 +450,14 @@
        this.userPhone = userPhone;
    }
    
    public String getTripId() {
        return tripId;
    }
    public void setTripId(String tripId) {
        this.tripId = tripId;
    }
    @Override
    public String toString() {
        return "OrderInfoWarpper{" +
@@ -537,6 +546,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.setUserPhone(null != map.get("userPhone") ? map.get("userPhone").toString() : "");
            orderInfoWarpper.setTripId(null != map.get("tripId") ? map.get("tripId").toString() : "");
        }
        return orderInfoWarpper;
    }
DriverIGOTravel/guns-admin/src/main/resources/application-produce.yml
@@ -41,7 +41,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 #用来搜集数据库的所有表
DriverIGOTravel/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" />
DriverIGOTravel/guns-admin/src/main/resources/quartz.properties
@@ -35,5 +35,5 @@
org.quartz.dataSource.myDS.driver=com.mysql.cj.jdbc.Driver
org.quartz.dataSource.myDS.URL=jdbc:mysql://127.0.0.1:3306/igotravel2.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B0
org.quartz.dataSource.myDS.user=root
org.quartz.dataSource.myDS.password=123456
org.quartz.dataSource.myDS.password=HjKbXilb9zajmXbl
org.quartz.dataSource.myDS.maxConnections=10