数据库表设计
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/bdf2a0add8de0702b6361ac9992c42ab.png)
消耗性能小实现查询
省市区常量定义
package com.rainyhon.common.core.constant;
public class RegionConstants {
public static final Integer PROVINCE = 1;
public static final Integer CITY = 2;
public static final Integer AREA = 3;
}
业务代码实现
public List<SysRegion> selectRegion(Integer level, String regionCode) {
LambdaQueryWrapper<SysRegion> query = new LambdaQueryWrapper<>();
if (Objects.isNull(level)) {
query.eq(SysRegion::getRegionLevel,RegionConstants.PROVINCE);
} else if (RegionConstants.PROVINCE.equals(level)) {
query.eq(SysRegion::getRegionLevel, RegionConstants.CITY);
if (Objects.nonNull(regionCode)) {
query.likeRight(SysRegion::getRegionCode, regionCode.substring(0,2));
}
} else if (RegionConstants.CITY.equals(level)) {
query.eq(SysRegion::getRegionLevel, RegionConstants.AREA);
if (Objects.nonNull(regionCode)) {
query.likeRight(SysRegion::getRegionCode, regionCode.substring(0,4));
}
}
return mapper.selectList(query);
}
业务场景:
- 根据传入参数 地区等级和地区代码 获取该地区下一级
- 如果没有传入参数 直接显示省级相关信息