init
This commit is contained in:
@@ -1,15 +1,12 @@
|
|||||||
package com.ruoyi.xq.dto.app.areacode;
|
package com.ruoyi.xq.dto.app.areacode;
|
||||||
|
|
||||||
import com.ruoyi.xq.domain.AreaCode;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
@Data
|
||||||
public class AreaCodeTree extends AreaCode {
|
public class AreaCodeTree {
|
||||||
|
|
||||||
private Integer code;
|
private Integer code;
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +26,7 @@ public class AreaCodeTree extends AreaCode {
|
|||||||
*/
|
*/
|
||||||
private String pname;
|
private String pname;
|
||||||
|
|
||||||
private List<AreaCode> childrenArea;
|
private List<AreaCodeTree> childrenArea;
|
||||||
public void addChild(AreaCodeTree child) {
|
public void addChild(AreaCodeTree child) {
|
||||||
if (childrenArea == null) {
|
if (childrenArea == null) {
|
||||||
childrenArea = new ArrayList<>();
|
childrenArea = new ArrayList<>();
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.ruoyi.xq.dto.app.areacode.AreaCodeTree;
|
|||||||
import com.ruoyi.xq.enums.common.AreaCodeLevelEnum;
|
import com.ruoyi.xq.enums.common.AreaCodeLevelEnum;
|
||||||
import com.ruoyi.xq.mapper.AreaCodeMapper;
|
import com.ruoyi.xq.mapper.AreaCodeMapper;
|
||||||
import com.ruoyi.xq.service.AreaCodeService;
|
import com.ruoyi.xq.service.AreaCodeService;
|
||||||
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -67,17 +68,18 @@ public class AreaCodeServiceImpl extends ServiceImpl<AreaCodeMapper,AreaCode> im
|
|||||||
List<AreaCode> list = this.list();
|
List<AreaCode> list = this.list();
|
||||||
List<AreaCodeTree> nodeList = BeanConvertUtil.convertListTo(list, AreaCodeTree::new);
|
List<AreaCodeTree> nodeList = BeanConvertUtil.convertListTo(list, AreaCodeTree::new);
|
||||||
Map<Integer, AreaCodeTree> nodeMap = new HashMap<>();
|
Map<Integer, AreaCodeTree> nodeMap = new HashMap<>();
|
||||||
Set<AreaCodeTree> roots = new HashSet<>();
|
List<AreaCodeTree> roots = new ArrayList<>(); // 新增列表用于存储根节点
|
||||||
// 遍历列表构建节点映射表
|
// 遍历列表构建节点映射表
|
||||||
for (AreaCodeTree node : nodeList) {
|
for (AreaCodeTree node : nodeList) {
|
||||||
nodeMap.put(node.getCode(), node);
|
nodeMap.put(node.getCode(), node);
|
||||||
if (node.getPcode() == 0 || !nodeMap.containsKey(node.getPcode())) {
|
|
||||||
roots.add(node);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 建立父子关系
|
// 建立父子关系
|
||||||
for (AreaCodeTree node : nodeList) {
|
for (AreaCodeTree node : nodeList) {
|
||||||
if (nodeMap.containsKey(node.getPcode())) {
|
// 如果节点的父节点ID不在Map中,说明它是根节点
|
||||||
|
if (!nodeMap.containsKey(node.getPcode())) {
|
||||||
|
roots.add(node);
|
||||||
|
} else {
|
||||||
|
// 否则,找到其父节点并添加当前节点到父节点的子节点列表中
|
||||||
AreaCodeTree parentNode = nodeMap.get(node.getPcode());
|
AreaCodeTree parentNode = nodeMap.get(node.getPcode());
|
||||||
parentNode.addChild(node);
|
parentNode.addChild(node);
|
||||||
}
|
}
|
||||||
@@ -88,20 +90,21 @@ public class AreaCodeServiceImpl extends ServiceImpl<AreaCodeMapper,AreaCode> im
|
|||||||
@Override
|
@Override
|
||||||
public List<AreaCodeTree> treeCity() {
|
public List<AreaCodeTree> treeCity() {
|
||||||
List<AreaCode> list = this.list(Wrappers.lambdaQuery(AreaCode.class)
|
List<AreaCode> list = this.list(Wrappers.lambdaQuery(AreaCode.class)
|
||||||
.in(AreaCode::getLevel, AreaCodeLevelEnum.PROVINCE,AreaCodeLevelEnum.CITY));
|
.in(AreaCode::getLevel, AreaCodeLevelEnum.PROVINCE.getCode(),AreaCodeLevelEnum.CITY.getCode()));
|
||||||
List<AreaCodeTree> nodeList = BeanConvertUtil.convertListTo(list, AreaCodeTree::new);
|
List<AreaCodeTree> nodeList = BeanConvertUtil.convertListTo(list, AreaCodeTree::new);
|
||||||
Map<Integer, AreaCodeTree> nodeMap = new HashMap<>();
|
Map<Integer, AreaCodeTree> nodeMap = new HashMap<>();
|
||||||
Set<AreaCodeTree> roots = new HashSet<>();
|
List<AreaCodeTree> roots = new ArrayList<>(); // 新增列表用于存储根节点
|
||||||
// 遍历列表构建节点映射表
|
// 遍历列表构建节点映射表
|
||||||
for (AreaCodeTree node : nodeList) {
|
for (AreaCodeTree node : nodeList) {
|
||||||
nodeMap.put(node.getCode(), node);
|
nodeMap.put(node.getCode(), node);
|
||||||
if (node.getPcode() == 0 || !nodeMap.containsKey(node.getPcode())) {
|
|
||||||
roots.add(node);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 建立父子关系
|
// 建立父子关系
|
||||||
for (AreaCodeTree node : nodeList) {
|
for (AreaCodeTree node : nodeList) {
|
||||||
if (nodeMap.containsKey(node.getPcode())) {
|
// 如果节点的父节点ID不在Map中,说明它是根节点
|
||||||
|
if (!nodeMap.containsKey(node.getPcode())) {
|
||||||
|
roots.add(node);
|
||||||
|
} else {
|
||||||
|
// 否则,找到其父节点并添加当前节点到父节点的子节点列表中
|
||||||
AreaCodeTree parentNode = nodeMap.get(node.getPcode());
|
AreaCodeTree parentNode = nodeMap.get(node.getPcode());
|
||||||
parentNode.addChild(node);
|
parentNode.addChild(node);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user