/* * 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 com.vci.ubcs.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.tool.api.R; import org.springblade.core.tool.node.TreeNode; import org.springblade.core.tool.support.Kv; import com.vci.ubcs.system.entity.Menu; import com.vci.ubcs.system.vo.MenuVO; import java.util.List; import java.util.Map; /** * 服务类 * * @author Chill */ public interface IMenuService extends IService { /** * 懒加载列表 * * @param parentId * @param param * @return */ List lazyList(Long parentId, Map param); /** * 懒加载菜单列表 * * @param parentId * @param param * @return */ IPage lazyMenuPage(Long parentId, Map param, Query query); /** * 菜单树形结构 * * @param roleId * @param topMenuId * @return */ List routes(String roleId, Long topMenuId); /** * 按钮树形结构 * * @param roleId * @return */ List buttons(String roleId); /** * 树形结构 * * @return */ List tree(); /** * 授权树形结构 * * @param user * @return */ List grantTree(BladeUser user); /** * 根据角色id获取菜单树形结构 * @param roleId * @return */ List grantTreeByRoleIds(List roleId); /** * 顶部菜单树形结构 * * @param user * @return */ List grantTopTree(BladeUser user); /** * 数据权限授权树形结构 * * @param user * @return */ List grantDataScopeTree(BladeUser user); /** * 接口权限授权树形结构 * * @param user * @return */ List grantApiScopeTree(BladeUser user); /** * 默认选中节点 * * @param roleIds * @return */ List roleTreeKeys(String roleIds); /** * 默认选中节点 * * @param topMenuIds * @return */ List topTreeKeys(String topMenuIds); /** * 默认选中节点 * * @param roleIds * @return */ List dataScopeTreeKeys(String roleIds); /** * 默认选中节点 * * @param roleIds * @return */ List apiScopeTreeKeys(String roleIds); /** * 获取配置的角色权限 * * @param user * @return */ List authRoutes(BladeUser user); /** * 删除菜单 * * @param ids * @return */ boolean removeMenu(String ids); /** * 提交 * * @param menu * @return */ boolean submit(Menu menu); /** * 获取菜单下面的按钮 * @param classifyId * @param btmType * @param authType * @return */ List getMenuButtonByType(String classifyId,String btmType, String authType); /** * 根据code和用户id查询菜单信息 * @param codes * @param userId * @return */ List getMenuByCodes(List codes,Long userId); /** * 根据父级菜单的code查询按钮信息 * @param code * @return */ List getButtonByParentCode(String code); /** * 对KeepAlive值转换成布尔类型进行封装 * * @param childMenu * @return */ void handleKeepAlive(List childMenu); /** * 克隆其他菜单下按钮 * @param menuId 要克隆的菜单按钮主键 * @param buttonIds 被克隆的按钮主键 * @return */ R cloneMenuButton(Long menuId, List buttonIds); /** * 根据主键获取菜单信息 * @param ids * @param menuCode * @param roleIds * @return */ List getMenuListByCode(List ids,String menuCode,String roleIds); /** * 根据角色id获取已授权的按钮信息 * @param roleId * @param menuCode * @return */ List getButtonsByRoleId(String roleId, String menuCode); }