From 9a3985ff94243f4cff7e3f0e5a98f45c18011e2c Mon Sep 17 00:00:00 2001 From: lbw Date: Tue, 4 Jan 2022 17:08:22 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20cl?= =?UTF-8?q?ose=20#3530=20=E9=83=A8=E9=97=A8=E6=A0=91=E3=80=81=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=A0=91=E6=94=AF=E6=8C=81=E6=8C=89=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=A3=80=E7=B4=A2=20=E6=96=B9=E4=BE=BF=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/SysDeptController.java | 5 ++-- .../admin/controller/SysMenuController.java | 6 ++--- .../pigx/admin/service/SysDeptService.java | 3 ++- .../pigx/admin/service/SysMenuService.java | 4 +-- .../service/impl/SysDeptServiceImpl.java | 24 ++++++++++++++---- .../service/impl/SysMenuServiceImpl.java | 25 +++++++++++-------- 6 files changed, 44 insertions(+), 23 deletions(-) diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDeptController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDeptController.java index 3e5ffb64f..7d95f05e6 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDeptController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysDeptController.java @@ -64,11 +64,12 @@ public class SysDeptController { /** * 返回树形菜单集合 + * @param deptName 部门名称 * @return 树形菜单 */ @GetMapping(value = "/tree") - public R getTree() { - return R.ok(sysDeptService.selectTree()); + public R getTree(String deptName) { + return R.ok(sysDeptService.selectTree(deptName)); } /** diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java index 154ded204..cd210ec2b 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysMenuController.java @@ -63,13 +63,13 @@ public class SysMenuController { /** * 返回树形菜单集合 - * @param lazy 是否是懒加载 * @param parentId 父节点ID + * @param menuName 菜单名称 * @return 树形菜单 */ @GetMapping(value = "/tree") - public R getTree(boolean lazy, Long parentId) { - return R.ok(sysMenuService.treeMenu(lazy, parentId)); + public R getTree(Long parentId, String menuName) { + return R.ok(sysMenuService.treeMenu(parentId, menuName)); } /** diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java index 3c7f94fab..a10f225f2 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysDeptService.java @@ -38,8 +38,9 @@ public interface SysDeptService extends IService { /** * 查询部门树菜单 * @return 树 + * @param deptName 部门名称 */ - List> selectTree(); + List> selectTree(String deptName); /** * 添加信息部门 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java index a244c3538..deaeb6d2a 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysMenuService.java @@ -60,11 +60,11 @@ public interface SysMenuService extends IService { /** * 构建树 - * @param lazy 是否是懒加载 * @param parentId 父节点ID + * @param menuName 菜单名称 * @return */ - List> treeMenu(boolean lazy, Long parentId); + List> treeMenu(Long parentId, String menuName); /** * 查询菜单 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java index 4161eab20..2e14e8399 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDeptServiceImpl.java @@ -23,6 +23,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysDept; @@ -115,15 +116,18 @@ public class SysDeptServiceImpl extends ServiceImpl impl /** * 查询全部部门树 - * @return 树 + * @return 树 部门名称 + * @param deptName */ @Override - public List> selectTree() { + public List> selectTree(String deptName) { // 查询全部部门 - List deptAllList = deptMapper.selectList(Wrappers.emptyWrapper()); + List deptAllList = deptMapper + .selectList(Wrappers.lambdaQuery().like(SysDept::getName, deptName)); // 查询数据权限内部门 - List deptOwnIdList = deptMapper.selectListByScope(Wrappers.emptyWrapper(), new DataScope()).stream() - .map(SysDept::getDeptId).collect(Collectors.toList()); + List deptOwnIdList = deptMapper + .selectListByScope(Wrappers.lambdaQuery().like(SysDept::getName, deptName), new DataScope()) + .stream().map(SysDept::getDeptId).collect(Collectors.toList()); // 权限内部门 List> collect = deptAllList.stream() @@ -142,6 +146,16 @@ public class SysDeptServiceImpl extends ServiceImpl impl return treeNode; }).collect(Collectors.toList()); + // 模糊查询 不组装树结构 直接返回 表格方便编辑 + if (StrUtil.isNotBlank(deptName)) { + return collect.stream().map(node -> { + Tree tree = new Tree<>(); + tree.putAll(node.getExtra()); + BeanUtils.copyProperties(node, tree); + return tree; + }).collect(Collectors.toList()); + } + return TreeUtil.build(collect, 0L); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java index a6f19e7a5..a1ce66933 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java @@ -23,6 +23,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysMenu; @@ -35,6 +36,7 @@ import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.constant.enums.MenuTypeEnum; import com.pig4cloud.pigx.common.core.util.R; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -94,25 +96,28 @@ public class SysMenuServiceImpl extends ServiceImpl impl * 构建树查询 1. 不是懒加载情况,查询全部 2. 是懒加载,根据parentId 查询 2.1 父节点为空,则查询ID -1 * @param lazy 是否是懒加载 * @param parentId 父节点ID + * @param menuName 菜单名称 * @return */ @Override - public List> treeMenu(boolean lazy, Long parentId) { - if (!lazy) { - List> collect = baseMapper - .selectList(Wrappers.lambdaQuery().orderByAsc(SysMenu::getSortOrder)).stream() - .map(getNodeFunction()).collect(Collectors.toList()); - - return TreeUtil.build(collect, CommonConstants.MENU_TREE_ROOT_ID); - } - + public List> treeMenu(Long parentId, String menuName) { Long parent = parentId == null ? CommonConstants.MENU_TREE_ROOT_ID : parentId; List> collect = baseMapper - .selectList(Wrappers.lambdaQuery().eq(SysMenu::getParentId, parent) + .selectList(Wrappers.lambdaQuery().like(SysMenu::getName, menuName) .orderByAsc(SysMenu::getSortOrder)) .stream().map(getNodeFunction()).collect(Collectors.toList()); + // 模糊查询 不组装树结构 直接返回 表格方便编辑 + if (StrUtil.isNotBlank(menuName)) { + return collect.stream().map(node -> { + Tree tree = new Tree<>(); + tree.putAll(node.getExtra()); + BeanUtils.copyProperties(node, tree); + return tree; + }).collect(Collectors.toList()); + } + return TreeUtil.build(collect, parent); }