feat: 地区工具类方法补充
This commit is contained in:
@@ -4,13 +4,14 @@ import cn.hutool.core.io.resource.ResourceUtil;
|
|||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.text.csv.CsvRow;
|
import cn.hutool.core.text.csv.CsvRow;
|
||||||
import cn.hutool.core.text.csv.CsvUtil;
|
import cn.hutool.core.text.csv.CsvUtil;
|
||||||
|
import lombok.NonNull;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.agt.framework.common.util.object.ObjectUtils;
|
import org.agt.framework.common.util.object.ObjectUtils;
|
||||||
import org.agt.framework.ip.core.Area;
|
import org.agt.framework.ip.core.Area;
|
||||||
import org.agt.framework.ip.core.enums.AreaTypeEnum;
|
import org.agt.framework.ip.core.enums.AreaTypeEnum;
|
||||||
import lombok.NonNull;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -172,6 +173,34 @@ public class AreaUtils {
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据子区域编号返回其父区域编号列表
|
||||||
|
*
|
||||||
|
* @param id 区域编号
|
||||||
|
* @return 格式化后的区域编号
|
||||||
|
*/
|
||||||
|
public static List<Integer> formatToIdList(Integer id) {
|
||||||
|
// 获得区域
|
||||||
|
Area area = areas.get(id);
|
||||||
|
if (area == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 格式化
|
||||||
|
List<Integer> ids = new ArrayList<>();
|
||||||
|
for (int i = 0; i < AreaTypeEnum.values().length; i++) { // 避免死循环
|
||||||
|
ids.add(area.getId());
|
||||||
|
// “递归”父节点
|
||||||
|
area = area.getParent();
|
||||||
|
if (area == null
|
||||||
|
|| ObjectUtils.equalsAny(area.getId(), Area.ID_GLOBAL, Area.ID_CHINA)) { // 跳过父节点为中国的情况
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Collections.reverse(ids);
|
||||||
|
return ids;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取指定类型的区域列表
|
* 获取指定类型的区域列表
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user