From 484785c22201802bb0a37ae5f872325903c4acb6 Mon Sep 17 00:00:00 2001 From: Zheng Jie <201507802@qq.com> Date: Fri, 7 Jul 2023 17:34:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E3=80=90=E8=8F=9C=E5=8D=95=E3=80=81=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E3=80=91=E7=A7=BB=E5=8A=A8=E8=8A=82=E7=82=B9=E6=97=B6?= =?UTF-8?q?=E5=87=BA=E7=8E=B0PID=E6=95=B0=E6=8D=AE=E7=8E=AF=E5=BD=A2?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20close=20https://github.com/elunez/eladmin/?= =?UTF-8?q?issues/803?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhengjie/modules/system/rest/DeptController.java | 8 ++++++++ .../zhengjie/modules/system/rest/MenuController.java | 12 ++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java index 39d96934..f12a4a2e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/DeptController.java @@ -34,6 +34,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.stream.Collectors; /** * @author Zheng Jie @@ -71,8 +72,15 @@ public class DeptController { for (Long id : ids) { DeptDto deptDto = deptService.findById(id); List depts = deptService.getSuperior(deptDto, new ArrayList<>()); + for (DeptDto dept : depts) { + if(dept.getId().equals(deptDto.getPid())) { + dept.setSubCount(dept.getSubCount() - 1); + } + } deptSet.addAll(depts); } + // 编辑部门时不显示自己以及自己下级的数据,避免出现PID数据环形问题 + deptSet = deptSet.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); return new ResponseEntity<>(deptService.buildTree(new ArrayList<>(deptSet)),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java index 4ad3695b..18084f16 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/system/rest/MenuController.java @@ -24,6 +24,7 @@ import me.zhengjie.modules.system.domain.Menu; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.system.domain.vo.MenuVo; import me.zhengjie.modules.system.service.MenuService; +import me.zhengjie.modules.system.service.dto.DeptDto; import me.zhengjie.modules.system.service.dto.MenuDto; import me.zhengjie.modules.system.service.dto.MenuQueryCriteria; import me.zhengjie.modules.system.service.mapstruct.MenuMapper; @@ -43,7 +44,6 @@ import java.util.stream.Collectors; * @author Zheng Jie * @date 2018-12-03 */ - @RestController @RequiredArgsConstructor @Api(tags = "系统:菜单管理") @@ -104,8 +104,16 @@ public class MenuController { if(CollectionUtil.isNotEmpty(ids)){ for (Long id : ids) { MenuDto menuDto = menuService.findById(id); - menuDtos.addAll(menuService.getSuperior(menuDto, new ArrayList<>())); + List menuDtoList = menuService.getSuperior(menuDto, new ArrayList<>()); + for (MenuDto menu : menuDtoList) { + if(menu.getId().equals(menuDto.getPid())) { + menu.setSubCount(menu.getSubCount() - 1); + } + } + menuDtos.addAll(menuDtoList); } + // 编辑菜单时不显示自己以及自己下级的数据,避免出现PID数据环形问题 + menuDtos = menuDtos.stream().filter(i -> !ids.contains(i.getId())).collect(Collectors.toSet()); return new ResponseEntity<>(menuService.buildTree(new ArrayList<>(menuDtos)),HttpStatus.OK); } return new ResponseEntity<>(menuService.getMenus(null),HttpStatus.OK);