diff --git a/src/main/java/com/yxt/portal/apiadmin/RegionRest.java b/src/main/java/com/yxt/portal/apiadmin/RegionRest.java new file mode 100644 index 0000000..baf8f39 --- /dev/null +++ b/src/main/java/com/yxt/portal/apiadmin/RegionRest.java @@ -0,0 +1,30 @@ +package com.yxt.portal.apiadmin; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.portal.biz.region.RegionChildTwoVo; +import com.yxt.portal.biz.region.RegionService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +public class RegionRest { + + @Autowired + private RegionService regionService; + + /** + * 区域获取省 + * + * @return 所有省的集合 + */ + @ApiOperation("获取省") + @ResponseBody + @GetMapping("/getProvince") + public ResultBean getProvince() { + List regionList = regionService.getProvince(); + return ResultBean.fireSuccess().setData(regionList); + } +} diff --git a/src/main/java/com/yxt/portal/biz/region/Region.java b/src/main/java/com/yxt/portal/biz/region/Region.java new file mode 100644 index 0000000..4686602 --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/Region.java @@ -0,0 +1,29 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author dimengzhe + * @date 2021/7/2 14:21 + * @description + */ +@Data +public class Region extends BaseEntity { + private static final long serialVersionUID = -2834981997098086066L; + @ApiModelProperty(value = "上级sid") + private String pSid; + @ApiModelProperty(value = "级别") + private Integer level; + @ApiModelProperty(value = "名称,区域名称") + private String name; + @ApiModelProperty(value = "行政区划代码") + private String districtCode; + @ApiModelProperty(value = "sid全路径") + private String sidPath; + @ApiModelProperty(value = "排序号") + private Integer sortNo; + + +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionChildTwoVo.java b/src/main/java/com/yxt/portal/biz/region/RegionChildTwoVo.java new file mode 100644 index 0000000..0972b12 --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionChildTwoVo.java @@ -0,0 +1,30 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author dimengzhe + * @date 2021/7/2 23:15 + * @description + */ +@Data +public class RegionChildTwoVo implements Vo { + private static final long serialVersionUID = 4618662603777612150L; + + @ApiModelProperty(value = "sid") + private String sid; + @ApiModelProperty(value = "上级sid") + private String pSid; + @ApiModelProperty(value = "级别") + private Integer level; + @ApiModelProperty(value = "名称,区域名称") + private String name; + @ApiModelProperty(value = "行政区划代码") + private String districtCode; + @ApiModelProperty(value = "sid全路径") + private String sidPath; + @ApiModelProperty(value = "排序号") + private Integer sortNo; +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionChildVo.java b/src/main/java/com/yxt/portal/biz/region/RegionChildVo.java new file mode 100644 index 0000000..1dc6afa --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionChildVo.java @@ -0,0 +1,34 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author dimengzhe + * @date 2021/7/2 23:14 + * @description + */ +@Data +public class RegionChildVo implements Vo { + private static final long serialVersionUID = -4741874809037026585L; + + @ApiModelProperty(value = "sid") + private String sid; + @ApiModelProperty(value = "上级sid") + private String pSid; + @ApiModelProperty(value = "级别") + private Integer level; + @ApiModelProperty(value = "名称,区域名称") + private String name; + @ApiModelProperty(value = "行政区划代码") + private String districtCode; + @ApiModelProperty(value = "sid全路径") + private String sidPath; + @ApiModelProperty(value = "排序号") + private Integer sortNo; + + private List regionChildTwoVoList; +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionDto.java b/src/main/java/com/yxt/portal/biz/region/RegionDto.java new file mode 100644 index 0000000..055eebe --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionDto.java @@ -0,0 +1,46 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +/** + * @Author dimengzhe + * @Date 2021/11/11 15:18 + * @Description + */ +@Data +public class RegionDto implements Dto { + private static final long serialVersionUID = 1283045363206557586L; + /** + * 名称,区域名称 + */ + @ApiModelProperty(value = "区域名称", required = true) + @NotBlank(message = "区域名称不能为空") + @Size(max = 64, min = 1) + private String name; + /** + * 行政区划代码 + */ + @ApiModelProperty(value = "行政区划代码", required = true) + @NotBlank(message = "行政区划代码不能为空") + private String districtCode; + /** + * 上级sid + */ + @ApiModelProperty(value = "上级sid", required = true, example = "0") + private String psid; + + /** + * 排序号 + */ + @ApiModelProperty(value = "排序号", required = true) + private Integer sortNo; + @ApiModelProperty(value = "级别") + private int level; + + +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionListVo.java b/src/main/java/com/yxt/portal/biz/region/RegionListVo.java new file mode 100644 index 0000000..266338b --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionListVo.java @@ -0,0 +1,24 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * @author dimengzhe + * @date 2021/7/13 21:41 + * @description + */ +@Data +public class RegionListVo implements Vo { + private static final long serialVersionUID = 8123582673134551495L; + @ApiModelProperty(value = "sid") + private String sid; + @ApiModelProperty(value = "名称") + private String name; + @ApiModelProperty(value = "区划代码") + private String districtCode; + @ApiModelProperty(value = "排序") + private Integer sortNo; +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionMapper.java b/src/main/java/com/yxt/portal/biz/region/RegionMapper.java new file mode 100644 index 0000000..36ed989 --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionMapper.java @@ -0,0 +1,61 @@ +package com.yxt.portal.biz.region; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author dimengzhe + * @date 2021/7/2 15:10 + * @description + */ +@Mapper +public interface RegionMapper extends BaseMapper { + /** + * 分页列表 + * + * @param page + * @param qw + * @return + */ + IPage pageList(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + /** + * 区域的树形列表 + * + * @param psid + * @return + */ + List treeList(String psid); + + List getProvince(); + + List getCity(String sid); + + List getCounty(String sid); + + RegionThirdLevelNameVo selectThirdLevelNameByCode(@Param("districtCode") String districtCode); + + /** + * 获取省市县区域列表 + * + * @param pSid 上级sid,默认为0 + * @return + */ + List selectsList(String pSid); + + Region selectByPsid(String pSid); + + /** + * 查询该区域是否有下级 + * + * @param sid 区域sid + * @return int + */ + public int selectRegionBySid(String sid); +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionMapper.xml b/src/main/java/com/yxt/portal/biz/region/RegionMapper.xml new file mode 100644 index 0000000..7da99f7 --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/portal/biz/region/RegionQuery.java b/src/main/java/com/yxt/portal/biz/region/RegionQuery.java new file mode 100644 index 0000000..fd2a3fd --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionQuery.java @@ -0,0 +1,23 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * @author dimengzhe + * @date 2021/7/13 21:55 + * @description + */ +@Data +public class RegionQuery implements Query { + private static final long serialVersionUID = -3494331991678665867L; + + @ApiModelProperty(value = "行政区划") + private String districtCode; + @ApiModelProperty(value = "名称") + private String name; + @ApiModelProperty(value = "pSid,市级列表此值需要传省级列表sid", example = "0") + private String psid; +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionService.java b/src/main/java/com/yxt/portal/biz/region/RegionService.java new file mode 100644 index 0000000..f5f0001 --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionService.java @@ -0,0 +1,123 @@ +package com.yxt.portal.biz.region; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author dimengzhe + * @date 2021/7/2 15:06 + * @description + */ +@Service +public class RegionService extends MybatisBaseService { + + // 分页列表 + public IPage pageList(PagerQuery pagerQuery) { + // mybits所用的分页对对象 + IPage page = PagerUtil.queryToPage(pagerQuery); + // mybits所用的查询条件封装类 + QueryWrapper qw = buildQueryWrapper(pagerQuery.getParams()); + return baseMapper.pageList(page, qw); + } + + private QueryWrapper buildQueryWrapper(RegionQuery pagerQuery) { + QueryWrapper qw = new QueryWrapper<>(); + if (pagerQuery != null) { + String code = pagerQuery.getDistrictCode(); + if (StringUtils.isNotBlank(code)) { + qw.like("r.districtCode", code); + } + String pSid = pagerQuery.getPsid(); + qw.eq("r.pSid", pSid); + + String name = pagerQuery.getName(); + if (StringUtils.isNotBlank(name)) { + qw.like("r.name", name); + } + qw.orderByDesc("r.createTime"); + } + return qw; + } + + /** + * 区域树形列表 + * + * @return + */ + public List treeList() { + String psid = "0"; + List list = baseMapper.treeList(psid); + getChildList(list); + return list; + } + + public void getChildList(List list) { + list.forEach(regionTree -> { + String sid = regionTree.getSid(); + List listChildren = baseMapper.treeList(sid); + regionTree.setChildren(listChildren); + getChildList(listChildren); + }); + } + + public List getProvince() { + return baseMapper.getProvince(); + } + + /** + * 获取某省下的所有市 + * + * @param sid 省sid + * @return 该省下的所有市的list + */ + public List getCity(String sid) { + return baseMapper.getCity(sid); + + } + + /** + * 获取某市下的所有区县 + * + * @param sid 市sid + * @return 该市下的所有县区的list + */ + public List getCounty(String sid) { + return baseMapper.getCounty(sid); + } + + RegionThirdLevelNameVo selectThirdLevelNameByCode(String districtCode) { + return baseMapper.selectThirdLevelNameByCode(districtCode); + } + + /** + * 获取省市县 + * + * @param pSid + * @return + */ + public List selectsList(String pSid) { + return baseMapper.selectsList(pSid); + } + + public Region selectByPsid(String pSid) { + return baseMapper.selectByPsid(pSid); + } + + /** + * 根据sid查询该区域是否有下级 + * + * @param sid 区域sid + * @return int + */ + public int selectRegionBySid(String sid) { + return baseMapper.selectRegionBySid(sid); + } + +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionThirdLevelNameVo.java b/src/main/java/com/yxt/portal/biz/region/RegionThirdLevelNameVo.java new file mode 100644 index 0000000..bfcea1f --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionThirdLevelNameVo.java @@ -0,0 +1,24 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description + * @Author liuguohui + * @Date 2021/10/4 + */ +@Data +public class RegionThirdLevelNameVo implements Vo { + + @ApiModelProperty(value = "省") + private String province; + + @ApiModelProperty(value = "市") + private String city; + + @ApiModelProperty(value = "县") + private String county; + +} diff --git a/src/main/java/com/yxt/portal/biz/region/RegionVo.java b/src/main/java/com/yxt/portal/biz/region/RegionVo.java new file mode 100644 index 0000000..3897277 --- /dev/null +++ b/src/main/java/com/yxt/portal/biz/region/RegionVo.java @@ -0,0 +1,35 @@ +package com.yxt.portal.biz.region; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author dimengzhe + * @date 2021/7/2 14:22 + * @description + */ +@Data +public class RegionVo implements Vo { + private static final long serialVersionUID = 3351684167946104384L; + + @ApiModelProperty(value = "sid") + private String sid; + @ApiModelProperty(value = "上级sid") + private String pSid; + @ApiModelProperty(value = "级别") + private Integer level; + @ApiModelProperty(value = "名称,区域名称") + private String name; + @ApiModelProperty(value = "行政区划代码") + private String districtCode; + @ApiModelProperty(value = "sid全路径") + private String sidPath; + @ApiModelProperty(value = "排序号") + private Integer sortNo; + + private List children; + +}