Commit 693cf5cd authored by xianghengxiang's avatar xianghengxiang
Browse files

修改管理端查询区域超时性能问题.

parent b07a65ff
...@@ -30,33 +30,43 @@ public class AdminRegionController { ...@@ -30,33 +30,43 @@ public class AdminRegionController {
@GetMapping("/clist") @GetMapping("/clist")
public Object clist(@NotNull Integer id) { public Object clist(@NotNull Integer id) {
List<LitemallRegion> regionList = regionService.queryByPid(id); List<LitemallRegion> regionList = regionService.queryByPid(id);
return ResponseUtil.ok(regionList); return ResponseUtil.okList(regionList);
} }
@GetMapping("/list") @GetMapping("/list")
public Object list() { public Object list() {
List<RegionVo> regionVoList = new ArrayList<>(); List<RegionVo> regionVoList = new ArrayList<>();
List<LitemallRegion> provinceList = regionService.queryByPid(0); List<LitemallRegion> litemallRegions = regionService.getAll();
for(LitemallRegion province : provinceList){ Map<Byte, List<LitemallRegion>> collect = litemallRegions.stream().collect(Collectors.groupingBy(LitemallRegion::getType));
byte provinceType = 1;
List<LitemallRegion> provinceList = collect.get(provinceType);
byte cityType = 2;
List<LitemallRegion> city = collect.get(cityType);
Map<Integer, List<LitemallRegion>> cityListMap = city.stream().collect(Collectors.groupingBy(LitemallRegion::getPid));
byte areaType = 3;
List<LitemallRegion> areas = collect.get(areaType);
Map<Integer, List<LitemallRegion>> areaListMap = areas.stream().collect(Collectors.groupingBy(LitemallRegion::getPid));
for (LitemallRegion province : provinceList) {
RegionVo provinceVO = new RegionVo(); RegionVo provinceVO = new RegionVo();
provinceVO.setId(province.getId()); provinceVO.setId(province.getId());
provinceVO.setName(province.getName()); provinceVO.setName(province.getName());
provinceVO.setCode(province.getCode()); provinceVO.setCode(province.getCode());
provinceVO.setType(province.getType()); provinceVO.setType(province.getType());
List<LitemallRegion> cityList = regionService.queryByPid(province.getId()); List<LitemallRegion> cityList = cityListMap.get(province.getId());
List<RegionVo> cityVOList = new ArrayList<>(); List<RegionVo> cityVOList = new ArrayList<>();
for(LitemallRegion city : cityList){ for (LitemallRegion cityVo : cityList) {
RegionVo cityVO = new RegionVo(); RegionVo cityVO = new RegionVo();
cityVO.setId(city.getId()); cityVO.setId(cityVo.getId());
cityVO.setName(city.getName()); cityVO.setName(cityVo.getName());
cityVO.setCode(city.getCode()); cityVO.setCode(cityVo.getCode());
cityVO.setType(city.getType()); cityVO.setType(cityVo.getType());
List<LitemallRegion> areaList = regionService.queryByPid(city.getId()); List<LitemallRegion> areaList = areaListMap.get(cityVo.getId());
List<RegionVo> areaVOList = new ArrayList<>(); List<RegionVo> areaVOList = new ArrayList<>();
for(LitemallRegion area : areaList){ for (LitemallRegion area : areaList) {
RegionVo areaVO = new RegionVo(); RegionVo areaVO = new RegionVo();
areaVO.setId(area.getId()); areaVO.setId(area.getId());
areaVO.setName(area.getName()); areaVO.setName(area.getName());
...@@ -72,6 +82,6 @@ public class AdminRegionController { ...@@ -72,6 +82,6 @@ public class AdminRegionController {
regionVoList.add(provinceVO); regionVoList.add(provinceVO);
} }
return ResponseUtil.ok(regionVoList); return ResponseUtil.okList(regionVoList);
} }
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment