package cn.hnthyy.thmz.service.thmz;

import cn.hnthyy.thmz.entity.MzException;
import cn.hnthyy.thmz.entity.thmz.RoleMenuRelation;
import cn.hnthyy.thmz.vo.RoleMenuRelationVo;

import java.util.List;

/**
 * 角色与菜单关系表服务接口
 */
public interface RoleMenuRelationService {
    /**
     * 根据单个id查询菜单关系
     *
     * @param id
     * @return
     */
    RoleMenuRelation queryById(Long id);

    /**
     * 根据角色id集合查询菜单关系
     *
     * @param roleIds
     * @return
     */
    List<RoleMenuRelation> queryByRoleIds(List<Long> roleIds);

    /**
     * 根据菜单id查询角色菜单关系
     *
     * @param menuId
     * @return
     */
    List<RoleMenuRelation> queryByMenuId(Long menuId);

    /**
     * 根据roleId查询菜单关系
     *
     * @param roleId
     * @return
     */
    List<RoleMenuRelation> queryByRoleId(Long roleId);


    /**
     * 新增菜单关系
     *
     * @param roleMenuRelationVo
     * @param createId
     * @return
     */
    int saveMenuRelation(RoleMenuRelationVo roleMenuRelationVo, Long createId) throws MzException;

    /**
     * 删除菜单关系
     *
     * @param id
     * @return
     */
    int removeById(Long id);

    /**
     * 删除角色对应的所有菜单关系
     *
     * @param roleId
     * @return
     */
    int removeByRoleId(Long roleId);


    /**
     * 删除单个菜单对应的所有菜单关系
     *
     * @param menuId
     * @return
     */
    int removeByMenuId(Long menuId);


}
