省,市,区 三级查询 代码优化
思路:通过省份的code,分别获取该省份code下的集合。然后轮训加入对应的子节点
// 查询省、市、县
@RequestMapping("/getAlllevel")
public ResultInfo getAlllevel(@RequestBody JSONObject json) {
try {
// 省
List<PerArea> provinceList = perAreaService.getProvince(json.getString("provinceCode"));
List<PerArea> cityList = perAreaService.getCityByProvinceCode(json.getString("provinceCode"));
List<PerArea> districtList = perAreaService.getDistrictByProvinceCode(json.getString("provinceCode"));
JSONArray jsonP = JSONArray.parseArray(JSON.toJSONString(provinceList));
JSONArray jsonC = JSONArray.parseArray(JSON.toJSONString(cityList));
JSONArray jsonD = JSONArray.parseArray(JSON.toJSONString(districtList));
for (int i = 0; i < jsonP.size(); i++) {
JSONObject province = jsonP.getJSONObject(i);
JSONArray children = new JSONArray();
for (int j = 0; j < jsonC.size(); j++) {
JSONObject city = jsonC.getJSONObject(j);
if (StringUtils.isNotEmpty(province.getString("provinceCode")) && StringUtils.isNotEmpty(city.getString("provinceCode"))
&& province.getString("provinceCode").equals(city.getString("provinceCode"))) {
children.add(city);
}
JSONArray children2 = new JSONArray();
for (int k = 0; k < jsonD.size(); k++) {
JSONObject district = jsonD.getJSONObject(k);
if (StringUtils.isNotEmpty(city.getString("cityCode")) && StringUtils.isNotEmpty(district.getString("cityCode"))
&& city.getString("cityCode").equals(district.getString("cityCode"))) {
children2.add(district);
}
}
if (children2.size() > 0) {
city.put("children", children2);// 加入子节点
}
}
if (children.size() > 0) {
province.put("children", children);// 加入子节点
}
}
return ResultInfo.success(jsonP);
} catch (Exception e) {
logger.info(e.getMessage());
e.printStackTrace();
}
return ResultInfo.error(MsgEnum.FAIL.getCode(), MsgEnum.FAIL.getMsg());
}
本文介绍了一种省、市、区三级查询代码的优化方法,通过省份代码获取其下辖的市、区集合,并实现数据的层级展示。优化后的代码提高了查询效率,实现了更直观的数据呈现。
3535

被折叠的 条评论
为什么被折叠?



