From 4121d03b087f34c056cb5cc9eac1b9610b33ddaa Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Sat, 18 May 2024 17:51:47 +0800 Subject: [PATCH] init --- .../xq/dto/app/areacode/AreaCodeTree.java | 7 ++---- .../xq/service/impl/AreaCodeServiceImpl.java | 25 +++++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeTree.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeTree.java index c30d894..c0cd819 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeTree.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/areacode/AreaCodeTree.java @@ -1,15 +1,12 @@ package com.ruoyi.xq.dto.app.areacode; -import com.ruoyi.xq.domain.AreaCode; import lombok.Data; -import lombok.EqualsAndHashCode; import java.util.ArrayList; import java.util.List; -@EqualsAndHashCode(callSuper = true) @Data -public class AreaCodeTree extends AreaCode { +public class AreaCodeTree { private Integer code; /** @@ -29,7 +26,7 @@ public class AreaCodeTree extends AreaCode { */ private String pname; - private List childrenArea; + private List childrenArea; public void addChild(AreaCodeTree child) { if (childrenArea == null) { childrenArea = new ArrayList<>(); diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java index 155469e..758baa3 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AreaCodeServiceImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.xq.dto.app.areacode.AreaCodeTree; import com.ruoyi.xq.enums.common.AreaCodeLevelEnum; import com.ruoyi.xq.mapper.AreaCodeMapper; import com.ruoyi.xq.service.AreaCodeService; +import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Service; import java.util.*; @@ -67,17 +68,18 @@ public class AreaCodeServiceImpl extends ServiceImpl im List list = this.list(); List nodeList = BeanConvertUtil.convertListTo(list, AreaCodeTree::new); Map nodeMap = new HashMap<>(); - Set roots = new HashSet<>(); + List roots = new ArrayList<>(); // 新增列表用于存储根节点 // 遍历列表构建节点映射表 for (AreaCodeTree node : nodeList) { nodeMap.put(node.getCode(), node); - if (node.getPcode() == 0 || !nodeMap.containsKey(node.getPcode())) { - roots.add(node); - } } // 建立父子关系 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()); parentNode.addChild(node); } @@ -88,20 +90,21 @@ public class AreaCodeServiceImpl extends ServiceImpl im @Override public List treeCity() { List list = this.list(Wrappers.lambdaQuery(AreaCode.class) - .in(AreaCode::getLevel, AreaCodeLevelEnum.PROVINCE,AreaCodeLevelEnum.CITY)); + .in(AreaCode::getLevel, AreaCodeLevelEnum.PROVINCE.getCode(),AreaCodeLevelEnum.CITY.getCode())); List nodeList = BeanConvertUtil.convertListTo(list, AreaCodeTree::new); Map nodeMap = new HashMap<>(); - Set roots = new HashSet<>(); + List roots = new ArrayList<>(); // 新增列表用于存储根节点 // 遍历列表构建节点映射表 for (AreaCodeTree node : nodeList) { nodeMap.put(node.getCode(), node); - if (node.getPcode() == 0 || !nodeMap.containsKey(node.getPcode())) { - roots.add(node); - } } // 建立父子关系 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()); parentNode.addChild(node); }