package com.enterprise.manage.modules.system.service;

import com.enterprise.manage.common.base.BaseIService;
import com.enterprise.manage.modules.system.domain.po.Menu;

import java.util.List;

/**
 * system menu service interface
 *
 * @author PeiZhi Guo
 * 2021-2-27 10:50
 */
public interface IMenuService extends BaseIService<Menu> {

    /**
     * 查询类型是目录、菜单的树结构 list 集合。
     *
     * Return List<SysMenu>
     */
    List<Menu> querySelectTree();

    /**
     * 查询角色所有数据的树结构 list 集合
     *
     * Param roleId
     * Return List<SysMenu>
     */
    List<Menu> queryRolePermission(Long roleId);

    /**
     * 菜单名称唯一校验
     *
     * Param SysMenu
     * Return boolean
     */
    boolean checkMenuNameUnique(Menu menu);

    /**
     * 是否存在子菜单节点
     *
     * Param id
     * Return boolean
     */
    boolean hasChildByMenuId(Integer id);

    /**
     * 启用、禁用菜单
     *
     * Param id
     * Param type
     * Return boolean
     */
    boolean updateEnableById(Integer id, Integer type);
}
