From 28231163c688c379a688ce6878a1126ee218aa52 Mon Sep 17 00:00:00 2001 From: huangzhen <867217663@qq.com> Date: 星期二, 26 九月 2023 16:53:48 +0800 Subject: [PATCH] 煤矿功能 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java index 6e04e05..405c859 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDistrictServiceImpl.java @@ -122,5 +122,35 @@ return collect; } + @Override + public List<Long> selectChildrenIdsById(Long id) { + List<SysDistrict> districts = this.selectAll(); + if (CollectionUtils.isEmpty(districts)){ + throw new BusinessException(this.getClass(), ResultConstants.SYSTEM_ERROR_DATABASE_FAIL,"区划信息获取失败"); + } + List<Long> list = new ArrayList<>(); + districts.stream() + //父节点的id = 0,根据它开始进行实现。 + .filter(e -> e.getId().equals(id)) + .map(e ->{ + list.add(e.getId()); + getchildrenIds(list,e,districts); + return e; + }).collect(Collectors.toList()); + return list; + } + + private void getchildrenIds(List<Long> list,SysDistrict root,List<SysDistrict> districts){ + //root为每次最新的传递过来的数据,也就是上面过滤之后的 e ; + List<SysDistrict> collect = districts.stream() + //根据传递过来的 e ,拿到他的id,来查询出他的子节点id 这里有个特点 e.id = 子节点的父节点id + .filter(e -> Objects.equals(e.getParentcode(), root.getCode())) + .map(e -> { + list.add(e.getId()); + getchildrenIds(list,e,districts); + //递归找到他的子节点,直到找到最后一个子节点为止,饼进行封装。 + return e; + }).collect(Collectors.toList()); + } } -- Gitblit v1.9.2