From e28d33c09405e246a2d75fcb1f69a9e8e9d911b8 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 29 九月 2022 09:07:31 +0800 Subject: [PATCH] 更新最新代码 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java | 43 +++++++++++++++++++++++++++++++++---------- 1 files changed, 33 insertions(+), 10 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java index 4c11ec2..7b22e37 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java @@ -9,8 +9,13 @@ import com.stylefeng.guns.modular.system.model.ServerCarModel; import com.stylefeng.guns.modular.system.service.ICompanyCityService; import com.stylefeng.guns.modular.system.service.IServerCarModelService; +import com.stylefeng.guns.modular.system.service.IUserInfoService; import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil; import com.stylefeng.guns.modular.system.util.GDMapGeocodingUtil; +import com.stylefeng.guns.modular.system.util.GoogleMap.AddressComponentsVo; +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.GoogleMap.ReverseGeocodeVo; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper; import org.springframework.beans.factory.annotation.Autowired; @@ -39,6 +44,9 @@ @Autowired private ICompanyCityService companyCityService; + @Autowired + private IUserInfoService userInfoService; + @@ -53,25 +61,40 @@ * @throws Exception */ @Override - public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type) throws Exception { + public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type, Integer language) throws Exception { //查找与起点匹配的企业(经营范围) - Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLonLat.split(",")[0], startLonLat.split(",")[1]); - Company query = companyCityService.query(geocode.get("districtCode")); + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(startLonLat.split(",")[1]), Double.valueOf(startLonLat.split(",")[0])); + if(null == language){ + language = 2; + } + if(null == reverseGeocode){ + return ResultUtil.error(language == 1 ? "获取地址信息失败" : language == 2 ? "Failed to get address information" : "Impossible d'obtenir les informations d'adresse"); + } + AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos(); + String[] city = new String[addressComponentsVos.length]; + for (int i = 0; i < addressComponentsVos.length; i++) { + city[i] = addressComponentsVos[i].getLongName(); + } + Company query = companyCityService.query(city); if(null == query){ - return ResultUtil.error("起点暂无企业提供服务", new ArrayList<>()); + return ResultUtil.error(language == 1 ? "起点暂无企业提供服务" : language == 2 ? "The starting point has no enterprises to provide services" : "Le point de départ n'a pas d'entreprises pour fournir des services", new ArrayList<>()); } - Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLonLat, endLonLat, 1); - if(null == distance){ - return ResultUtil.error("获取预估距离出错", new ArrayList<>()); + Double slnt = Double.valueOf(startLonLat.split(",")[0]); + Double slat = Double.valueOf(startLonLat.split(",")[1]); + Double elnt = Double.valueOf(startLonLat.split(",")[0]); + Double elat = Double.valueOf(startLonLat.split(",")[1]); + DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(slat, slnt, elat, elnt); + if(null == distancematrix){ + return ResultUtil.error(language == 1 ? "获取预估距离出错" : language == 2 ? "Error getting estimated distance" : "Erreur lors de l'obtention de la distance estimée", new ArrayList<>()); } - String distance1 = distance.get("distance");//距离(米) + long distance1 = distancematrix.getDistance();//距离(米) double distance1_ = Double.valueOf(distance1).doubleValue(); - String duration = distance.get("duration");//时间(秒) + long duration = distancematrix.getDuration();//时间(秒) long duration_ = Long.valueOf(duration).longValue(); List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, 1); if(price.size() == 0){ - return ResultUtil.error("未获取到可服务的车型", new ArrayList<>()); + return ResultUtil.error(language == 1 ? "未获取到可服务的车型" : language == 2 ? "No serviceable model available" : "Aucun modèle réparable disponible", new ArrayList<>()); } return ResultUtil.success(price); } -- Gitblit v1.7.1