From a770364a2323290fdf9e3247b47475a12452f401 Mon Sep 17 00:00:00 2001 From: chenhj <1263187585@qq.com> Date: 星期三, 04 六月 2025 17:57:49 +0800 Subject: [PATCH] 接口省市区对接 --- ruoyi-system/src/main/java/com/ruoyi/basic/service/impl/ProvinceServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 88 insertions(+), 12 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/basic/service/impl/ProvinceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/basic/service/impl/ProvinceServiceImpl.java index 9c9aa6b..0fb305b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/basic/service/impl/ProvinceServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/basic/service/impl/ProvinceServiceImpl.java @@ -1,22 +1,98 @@ package com.ruoyi.basic.service.impl; -import com.ruoyi.basic.entity.Province; -import com.ruoyi.basic.mapper.ProvinceMapper; - import com.ruoyi.basic.service.ProvinceService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; +import com.ruoyi.basic.entity.City; +import com.ruoyi.basic.entity.District; +import com.ruoyi.basic.entity.Province; +import com.ruoyi.basic.entity.dto.TreeSelectOption; +import com.ruoyi.basic.mapper.CityMapper; +import com.ruoyi.basic.mapper.DistrictMapper; +import com.ruoyi.basic.mapper.ProvinceMapper; +import com.ruoyi.basic.service.ProvinceService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; /** -* <p> - * 鐪佽〃 鏈嶅姟瀹炵幇绫� - * </p> -* -* @author ruoyi -* @since 2025-05-31 -*/ + * <p> + * 鐪佽〃 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author ruoyi + * @since 2025-05-31 + */ @Service @RequiredArgsConstructor - public class ProvinceServiceImpl extends ServiceImpl<ProvinceMapper, Province> implements ProvinceService { +public class ProvinceServiceImpl extends ServiceImpl<ProvinceMapper, Province> implements ProvinceService { + @Autowired + private ProvinceMapper provinceMapper; + + @Autowired + private CityMapper cityMapper; + + @Autowired + private DistrictMapper districtMapper; + + @Override + public List<TreeSelectOption> getAreaOptions() { + List<TreeSelectOption> res = new ArrayList<>(); + List<Province> list = provinceMapper.selectList(null); + for (Province province : list) { + // 鏌ヨ鐪佷笅闈㈢殑甯� + List<City> cityList = cityMapper.selectList(new LambdaQueryWrapper<City>().eq(City::getProvinceId, province.getId())); + List<TreeSelectOption> cities = new ArrayList<>(); + for (City city : cityList) { + // 鏌ヨ甯備笅闈㈢殑鍖� + List<District> districtList = districtMapper.selectList(new LambdaQueryWrapper<District>().eq(District::getCityId, city.getId())); + List<TreeSelectOption> districts = new ArrayList<>(); + for (District district : districtList) { + districts.add(new TreeSelectOption(district.getId().toString(), district.getName(), district.getId(), null)); + } + + TreeSelectOption cityTreeSelectOption = new TreeSelectOption(); + cityTreeSelectOption.setValue(city.getId().toString()); + cityTreeSelectOption.setLabel(city.getName()); + cityTreeSelectOption.setId(city.getId()); + cityTreeSelectOption.setChildren(districts); + + cities.add(cityTreeSelectOption); + } + + TreeSelectOption treeSelectOption = new TreeSelectOption(); + treeSelectOption.setValue(province.getId().toString()); + treeSelectOption.setLabel(province.getName()); + treeSelectOption.setId(province.getId()); + treeSelectOption.setChildren(cities); + res.add(treeSelectOption); + } + + return res; } + + @Override + public String getAreaDisplay(Long provinceId, Long cityId, Long districtId) { + Province province = provinceMapper.selectById(provinceId); + if (province == null) { + throw new RuntimeException("鐪佷笉瀛樺湪"); + } + City city = cityMapper.selectById(cityId); + if (city == null) { + throw new RuntimeException("甯備笉瀛樺湪"); + } + District district = districtMapper.selectById(districtId); + if (district == null) { + throw new RuntimeException("鍖轰笉瀛樺湪"); + } + + // 濡傛灉鐪佸拰甯傚悓鍚� + if (province.getName().equals(city.getName())) { + return province.getName() + " " + district.getName(); + } + return province.getName() + city.getName() + district.getName(); + } +} -- Gitblit v1.9.3