From 57909bfeb70e80689cfe515198e3a30ad3868bb8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 07 八月 2024 09:35:28 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/IgoTravel into 2.0 --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 151 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 103 insertions(+), 48 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index f37df73..9059077 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -17,10 +17,7 @@ import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo; -import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil; -import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; -import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo; +import com.stylefeng.guns.modular.system.util.GoogleMap.*; import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils; import com.stylefeng.guns.modular.system.warpper.*; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -334,6 +331,7 @@ BigDecimal bigDecimal = new BigDecimal("0"); for(Map<String, Object> map : query){ DriverActivityHistory dah = new DriverActivityHistory(); + dah.setDriverActivityId(Integer.valueOf(map.get("driverActivityId").toString())); dah.setActivityId(Integer.valueOf(map.get("id").toString())); dah.setDriverId(uid); dah.setType(1); @@ -529,6 +527,7 @@ BigDecimal bigDecimal = new BigDecimal("0"); for(Map<String, Object> map : query){ DriverActivityHistory dah = new DriverActivityHistory(); + dah.setDriverActivityId(Integer.valueOf(map.get("driverActivityId").toString())); dah.setActivityId(Integer.valueOf(map.get("id").toString())); dah.setDriverId(uid); dah.setType(1); @@ -1097,22 +1096,25 @@ loginWarpper.setJumpCode("200000"); } } - - //司机登录,添加谷歌上的车辆信息 - Car car = carService.selectById(driver.getCarId()); - if(null == car){ - return ResultUtil.error(language == 1 ? "登录失败,请先绑定车辆" : language == 2 ? "Login failed, please bind the vehicle first" : "La connexion a échoué, veuillez d’abord lier le véhicule"); + if(null != driver.getCarId()){ + Car car = carService.selectById(driver.getCarId()); + if(!StringUtils.hasLength(car.getVehicleId())){ + car.setVehicleId(UUIDUtil.getRandomCode()); + carService.updateById(car); + } + new Thread(()->{ + try { + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if(ToolUtil.isEmpty(vehicles)) { + fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + loginWarpper.setVehicleId(car.getVehicleId()); } - 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(), car.getVehicleId()); - } - loginWarpper.setVehicleId(car.getVehicleId()); return ResultUtil.success(loginWarpper); } @@ -1125,6 +1127,9 @@ */ @Override public Map<String, Object> queryHomeData(Integer uid, Integer language) throws Exception { + Driver driver = this.selectById(uid); + driver.setLanguage(language); + this.updateById(driver); Map<String, Object> map = driverMapper.queryHomeData(uid); int size = this.queryMyActivity(uid, new Date(), language).size(); map.put("activity", size); @@ -1186,8 +1191,10 @@ public ResultUtil work(Integer uid, String type, Integer language) throws Exception { DriverWork driverWork = driverWorkMapper.queryNewWork(uid, null, 1); Driver driver = this.selectById(uid); + driver.setLanguage(language); Car car = carService.selectById(driver.getCarId()); String audioUrl = ""; + LoginWarpper loginWarpper = new LoginWarpper(); if(null != driverWork){//作下班操作 //检测是否有未完成的订单 List<Map<String, Object>> list = orderService.queryOrderList(1, 1, 10, uid, language); @@ -1205,26 +1212,32 @@ } //司机下班,修改谷歌上的车辆信息 - CarModel carModel = carModelMapper.selectById(car.getCarModelId()); - String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); - if(ToolUtil.isEmpty(vehicles)){ - fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - }else{ - fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - } + new Thread(()->{ + try { + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if(ToolUtil.isEmpty(vehicles)){ + fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + }else{ + fleetEngineUtil.updateVehicles("OFFLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); switch (language){ case 1: - audioUrl = "http://182.160.16.251:81/files/audio/AfterWork-CN.mp3"; + audioUrl = "http://182.160.16.251:81/files/audio/system/AfterWork-CN.mp3"; break; case 2: - audioUrl = "http://182.160.16.251:81/files/audio/AfterWork-EN.mp3"; + audioUrl = "http://182.160.16.251:81/files/audio/system/AfterWork-EN.mp3"; break; case 3: - audioUrl = "http://182.160.16.251:81/files/audio/AfterWork-FR.mp3"; + audioUrl = "http://182.160.16.251:81/files/audio/system/AfterWork-FR.mp3"; break; } }else{ - LoginWarpper loginWarpper = new LoginWarpper(); if(driver.getCompanyId()==null){ loginWarpper.setJumpCode("100000"); return ResultUtil.success(loginWarpper); @@ -1250,6 +1263,8 @@ if(car.getAuthState()==4){ return ResultUtil.error(language == 1 ? "请完善资料后再出车" : language == 2 ? "Please complete data before driving." : "Veuillez compléter les données avant de conduire."); } + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -1264,28 +1279,40 @@ } //司机上班,修改谷歌上的车辆信息 - CarModel carModel = carModelMapper.selectById(car.getCarModelId()); - String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); - if(ToolUtil.isEmpty(vehicles)){ - fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - }else{ - fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); - } + new Thread(new Runnable() { + @Override + public void run() { + try { + CarModel carModel = carModelMapper.selectById(car.getCarModelId()); + String vehicles = fleetEngineUtil.getVehicles(car.getVehicleId()); + if(ToolUtil.isEmpty(vehicles)){ + fleetEngineUtil.createVehicles(carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + }else{ + fleetEngineUtil.updateVehicles("ONLINE", carModel.getSeat() - 1, car.getCarLicensePlate(), car.getVehicleId()); + } + }catch (Exception e){ + e.printStackTrace(); + } + } + }).start(); switch (language){ case 1: - audioUrl = "http://182.160.16.251:81/files/audio/AtWork-CN.mp3"; + audioUrl = "http://182.160.16.251:81/files/audio/system/AtWork-CN.mp3"; break; case 2: - audioUrl = "http://182.160.16.251:81/files/audio/AtWork-EN.mp3"; + audioUrl = "http://182.160.16.251:81/files/audio/system/AtWork-EN.mp3"; break; case 3: - audioUrl = "http://182.160.16.251:81/files/audio/AtWork-FR.mp3"; + audioUrl = "http://182.160.16.251:81/files/audio/system/AtWork-FR.mp3"; break; } } this.updateById(driver); - return ResultUtil.success(audioUrl); + loginWarpper.setAudioUrl(audioUrl); + loginWarpper.setVehicleId(car.getVehicleId()); + return ResultUtil.success(loginWarpper); } @@ -1409,13 +1436,6 @@ break; } maps.add(baseWarpper); - } - DriverOrders query = driverOrdersMapper.query(uid, 1); - if(null == query){ - query = new DriverOrders(); - query.setDriverId(uid); - query.setType(1); - driverOrdersMapper.insert(query); } return maps; } @@ -1854,6 +1874,7 @@ for(Map<String, Object> map : query){ for(Driver driver : drivers){ DriverActivityHistory driverActivityHistory = new DriverActivityHistory(); + driverActivityHistory.setDriverActivityId(Integer.valueOf(map.get("driverActivityId").toString())); driverActivityHistory.setActivityId(Integer.valueOf(String.valueOf(map.get("id")))); driverActivityHistory.setType(1); driverActivityHistory.setDriverId(driver.getId()); @@ -1981,6 +2002,7 @@ for(Map<String, Object> map : query){ for(Driver driver : drivers){ DriverActivityHistory driverActivityHistory = new DriverActivityHistory(); + driverActivityHistory.setDriverActivityId(Integer.valueOf(map.get("driverActivityId").toString())); driverActivityHistory.setActivityId(Integer.valueOf(String.valueOf(map.get("id")))); driverActivityHistory.setType(2); driverActivityHistory.setDriverId(driver.getId()); @@ -2104,6 +2126,7 @@ DriverActivityOnline driverActivityOnline = driverActivityOnlineMapper.selectById(Integer.valueOf(String.valueOf(map.get("id")))); for(Driver driver : drivers){ DriverActivityHistory driverActivityHistory = new DriverActivityHistory(); + driverActivityHistory.setDriverActivityId(Integer.valueOf(map.get("driverActivityId").toString())); driverActivityHistory.setActivityId(Integer.valueOf(String.valueOf(map.get("id")))); driverActivityHistory.setType(3); driverActivityHistory.setDriverId(driver.getId()); @@ -2227,6 +2250,7 @@ DriverActivityOrder driverActivityOrder = driverActivityOrderMapper.selectById(Integer.valueOf(String.valueOf(map.get("id")))); for(Driver driver : drivers){ DriverActivityHistory driverActivityHistory = new DriverActivityHistory(); + driverActivityHistory.setDriverActivityId(Integer.valueOf(map.get("driverActivityId").toString())); driverActivityHistory.setActivityId(Integer.valueOf(String.valueOf(map.get("id")))); driverActivityHistory.setType(4); driverActivityHistory.setDriverId(driver.getId()); @@ -3078,4 +3102,35 @@ public Double getThisWeekMoney(Integer driverId) { return this.baseMapper.getThisWeekMoney(driverId); } + + + /** + * 获取给定车型且空闲的司机 + * @param type + * @param serverCarModelId + * @param lon + * @param lat + * @param distance + * @param companyId + * @return + * @throws Exception + */ + @Override + public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception { + List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); + List<Driver> list = new ArrayList<>(); + for(Driver driver : drivers){ + String value = redisUtil.getValue("DRIVER" + driver.getId()); + if(ToolUtil.isNotEmpty(value)){ + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0])); + if(null != distancematrix){ + if(distancematrix.getDistance() < (distance * 1000)){ + list.add(driver); + } + } + + } + } + return list; + } } -- Gitblit v1.7.1