diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/vo/RegionVO.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/vo/RegionVO.java new file mode 100644 index 00000000..56e46f4b --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/vo/RegionVO.java @@ -0,0 +1,52 @@ +package org.linlinjava.litemall.admin.vo; + +import java.util.List; + +public class RegionVO { + private Integer id; + private String name; + private Byte type; + private Integer code; + + private List children; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public List getChildren() { + return children; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public void setChildren(List children) { + this.children = children; + } +} 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 aef340b5..bfc82727 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 @@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; import com.github.pagehelper.PageInfo; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.linlinjava.litemall.admin.vo.RegionVO; import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Sort; @@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.validation.constraints.NotNull; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,17 +38,44 @@ public class AdminRegionController { } @GetMapping("/list") - public Object list(String name, Integer code, - @RequestParam(defaultValue = "1") Integer page, - @RequestParam(defaultValue = "10") Integer limit, - @Sort(accepts = {"id"}) @RequestParam(defaultValue = "id") String sort, - @Order @RequestParam(defaultValue = "desc") String order) { - List regionList = regionService.querySelective(name, code, page, limit, sort, order); - long total = PageInfo.of(regionList).getTotal(); - Map data = new HashMap<>(); - data.put("total", total); - data.put("items", regionList); + public Object list() { + List regionVOList = new ArrayList<>(); - return ResponseUtil.ok(data); + List provinceList = regionService.queryByPid(0); + 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 cityVOList = new ArrayList<>(); + for(LitemallRegion city : cityList){ + RegionVO cityVO = new RegionVO(); + cityVO.setId(city.getId()); + cityVO.setName(city.getName()); + cityVO.setCode(city.getCode()); + cityVO.setType(city.getType()); + + List areaList = regionService.queryByPid(city.getId()); + List areaVOList = new ArrayList<>(); + for(LitemallRegion area : areaList){ + RegionVO areaVO = new RegionVO(); + areaVO.setId(area.getId()); + areaVO.setName(area.getName()); + areaVO.setCode(area.getCode()); + areaVO.setType(area.getType()); + areaVOList.add(areaVO); + } + + cityVO.setChildren(areaVOList); + cityVOList.add(cityVO); + } + provinceVO.setChildren(cityVOList); + regionVOList.add(provinceVO); + } + + return ResponseUtil.ok(regionVOList); } } diff --git a/litemall-admin/src/api/region.js b/litemall-admin/src/api/region.js index dd705ee4..a114c4d7 100644 --- a/litemall-admin/src/api/region.js +++ b/litemall-admin/src/api/region.js @@ -1,10 +1,9 @@ import request from '@/utils/request' -export function listRegion(query) { +export function listRegion() { return request({ url: '/region/list', - method: 'get', - params: query + method: 'get' }) } diff --git a/litemall-admin/src/views/mall/region.vue b/litemall-admin/src/views/mall/region.vue index c3b69144..4d0bc857 100644 --- a/litemall-admin/src/views/mall/region.vue +++ b/litemall-admin/src/views/mall/region.vue @@ -1,45 +1,28 @@