diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java index 857a2d52..6835f24e 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java @@ -30,33 +30,43 @@ public class AdminRegionController { @GetMapping("/clist") public Object clist(@NotNull Integer id) { List regionList = regionService.queryByPid(id); - return ResponseUtil.ok(regionList); + return ResponseUtil.okList(regionList); } @GetMapping("/list") public Object list() { List regionVoList = new ArrayList<>(); - List provinceList = regionService.queryByPid(0); - for(LitemallRegion province : provinceList){ + List litemallRegions = regionService.getAll(); + Map> collect = litemallRegions.stream().collect(Collectors.groupingBy(LitemallRegion::getType)); + byte provinceType = 1; + List provinceList = collect.get(provinceType); + byte cityType = 2; + List city = collect.get(cityType); + Map> cityListMap = city.stream().collect(Collectors.groupingBy(LitemallRegion::getPid)); + byte areaType = 3; + List areas = collect.get(areaType); + Map> areaListMap = areas.stream().collect(Collectors.groupingBy(LitemallRegion::getPid)); + + for (LitemallRegion province : provinceList) { RegionVo provinceVO = new RegionVo(); provinceVO.setId(province.getId()); provinceVO.setName(province.getName()); provinceVO.setCode(province.getCode()); provinceVO.setType(province.getType()); - List cityList = regionService.queryByPid(province.getId()); + List cityList = cityListMap.get(province.getId()); List cityVOList = new ArrayList<>(); - for(LitemallRegion city : cityList){ + for (LitemallRegion cityVo : cityList) { RegionVo cityVO = new RegionVo(); - cityVO.setId(city.getId()); - cityVO.setName(city.getName()); - cityVO.setCode(city.getCode()); - cityVO.setType(city.getType()); + cityVO.setId(cityVo.getId()); + cityVO.setName(cityVo.getName()); + cityVO.setCode(cityVo.getCode()); + cityVO.setType(cityVo.getType()); - List areaList = regionService.queryByPid(city.getId()); + List areaList = areaListMap.get(cityVo.getId()); List areaVOList = new ArrayList<>(); - for(LitemallRegion area : areaList){ + for (LitemallRegion area : areaList) { RegionVo areaVO = new RegionVo(); areaVO.setId(area.getId()); areaVO.setName(area.getName()); @@ -72,6 +82,6 @@ public class AdminRegionController { regionVoList.add(provinceVO); } - return ResponseUtil.ok(regionVoList); + return ResponseUtil.okList(regionVoList); } }