From 5ff9f9e7aa7722cde48eb2b3ba49d7bc2e61547b Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期三, 13 八月 2025 10:34:37 +0800 Subject: [PATCH] bug修改 --- UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 15 +++++++++++++++ UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 0 deletions(-) diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java index 6906973..201de9e 100644 --- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java +++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java @@ -321,6 +321,45 @@ */ @TableField("appletsOpenId") private String appletsOpenId; + /** + * 经度 + */ + @TableField(exist = false) + private Double lon; + /** + * 纬度 + */ + @TableField(exist = false) + private Double lat; + /** + * 距离 + */ + @TableField(exist = false) + private Double distance; + + public Double getLon() { + return lon; + } + + public void setLon(Double lon) { + this.lon = lon; + } + + public Double getLat() { + return lat; + } + + public void setLat(Double lat) { + this.lat = lat; + } + + public Double getDistance() { + return distance; + } + + public void setDistance(Double distance) { + this.distance = distance; + } public String getAccount() { return account; diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 9040088..246b928 100644 --- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -14,9 +14,11 @@ import com.stylefeng.guns.modular.system.warpper.BaseWarpper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -164,7 +166,20 @@ @Override public List<Driver> queryDriverLimitTen(Integer type, Double lon, Double lat) { List<Driver> drivers = driverMapper.queryIdleDriver(type, null); + if(CollectionUtils.isEmpty(drivers)){ + return new ArrayList<>(); + } + for (Driver driver : drivers) { + String value = redisUtil.getValue("DRIVER" + driver.getId()); + if(null != value){ + double d = GDMapGeocodingUtil.getDistance(lat,lon,Double.parseDouble(value.split(",")[1]),Double.parseDouble(value.split(",")[0])); + driver.setLon(Double.parseDouble(value.split(",")[0])); + driver.setLat(Double.parseDouble(value.split(",")[1])); + driver.setDistance(d); + } + } if(drivers.size() > 10){ + drivers.sort(Comparator.comparing(Driver::getDistance)); return drivers.stream().limit(10).collect(Collectors.toList()); }else { return drivers; -- Gitblit v1.7.1