/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.sxkj.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.springblade.core.tool.node.TreeNode; import org.sxkj.system.dto.MenuDTO; import org.sxkj.system.entity.Menu; import org.sxkj.system.vo.MenuVO; import java.util.List; import java.util.Map; /** * MenuMapper 接口 * * @author Chill */ public interface MenuMapper extends BaseMapper { /** * 懒加载列表 * * @param parentId * @param param * @return */ List lazyList(Long parentId, Map param); /** * 懒加载菜单列表 * * @param parentId * @param param * @return */ List lazyMenuList(Long parentId, Map param); /** * 树形结构 * * @return */ List tree(); /** * 授权树形结构 * * @return */ List grantTree(@Param("sysType") Integer sysType); /** * 授权树形结构 * * @param roleId * @return */ List grantTreeByRole(@Param("list") List roleIdList, @Param("sysType") Integer sysType); /** * 顶部菜单树形结构 * * @return */ List grantTopTree(); /** * 顶部菜单树形结构 * * @param roleId * @return */ List grantTopTreeByRole(List roleId); /** * 数据权限授权树形结构 * * @return */ List grantDataScopeTree(); /** * 接口权限授权树形结构 * * @return */ List grantApiScopeTree(); /** * 数据权限授权树形结构 * * @param roleId * @return */ List grantDataScopeTreeByRole(List roleId); /** * 接口权限授权树形结构 * * @param roleId * @return */ List grantApiScopeTreeByRole(List roleId); /** * 所有菜单 * * @return */ List allMenu(); /** * 权限配置菜单 * * @param roleId * @param topMenuId * @return */ List roleMenu(List roleId, Long topMenuId); /** * 权限配置菜单 * * @param roleId * @param sysType * @return */ List roleMenuByRoleId(@Param("list") List roleId,@Param("sysType") Integer sysType); /** * 权限配置菜单 * * @param topMenuId * @return */ List roleMenuByTopMenuId(Long topMenuId); /** * 菜单树形结构 * * @param roleId * @return */ List routes(List roleId); /** * 按钮树形结构 * * @return */ List allButtons(@Param("sysType") Integer sysType); /** * 按钮树形结构 * * @param roleId * @return */ List buttons(@Param("list") List roleId,@Param("sysType") Integer sysType); /** * 根据类型查询菜单 * @param roleIdList 角色ID列表(管理员传null) * @param sysType 系统类型 * @param categoryList 菜单类型列表 * @return 菜单列表 */ List queryMenusByType(@Param("roleIdList") List roleIdList, @Param("sysType") Integer sysType, @Param("categoryList") List categoryList); /** * 获取配置的角色权限 * * @param roleIds * @return */ List authRoutes(List roleIds); /** * 按条件查询所有菜单列表 * @param sysType * @return */ List getAllMenuByParam(@Param("sysType") Integer sysType,@Param("category") Integer category); /** * 前端设备权限按钮数据 */ List deviceButtons(); /** * 查询当前角色对应的菜单 * @param roleId * @return */ List getRoleButton(@Param("list") List roleId); /** * 机场授权功能按钮查询 * @param deviceSn * @param deptId * @return */ List getAirportPerButton(@Param("deviceSn") String deviceSn,@Param("deptId") String deptId); /** * 按类型查询所有菜单(支持多菜单类型) * @param sysType 系统类型:1-后台 2-大屏 3-APP * @param categoryList 菜单类型列表:1-菜单 2-按钮 3-Tab导航 4-功能导航 * @return 菜单列表 */ List selectAllMenusByCategories(@Param("sysType") Integer sysType, @Param("categoryList") List categoryList); /** * 根据角色ID和类型查询菜单(支持多菜单类型) * @param roleIdList 角色ID列表 * @param sysType 系统类型 * @param categoryList 菜单类型列表 * @return 菜单列表 */ List selectRoleMenusByCategories(@Param("roleIdList") List roleIdList, @Param("sysType") Integer sysType, @Param("categoryList") List categoryList); /** * 查询菜单(管理员用,支持多类型) * @param sysType 系统类型 * @param categoryList 菜单类型列表 * @return 菜单列表 */ List selectMenusByType(@Param("sysType") Integer sysType, @Param("categoryList") List categoryList); /** * 查询菜单(普通用户,支持多类型和权限控制) * @param roleIdList 角色ID列表 * @param sysType 系统类型 * @param categoryList 菜单类型列表 * @return 菜单列表 */ List selectMenusWithPermission(@Param("roleIdList") List roleIdList, @Param("sysType") Integer sysType, @Param("categoryList") List categoryList); }