From b1f2f102034b4433201225b67a9fc78c08e532f0 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 06 六月 2025 18:35:03 +0800 Subject: [PATCH] 修改bug和管理后台报表 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java | 63 +++++++++++++++++++++++-------- 1 files changed, 47 insertions(+), 16 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java index be869bc..3de89ff 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java @@ -3,9 +3,18 @@ import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.dao.OpenCityMapper; +import com.stylefeng.guns.modular.system.model.City; import com.stylefeng.guns.modular.system.model.OpenCity; +import com.stylefeng.guns.modular.system.model.UserInfo; +import com.stylefeng.guns.modular.system.service.ICityService; import com.stylefeng.guns.modular.system.service.IOpenCityService; +import com.stylefeng.guns.modular.system.service.IUserInfoService; +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 com.stylefeng.guns.modular.system.util.RedisUtil; import com.stylefeng.guns.modular.system.warpper.BaseWarpper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -19,6 +28,15 @@ @Resource private OpenCityMapper openCityMapper; + @Autowired + private ICityService cityService; + + @Autowired + private IUserInfoService userInfoService; + + @Resource + private RedisUtil redisUtil; + /** * 获取开通城市列表 @@ -26,17 +44,25 @@ * @throws Exception */ @Override - public List<BaseWarpper> queryOpenCity() throws Exception { + public List<BaseWarpper> queryOpenCity(Integer uid, Integer language) throws Exception { + if(null == language && null != uid){ + UserInfo userInfo = userInfoService.selectById(uid); + language = userInfo.getLanguage(); + } + if(null == language){ + language = 2; + } List<OpenCity> openCities = openCityMapper.queryOpenCity(); List<BaseWarpper> list = new ArrayList<>(); for(OpenCity c : openCities){ BaseWarpper baseWarpper = new BaseWarpper(); baseWarpper.setId(c.getId()); - baseWarpper.setName(ToolUtil.isEmpty(c.getProvinceName()) ? - (ToolUtil.isEmpty(c.getCityName()) ? (ToolUtil.isEmpty(c.getAreaName()) ? "" : c.getAreaName()) : c.getCityName()) : c.getProvinceName()); + City city = cityService.selectById(c.getCityId()); + baseWarpper.setName(language == 1 ? city.getChineseName() : language == 2 ? city.getEnglishName() : language == 3 ? city.getFrenchName() : city.getEnglishName()); baseWarpper.setLon(null != c.getLon() ? c.getLon() : 0); baseWarpper.setLat(null != c.getLat() ? c.getLat() : 0); - baseWarpper.setContent(c.getCode()); + baseWarpper.setContent(language == 1 ? city.getCountryChineseName() : language == 2 ? city.getCountryEnglishName() : language == 3 ? city.getCountryFrenchName() : city.getEnglishName()); + baseWarpper.setCode(city.getCountryCode()); list.add(baseWarpper); } return list; @@ -45,24 +71,29 @@ /** * 判断是否是开通城市 - * @param code * @return * @throws Exception */ @Override - public boolean openCity(String code) throws Exception { - String province = code.substring(0, 2) + "0000"; - String city = code.substring(0, 4) + "00"; - List<OpenCity> openCities = openCityMapper.queryByCode(code); - if(openCities.size() == 0){ - openCities = openCityMapper.queryByCode(city); + public City openCity(Integer uid, Double lat, Double lnt, Integer language) throws Exception { + if(null == language){ + language = 2; } - if(openCities.size() == 0){ - openCities = openCityMapper.queryByCode(province); + String tripId = redisUtil.getValue("trip" + uid); + ReverseGeocodeVo reverseGeocode = GoogleMapUtil.getReverseGeocode(lat, lnt, tripId); + if(null == reverseGeocode){ + return null; } - if(openCities.size() == 0){ - return false; + AddressComponentsVo[] addressComponentsVos = reverseGeocode.getAddressComponentsVos(); + String[] city = new String[addressComponentsVos.length]; + for (int i = 0; i < addressComponentsVos.length; i++) { + city[i] = addressComponentsVos[i].getLongName(); } - return true; + List<OpenCity> openCities = openCityMapper.queryByCode(city); + if(openCities.size() == 0){ + return null; + } + City city1 = cityService.selectById(openCities.get(0).getCityId()); + return city1; } } -- Gitblit v1.7.1