package com.kiisoo.ic.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kiisoo.ic.system.bean.LoginPermissionBean;
import com.kiisoo.ic.system.bean.PermissionBiggestBean;
import com.kiisoo.ic.system.bean.PermissionOutPut;
import com.kiisoo.ic.system.entity.PrivilagePermissionDO;

import java.util.List;

/**
 * 权限菜单表  服务类
 * @author jinchaofan
 * @since 2020-02-19
 */
public interface PrivilagePermissionService extends IService<PrivilagePermissionDO> {


    /**
     * 查询角色的权限
     * @param roleId 角色id
     * @return 角色的权限
     */
    List<PermissionBiggestBean> listRolePermission(Long roleId);

    /**
     * 查询角色拥有的权限
     * @param roleId 角色id
     * @return 角色拥有的权限
     */
    List<PermissionBiggestBean> listRoleHavePermission(Long roleId);

    /**
     * 查询所有权限
     * @return 所有权限
     */
    List<PermissionBiggestBean> listAllPermission();

    /**
     * 保存权限
     * @param permissionOutPuts 权限集合
     * @param roleId 角色id
     * @return 是否成功
     */
    boolean saveRolePermission(List<PermissionBiggestBean> permissionOutPuts, Long roleId);

    /**
     * 查询用户登录权限
     * @param userId 用户id
     * @param level 等级
     * @return 用户登录权限
     */
    List<LoginPermissionBean> listUserLoginPermission(Long userId, int level);

}
