package cn.reghao.devops.mgr.admin.service;

import cn.reghao.devops.mgr.admin.model.dto.RoleDto;
import cn.reghao.devops.mgr.admin.model.po.Menu;
import cn.reghao.devops.mgr.admin.model.po.Role;
import cn.reghao.devops.mgr.admin.model.po.User;
import cn.reghao.devops.mgr.admin.model.vo.RoleVO;
import cn.reghao.jutil.jdk.result.Result;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;
import java.util.Set;

/**
 * @author reghao
 * @date 2020-06-19 16:36:53
 */
public interface RoleService {
    void addOrUpdate(RoleDto roleDto);
    Result deleteRole(Integer roleId);
    void setRoleMenus(Integer roleId, Set<Menu> menus);
    Role getByName(String name);
    Page<RoleVO> getByPage(PageRequest pageRequest, String name);
    RoleVO getRoleVOById(Integer roleId);
    Set<RoleVO> getAllRoles();
    /**
     * 获取用户拥有的角色
     *
     * @param
     * @return
     * @date 2021-09-10 下午11:12
     */
    Set<RoleVO> getUserRoles(Integer userId);
    /**
     * 获取拥有角色的用户
     *
     * @param
     * @return
     * @date 2021-07-14 下午2:57
     */
    List<User> getRoleUsers(Integer roleId);
}
