package com.zd.system.service;

import java.util.List;

import com.zd.system.api.domain.SysPermitInfo;
import com.zd.system.api.domain.SysUser;
import com.zd.system.domain.SysPermitMenu;

/**
 * 权限和菜单关联Service接口
 *
 * @author liubo
 * @date 2022-03-21
 */
public interface ISysPermitMenuService {
    /**
     * 查询权限和菜单关联
     *
     * @param menuId 权限和菜单关联主键
     * @return 权限和菜单关联
     */
    public SysPermitMenu selectSysPermitMenuByMenuId(Long menuId);

    /**
     * 查询权限和菜单关联列表
     *
     * @param sysPermitMenu 权限和菜单关联
     * @return 权限和菜单关联集合
     */
    public List<SysPermitMenu> selectSysPermitMenuList(SysPermitMenu sysPermitMenu);

    /**
     * 新增权限和菜单关联
     *
     * @param sysPermitMenu 权限和菜单关联
     * @return 结果
     */
    public int insertSysPermitMenu(SysPermitMenu sysPermitMenu);

    /**
     * 修改权限和菜单关联
     *
     * @param sysPermitMenu 权限和菜单关联
     * @return 结果
     */
    public int updateSysPermitMenu(SysPermitMenu sysPermitMenu);

    /**
     * 批量删除权限和菜单关联
     *
     * @param menuIds 需要删除的权限和菜单关联主键集合
     * @return 结果
     */
    public int deleteSysPermitMenuByMenuIds(Long[] menuIds);

    /**
     * 删除权限和菜单关联信息
     *
     * @param menuId 权限和菜单关联主键
     * @return 结果
     */
    public int deleteSysPermitMenuByMenuId(Long menuId);

    List<SysPermitInfo> selectPerMitByUserId(SysUser sysUser);

    void insertSysPermitMenuList(Long permitId, Long userId, List<SysPermitMenu> permitMenus);
}
