package com.codvision.auth.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codvision.auth.entity.SysRole;
import com.codvision.auth.entity.vo.SysRoleVO;
import com.codvision.webcore.bean.QueryPage;
import com.codvision.webcore.service.IBaseService;

import java.util.List;

/**
 * <p>
 * 系统角色 服务类
 * </p>
 *
 * @author lingee
 * @since 2023-11-09
 */
public interface ISysRoleService extends IBaseService<SysRole, SysRoleVO> {

    /**
     * 获取系统角色详情
     *
     * @param id
     * @return 系统角色
     */
    SysRoleVO getDetail(Integer id);

    /**
     * 分页查询系统角色
     *
     * @param queryPage 分页参数
     * @return 分页结果
     */
    IPage<SysRoleVO> getPageResult(QueryPage<SysRole> queryPage);

    /**
     * 根据条件查询系统角色
     *
     * @param queryBean 查询条件
     * @return 系统角色列表
     */
    List<SysRoleVO> listAll(SysRole queryBean);

    /**
     * 获取默认角色
     *
     * @return 角色信息
     */
    SysRole getDefaultRole();

    /**
     * 逻辑删除角色
     *
     * @param id id
     */
    void logicDel(Integer id);

    /**
     * 设置角色菜单
     *
     * @param roleId     角色id
     * @param menuIdList 菜单id列表
     */
    void setRoleMenu(Integer roleId, List<Integer> menuIdList);
}
