From 8b09fbc19a96b57bf1d0e4d7c79b51a76aeca554 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 28 三月 2025 19:57:56 +0800 Subject: [PATCH] 修改bug --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index c36a8ad..886a48c 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -10,6 +10,9 @@ import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; import com.stylefeng.guns.modular.system.util.GDMapGeocodingUtil; +import com.stylefeng.guns.modular.system.util.GeodesyUtil; +import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo; +import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; import com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import org.springframework.beans.factory.annotation.Autowired; @@ -55,10 +58,9 @@ for(Driver driver : drivers){ String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId())); if(null != value){ - /*Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离 - double d = Double.valueOf(distance1.get("distance")).doubleValue();*/ - double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0])); - if(d < (distance * 1000)){ + Map<String, Double> distance1 = GeodesyUtil.getDistance(lon + "," + lat, value); + Double wgs84 = distance1.get("WGS84"); + if(wgs84.compareTo(distance * 1000) < 0){ list.add(driver); } } @@ -79,18 +81,20 @@ * @throws Exception */ @Override - public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception { + public List<Driver> queryIdleDriver(Integer uid, Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception { + String tripId = redisUtil.getValue("trip" + uid); List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId); List<Driver> list = new ArrayList<>(); for(Driver driver : drivers){ - String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId())); + String value = redisUtil.getValue("DRIVER" + driver.getId()); if(null != value){ - /*Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离 - double d = Double.valueOf(distance1.get("distance")).doubleValue();*/ - double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0])); - if(d < (distance * 1000)){ - list.add(driver); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(lat, lon, Double.parseDouble(value.split(",")[1]), Double.parseDouble(value.split(",")[0]), tripId); + if(null != distancematrix){ + if(distancematrix.getDistance() < (distance * 1000)){ + list.add(driver); + } } + } } return list; @@ -129,7 +133,7 @@ * @throws Exception */ @Override - public List<BaseWarpper> queryBusiness(Integer uid) throws Exception { + public List<BaseWarpper> queryBusiness(Integer uid, Integer language) throws Exception { List<DriverService> list = driverServiceMapper.queryBusiness(uid, null); List<BaseWarpper> maps = new ArrayList<>(); for (DriverService d : list){ @@ -137,7 +141,7 @@ baseWarpper.setId(d.getType()); switch (d.getType()){ case 1: - baseWarpper.setName("专车"); + baseWarpper.setName(language == 1 ? "打车" : language == 2 ? "Ride" : "Course"); break; case 2: baseWarpper.setName("出租车"); @@ -146,7 +150,7 @@ baseWarpper.setName("跨城出行"); break; case 4: - baseWarpper.setName("同城小件物流"); + baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison"); break; case 5: baseWarpper.setName("跨城小件物流"); -- Gitblit v1.7.1