查询站点和组树状列表接口按行政区过滤逻辑,行政区接口逻辑完善等
This commit is contained in:
@ -59,5 +59,11 @@ public interface ISysDistrictService
|
||||
*/
|
||||
public int deleteSysDistrictById(Long id);
|
||||
|
||||
List<SysDistrict> selectSysDistrictTree();
|
||||
List<SysDistrict> selectSysDistrictTree(Integer level);
|
||||
|
||||
/**
|
||||
* 查询指定地区行政区划树状列表
|
||||
*/
|
||||
List<SysDistrict> selectSysDistrictTreeByCode(Long areaCode);
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONException;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.fastbee.common.exception.ServiceException;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -69,9 +70,6 @@ public class SysDistrictServiceImpl implements ISysDistrictService
|
||||
|
||||
/**
|
||||
* 修改行政区划
|
||||
*
|
||||
* @param sysDistrict 行政区划
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateSysDistrict(SysDistrict sysDistrict)
|
||||
@ -118,9 +116,6 @@ public class SysDistrictServiceImpl implements ISysDistrictService
|
||||
|
||||
/**
|
||||
* 批量删除行政区划
|
||||
*
|
||||
* @param ids 需要删除的行政区划主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteSysDistrictByIds(Long[] ids)
|
||||
@ -130,9 +125,6 @@ public class SysDistrictServiceImpl implements ISysDistrictService
|
||||
|
||||
/**
|
||||
* 删除行政区划信息
|
||||
*
|
||||
* @param id 行政区划主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteSysDistrictById(Long id)
|
||||
@ -142,19 +134,52 @@ public class SysDistrictServiceImpl implements ISysDistrictService
|
||||
|
||||
/**
|
||||
* 查询行政区划树状列表
|
||||
* @return 树状列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysDistrict> selectSysDistrictTree() {
|
||||
public List<SysDistrict> selectSysDistrictTree(Integer level) {
|
||||
System.err.println("等级:level:"+level);
|
||||
//计算查询用时
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<SysDistrict> sysDistrictList = new LambdaQueryChainWrapper<>(sysDistrictMapper)
|
||||
.select(SysDistrict::getId,SysDistrict::getAdcode, SysDistrict::getParentId, SysDistrict::getName,
|
||||
SysDistrict::getFullName )
|
||||
.ge(Objects.nonNull(level),SysDistrict::getLevel, level)
|
||||
.list();
|
||||
System.err.println("查询用时:"+(System.currentTimeMillis()-startTime));
|
||||
return buildTree(sysDistrictList);
|
||||
}
|
||||
/**
|
||||
* 查询指定地区行政区划树状列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysDistrict> selectSysDistrictTreeByCode(Long areaCode) {
|
||||
LambdaQueryChainWrapper<SysDistrict> sysDistrictLambdaQueryChainWrapper = new LambdaQueryChainWrapper<>(sysDistrictMapper)
|
||||
.select(SysDistrict::getId, SysDistrict::getParentId, SysDistrict::getName, SysDistrict::getAdcode,
|
||||
SysDistrict::getLevel, SysDistrict::getFullName, SysDistrict::getName
|
||||
, SysDistrict::getLng, SysDistrict::getLat);
|
||||
//获取子级别
|
||||
List<SysDistrict> sysDistrictList = sysDistrictLambdaQueryChainWrapper.eq(SysDistrict::getAdcode, areaCode)
|
||||
.list();
|
||||
if (Objects.isNull(sysDistrictList) || sysDistrictList.isEmpty()) {
|
||||
throw new ServiceException("未查询到指定地区行政区划树状列表!");
|
||||
}
|
||||
|
||||
//查询全部
|
||||
List<SysDistrict> sysDistrictListAll = new LambdaQueryChainWrapper<>(sysDistrictMapper)
|
||||
.select(SysDistrict::getId, SysDistrict::getParentId, SysDistrict::getName, SysDistrict::getAdcode,
|
||||
SysDistrict::getLevel, SysDistrict::getFullName, SysDistrict::getName
|
||||
, SysDistrict::getLng, SysDistrict::getLat)
|
||||
.ge(SysDistrict::getAdcode, areaCode)
|
||||
.lt(SysDistrict::getAdcode, (Long.parseLong(areaCode.toString().substring(0,2))+1)*10000000000L)
|
||||
.list();
|
||||
return buildTree(sysDistrictList);
|
||||
|
||||
System.err.println("查询到全部列表上限条件");
|
||||
System.err.println(((Long.parseLong(areaCode.toString().substring(0,2))+1)*10000000000L));
|
||||
List<SysDistrict> sysDistricts = buildTree(sysDistrictListAll);
|
||||
return Collections.singletonList(sysDistricts.get(0));
|
||||
}
|
||||
|
||||
|
||||
|
||||
private List<SysDistrict> buildTree(List<SysDistrict> SysDistricts) {
|
||||
Map<Long, SysDistrict> map = new HashMap<>();
|
||||
List<SysDistrict> roots = new ArrayList<>();
|
||||
|
Reference in New Issue
Block a user