查询全国城市行政区

@PostMapping("/allAddressInfo")
@ApiOperation(consumes = MediaType.APPLICATION_JSON_VALUE, value = "查询城市区域信息")
public R getProvinceCityInfo() {
List<Province> provinceList = addressInfoService.getAllCityInfo();
return R.ok(provinceList);
}

@Override
public List<Province> getAllCityInfo() {
String key = ADDRESS_PREFIX + "allCityInfo";
ValueOperations<String, List<Province>> operations = redisTemplate.opsForValue();
// 缓存存在
boolean hasKey = redisTemplate.hasKey(key);
if (hasKey) {
List<Province> provinces = operations.get(key);
LOGGER.info("getProvinces >>>> 从缓存查询到全国城市信息");
return provinces;
}
List<ProvinceCityArea> provinceCityAreas = provinceCityAreaMapper
.selectList(new QueryWrapper<ProvinceCityArea>().eq("pid", 0));
List<Province> provinces = new ArrayList<>();
provinceCityAreas.forEach(p -> {
Province province = new Province();
province.setName(p.getName());
province.setCode(String.valueOf(p.getId()));
List<City> cityList = new ArrayList<>();

List<ProvinceCityArea> cities = provinceCityAreaMapper
.selectList(new QueryWrapper<ProvinceCityArea>().eq("pid", p.getId()));
cities.forEach(c -> {
List<Area> areas = new ArrayList<>();
List<ProvinceCityArea> cityAreas = provinceCityAreaMapper
.selectList(new QueryWrapper<ProvinceCityArea>().eq("pid", c.getId()));
cityAreas.forEach(a -> {
Area area = new Area();
area.setCode(String.valueOf(a.getId()));
area.setName(a.getName());
areas.add(area);
});
City city = new City();
city.setName(c.getName());
city.setCode(String.valueOf(c.getId()));
city.setChildren(areas);
cityList.add(city);
});
province.setChildren(cityList);
provinces.add(province);
});
operations.set(key, provinces);
return provinces;
}

—————————————————————————————————————————
@PostMapping("/provinceCity")
@ApiOperation(consumes = MediaType.APPLICATION_JSON_VALUE, value = "查询省市信息")
public R getProvinceCity() {
List<Province> provinceList = addressInfoService.provinceCityes();
return R.ok(provinceList);
}

@Override
public List<Province> provinceCityes() {
String key = ADDRESS_PREFIX + "provinceCityInfo";
ValueOperations<String, List<Province>> operations = redisTemplate.opsForValue();
// 缓存存在
boolean hasKey = redisTemplate.hasKey(key);
if (hasKey) {
List<Province> provinces = operations.get(key);
LOGGER.info("getProvinces >>>> 从缓存查询到全国城市信息");
return provinces;
}
List<ProvinceCityArea> provinceCityAreas = provinceCityAreaMapper
.selectList(new QueryWrapper<ProvinceCityArea>().eq("pid", 0));
List<Province> provinces = new ArrayList<>();
provinceCityAreas.forEach(p -> {
Province province = new Province();
province.setName(p.getName());
province.setCode(String.valueOf(p.getId()));
List<City> cityList = new ArrayList<>();

List<ProvinceCityArea> cities = provinceCityAreaMapper
.selectList(new QueryWrapper<ProvinceCityArea>().eq("pid", p.getId()));
cities.forEach(c -> {

City city = new City();
city.setName(c.getName());
city.setCode(String.valueOf(c.getId()));
cityList.add(city);
});
province.setChildren(cityList);
provinces.add(province);
});
operations.set(key, provinces);
return provinces;
}

—————————————————————————————————————————
20195月中华人民共和国县以上行政区划代码
http://www.mca.gov.cn/article/sj/xzqh/2019/201901-06/201906211421.html
原文地址:https://www.cnblogs.com/pxzbky/p/12172050.html