From 028ad38f4576a9951116d06d2c523eda3f35f68b Mon Sep 17 00:00:00 2001 From: rouchen <3133657697@qq.com> Date: Fri, 12 Apr 2024 23:16:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=8F=9C=E5=8D=95=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysMenuController.java | 9 +++++-- .../com/muyu/system/mapper/SysMenuMapper.java | 2 ++ .../muyu/system/service/SysMenuService.java | 2 ++ .../service/impl/SysMenuServiceImpl.java | 27 ++++++++++++++++++- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java index c22f798..d3c5bf7 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java @@ -8,6 +8,7 @@ import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysMenu; import com.muyu.system.domain.resp.RoleMenuTreeResp; import com.muyu.system.service.SysMenuService; @@ -15,7 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 菜单信息 @@ -35,10 +38,12 @@ public class SysMenuController extends BaseController { @GetMapping("/list") public Result list (SysMenu menu) { Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(menu, userId); - return success(menus); + List sysMenus = menuService.selectMenuList(menu, userId); + return success(sysMenus); } + + /** * 根据菜单编号获取详细信息 */ diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java index 8ceaaa0..0086be4 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java @@ -135,4 +135,6 @@ public interface SysMenuMapper extends BaseMapper { * @return 结果 */ public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId); + + } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java index 29bfb07..5bfd2c9 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java @@ -158,4 +158,6 @@ public interface SysMenuService extends IService { * @return 结果 */ public boolean checkMenuNameUnique (SysMenu menu); + + } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index e4e2ec8..cdd4c3a 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -60,17 +60,40 @@ public class SysMenuServiceImpl extends ServiceImpl impl */ @Override public List selectMenuList (SysMenu menu, Long userId) { + List allSysMenu=null; List menuList = null; + boolean admin = SysUser.isAdmin(userId); // 管理员显示所有菜单信息 - if (SysUser.isAdmin(userId)) { + if (admin) { menuList = menuMapper.selectMenuList(menu); } else { menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } + if(menuList.size()==1){ + SysMenu sysMenu = menuList.get(0); + //调用查询ParentId父类id + this.selectMenuParentId1(menuList,sysMenu); + SysMenu sysMenu1 = new SysMenu(); + sysMenu1.setPerms(menu.getPerms()); + allSysMenu = admin ?menuMapper.selectMenuList(null):menuMapper.selectMenuListByUserId(sysMenu1); + List childList = this.getChildList(allSysMenu, sysMenu); + menuList.addAll(childList); + } return menuList; } + private void selectMenuParentId1(List list,SysMenu menu) { + if(menu.getParentId().equals(0L)){ + return; + }else { + SysMenu sysMenu = this.selectMenuById(menu.getParentId()); + list.add(sysMenu); + selectMenuParentId1(list,sysMenu); + } + } + + /** * 根据用户ID查询权限 * @@ -321,6 +344,8 @@ public class SysMenuServiceImpl extends ServiceImpl impl return UserConstants.UNIQUE; } + + /** * 获取路由名称 *