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