package com.securitycontrol.system.base.service;

import com.securitycontrol.common.core.web.domain.AjaxResult;
import com.securitycontrol.entity.system.dto.RoleDto;
import com.securitycontrol.entity.system.vo.RoleVo;

import java.util.List;

/**
 * @author：cwchen
 * @date：2024-02-23-18:32
 * @version：1.0
 * @description：角色管理-业务层
 */
public interface IRoleService {

    /**
     * 角色列表
     *
     * @param dto
     * @return List<RoleVo>
     * @description 角色列表
     * @author cwchen
     * @date 2024/2/26 9:32
     */
    List<RoleVo> getRoleLists(RoleDto dto);

    /**
     * 新增/修改角色
     *
     * @param vo
     * @return AjaxResult
     * @description 新增/修改角色
     * @author cwchen
     * @date 2024/2/26 10:29
     */
    AjaxResult addOrUpdateRole(RoleVo vo);

    /**
     * 角色详情
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/2/26 10:42
     */
    AjaxResult getRoleById(RoleDto dto);

    /**
     * 删除角色
     *
     * @param dto
     * @return AjaxResult
     * @description
     * @author cwchen
     * @date 2024/2/26 10:48
     */
    AjaxResult delRole(RoleDto dto);

    /**
     * 角色授权菜单
     *
     * @param vo
     * @return AjaxResult
     * @description 角色授权菜单
     * @author cwchen
     * @date 2024/2/26 14:41
     */
    AjaxResult authMenu(RoleVo vo);

    /**
     * 获取角色授权的菜单
     *
     * @param dto
     * @return AjaxResult
     * @description 获取角色授权的菜单
     * @author cwchen
     * @date 2024/2/26 14:54
     */
    AjaxResult getAuthMenu(RoleDto dto);
}
