forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-10 8a8d15aaa219142fe32b4ae8a074ea278eea2f47
dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyRegionService.java
@@ -3,10 +3,15 @@
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;
@@ -161,6 +166,41 @@
        }
    }
    /**
     * 根据百度地图经纬度获取街道
     * @param lng
     * @param lat
     * @return
     */
    public QueAddrBaseDTO getQueAddrByBaiduiLngLat(String lng, String lat){
        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.eq("name", baiduMapAddrDTO.getCity());
            SyRegion city = mapper.selectOne(syRegionQueryWrapper);
            queAddrBaseDTO.setQueProv(city.getId());
            queAddrBaseDTO.setQueProvName(city.getName());
            // 查询区
            syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getDistrict());
            SyRegion district = mapper.selectOne(syRegionQueryWrapper);
            queAddrBaseDTO.setQueProv(district.getId());
            queAddrBaseDTO.setQueProvName(district.getName());
            // 查询街道
            syRegionQueryWrapper.eq("name", baiduMapAddrDTO.getTown());
            SyRegion town = mapper.selectOne(syRegionQueryWrapper);
            queAddrBaseDTO.setQueProv(town.getId());
            queAddrBaseDTO.setQueProvName(town.getName());
        }
        return queAddrBaseDTO;
    }
}