From 6f4ed9dbb428374e5513fbf88aae1377fd423a51 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Sat, 14 Sep 2024 15:19:52 +0800
Subject: [PATCH] 综合查询
---
dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java | 83 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 1 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 9370d4d..e77afff 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;
@@ -26,7 +34,7 @@
* @Description 地域字典表业务逻辑处理
* @company hugeinfo
* @author liyj
- * @Time 2024-08-28 20:06:20
+ * @Time 2024-09-09 14:31:22
* @version 1.0.0
*/
@Slf4j
@@ -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.eq("name", baiduMapAddrDTO.getProvince());
+ SyRegion province = mapper.selectOne(syRegionQueryWrapper);
+ queAddrBaseDTO.setQueProv(province.getId());
+ queAddrBaseDTO.setQueProvName(province.getName());
+ // 查询市
+ syRegionQueryWrapper.clear();
+ syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getCity());
+ SyRegion city = mapper.selectOne(syRegionQueryWrapper);
+ queAddrBaseDTO.setQueCity(city.getId());
+ queAddrBaseDTO.setQueCityName(city.getName());
+ // 查询区
+ syRegionQueryWrapper.clear();
+ syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getDistrict());
+ SyRegion district = mapper.selectOne(syRegionQueryWrapper);
+ queAddrBaseDTO.setQueArea(district.getId());
+ queAddrBaseDTO.setQueAreaName(district.getName());
+ // 查询街道
+ syRegionQueryWrapper.clear();
+ syRegionQueryWrapper.eq("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