From 2e2373691abf79495323960c8fef49e9131c0efe Mon Sep 17 00:00:00 2001 From: liyawei Date: Tue, 13 Sep 2022 18:59:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=8B=86=E5=88=86-=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9B=AE=E5=BD=95=EF=BC=9A=E6=9F=A5=E8=AF=A2=E5=AD=90?= =?UTF-8?q?=E8=8A=82=E7=82=B9bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ISarFileSplitMenuEOService.java | 7 ++++ .../impl/FileSplitItemsEOServiceImpl.java | 8 ++++- .../impl/SarFileSplitMenuEOServiceImpl.java | 34 +++++++++++++++++-- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java index 361e46e32..3f0c303a7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java @@ -22,6 +22,13 @@ public interface ISarFileSplitMenuEOService extends IService int addMenu(SarFileSplitMenuEO sarFileSplitMenuEO); + /** + * 根据ID查询所有的子节点包括父节点 + * @param sarFileSplitMenuEO + * @return + */ + List queryAllChildrenById(SarFileSplitMenuEO sarFileSplitMenuEO); + void deleteMenu(String id); int insert(SarFileSplitMenuEO sarFileSplitMenuEO); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 48c404d84..cf4dd3a35 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -45,6 +45,7 @@ import com.jero.modules.split.page.SarFileSplitMenuEOPage; import com.jero.modules.split.service.IFileSplitItemsEOService; import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.split.service.ISarFileSplitItemsValEOService; +import com.jero.modules.split.service.ISarFileSplitMenuEOService; import com.jero.modules.split.util.POIReadExcelToHtml; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysCategoryTreeVO; @@ -124,6 +125,8 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl menuIdList = sarFileSplitMenuEOMapper.queryAllChildrenByid(sarFileSplitMenuEO).stream() + List menuIdList = sarFileSplitMenuEOService.queryAllChildrenById(sarFileSplitMenuEO).stream() .map(SarFileSplitMenuEO::getId) .collect(Collectors.toList()); +// List menuIdList = sarFileSplitMenuEOMapper.queryAllChildrenByid(sarFileSplitMenuEO).stream() +// .map(SarFileSplitMenuEO::getId) +// .collect(Collectors.toList()); String menuIds = StringUtils.join(menuIdList,"','"); conditionSb.append(" and sar_file_split_items." + key + " in('" + menuIds + "')"); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java index 660eb7c95..0385006f7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/SarFileSplitMenuEOServiceImpl.java @@ -1,6 +1,6 @@ package com.jero.modules.split.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.split.entity.SarFileSplitMenuEO; import com.jero.modules.split.mapper.SarFileSplitItemsValEOMapper; @@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; /** @@ -79,12 +80,41 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl queryAllChildrenById(SarFileSplitMenuEO sarMenuEO) { + SarFileSplitMenuEO sarFileSplitMenuEO = dao.selectByPrimaryKey(sarMenuEO.getId()); + SarFileSplitMenuEOPage page = new SarFileSplitMenuEOPage(); + page.setInfoId(sarFileSplitMenuEO.getInfoId()); + List listAll = dao.queryByList(page); // 查询所有目录 + + List result = new ArrayList<>(); + // 递归查询 指定父节点下的所有子节点,包括父节点 + if (CollectionUtil.isNotEmpty(listAll)) { + result.add(sarFileSplitMenuEO); // 加上父节点 + recursion(listAll, result, sarFileSplitMenuEO); + } + + return result; + } + + private void recursion(List listAll, List result, SarFileSplitMenuEO father) { + List childern = listAll.stream().filter(e-> father.getId().equals(e.getPId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(childern)) { + result.addAll(childern); + for(SarFileSplitMenuEO menuEO : childern) { + recursion(listAll, result, menuEO); + } + + } + } + public void deleteMenu(String id){ List menuIds = new ArrayList<>(); SarFileSplitMenuEO sarMenuEO = new SarFileSplitMenuEO(); sarMenuEO.setId(id); // 查询当前节点及所有子节点 - List list = dao.queryAllChildrenByid(sarMenuEO); +// List list = dao.queryAllChildrenByid(sarMenuEO); + List list = queryAllChildrenById(sarMenuEO); + if (list != null && !list.isEmpty()) { for(SarFileSplitMenuEO menu : list){ menuIds.add(menu.getId());