From ca53d255cec99c13e371ca33928fdb4c833852f2 Mon Sep 17 00:00:00 2001 From: liyj <15602261488@163.com> Date: Mon, 23 Sep 2024 16:20:43 +0800 Subject: [PATCH] 1、小程序反应诉求临时区域检测接口 --- dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java | 81 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 81 insertions(+), 0 deletions(-) diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java index b6ba9d6..f440a41 100644 --- a/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java +++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java @@ -3,10 +3,17 @@ import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; +import cn.huge.base.common.utils.ObjectUtils; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.kind.dao.mapper.SyRegionMapper; +import cn.huge.module.kind.domain.dto.RegionSelectJSDTO; import cn.huge.module.kind.domain.po.SyRegion; +import cn.huge.module.sys.dto.QueAddrBaseDTO; +import cn.huge.module.utils.BaiduMapAddrDTO; +import cn.huge.module.utils.BaiduMapUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; @@ -17,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; +import javax.swing.plaf.synth.Region; import java.util.Date; import java.util.List; import java.util.Map; @@ -130,4 +138,77 @@ } } + /** + * 递归保存树形结构 + * @param childrenList + * @param level + */ + public void webSaveByJSTree(List<RegionSelectJSDTO> childrenList, int level){ + try{ + Date nowDate = new Date(); + for (RegionSelectJSDTO regionSelectJSDTO: childrenList){ + SyRegion region = new SyRegion(); + region.setId(regionSelectJSDTO.getValue()); + region.setKind(level); + region.setName(regionSelectJSDTO.getLabel()); + region.setLevel(level); + region.setParentId(regionSelectJSDTO.getParentId()); + region.setCreateTime(nowDate); + region.setUpdateTime(nowDate); + this.saveOrUpdate(region); + if (CollectionUtils.isNotEmpty(regionSelectJSDTO.getChildren())) { + this.webSaveByJSTree(regionSelectJSDTO.getChildren(), level + 1); + } + } + }catch (Exception e){ + log.error("[SyRegionService.webSaveByJSTree]调用失败,异常信息:"+e, e); + throw new ServiceException("SyRegionService.webSaveByJSTree", e); + } + } + + /** + * 根据百度地图经纬度获取街道 + * @param lng + * @param lat + * @return + */ + public QueAddrBaseDTO getQueAddrByBaiduiLngLat(String lng, String lat){ + try{QueAddrBaseDTO queAddrBaseDTO = new QueAddrBaseDTO(); + BaiduMapAddrDTO baiduMapAddrDTO = BaiduMapUtils.getAddrByLngLat(lng, lat, BaiduMapUtils.coordtype_bd09ll); + if (ObjectUtils.isNotEmpty(baiduMapAddrDTO)) { + QueryWrapper<SyRegion> syRegionQueryWrapper = new QueryWrapper<>(); + // 查询省 + syRegionQueryWrapper.like("name", baiduMapAddrDTO.getProvince()); + SyRegion province = mapper.selectOne(syRegionQueryWrapper); + queAddrBaseDTO.setQueProv(province.getId()); + queAddrBaseDTO.setQueProvName(province.getName()); + // 查询市 + syRegionQueryWrapper.clear(); + syRegionQueryWrapper.like("name", baiduMapAddrDTO.getCity()); + SyRegion city = mapper.selectOne(syRegionQueryWrapper); + queAddrBaseDTO.setQueCity(city.getId()); + queAddrBaseDTO.setQueCityName(city.getName()); + // 查询区 + syRegionQueryWrapper.clear(); + syRegionQueryWrapper.like("name", baiduMapAddrDTO.getDistrict()); + SyRegion district = mapper.selectOne(syRegionQueryWrapper); + queAddrBaseDTO.setQueArea(district.getId()); + queAddrBaseDTO.setQueAreaName(district.getName()); + // 查询街道 + syRegionQueryWrapper.clear(); + syRegionQueryWrapper.like("name", baiduMapAddrDTO.getTown()); + SyRegion town = mapper.selectOne(syRegionQueryWrapper); + queAddrBaseDTO.setQueRoad(town.getId()); + queAddrBaseDTO.setQueRoadName(town.getName()); + } + return queAddrBaseDTO; + }catch (Exception e){ + log.error("[SyRegionService.getQueAddrByBaiduiLngLat]调用失败,异常信息:"+e, e); + throw new ServiceException("SyRegionService.getQueAddrByBaiduiLngLat", e); + } + + } + + + } -- Gitblit v1.8.0