From d45923a8b023f9a010fc75f53b13ffca01c573fa Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 22 十二月 2023 10:57:46 +0800 Subject: [PATCH] 更新 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java | 66 +++++++++++++++----------------- 1 files changed, 31 insertions(+), 35 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java index 12ac48f..7c00286 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java @@ -1,18 +1,26 @@ package com.stylefeng.guns.modular.system.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.modular.system.dao.CompanyCityMapper; import com.stylefeng.guns.modular.system.dao.CompanyMapper; +import com.stylefeng.guns.modular.system.model.City; import com.stylefeng.guns.modular.system.model.Company; import com.stylefeng.guns.modular.system.model.CompanyCity; +import com.stylefeng.guns.modular.system.service.ICityService; import com.stylefeng.guns.modular.system.service.ICompanyCityService; 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.GoogleMapUtil; +import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service @@ -22,49 +30,37 @@ private CompanyMapper companyMapper; @Autowired - private GDMapGeocodingUtil gdMapGeocodingUtil; + private ICityService cityService; - /** - * 根据经纬度获取所属企业 - * @param lon - * @param lat - * @return - * @throws Exception - */ + + @Override - public Company query(String lon, String lat) throws Exception { - Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(lon), String.valueOf(lat)); - String districtCode = geocode.get("districtCode"); - Company query = this.query(districtCode); + public Company query1(String lon, String lat) throws Exception { + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(Double.valueOf(lat), Double.valueOf(lon)); + if(null == reverseGeocode){ + return null; + } + AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos(); + String[] citys = new String[addressComponentsVos.length]; + for (int i = 0; i < addressComponentsVos.length; i++) { + citys[i] = addressComponentsVos[i].getLongName(); + } + Company query = this.query(citys); return query; } - /** - * 根据行政编号获取所属企业 - * @param code - * @return - * @throws Exception - */ + + @Override - public Company query(String code) throws Exception { - String province = code.substring(0, 2) + "0000"; - String city = code.substring(0, 4) + "00"; - List<Company> query = companyMapper.query(province, city, code); - if(query.size() == 0){ - query = companyMapper.query(province, city, null); + public Company query(String[] city) throws Exception { + List<City> cities = cityService.selectList(new EntityWrapper<City>().in("chineseName", Arrays.asList(city)).or() + .in("englishName", Arrays.asList(city)).or().in("frenchName", Arrays.asList(city))); + List<Integer> collect = cities.stream().map(City::getId).collect(Collectors.toList()); + if(collect.size() == 0){ + return null; } - if(query.size() == 0){ - query = companyMapper.query(province, null, null); - } - for(int i = 3; i > 0; i--){ - for(Company company : query){ - if(company.getType() == i){ - return company; - } - } - } - return null; + return companyMapper.query(collect); } } -- Gitblit v1.7.1