package org.dromara.member.mapper;

import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.member.domain.AppRole;
import org.dromara.member.domain.vo.AppRoleVo;

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

/**
 * App端角色信息Mapper接口
 *
 * @author pengles
 */
public interface AppRoleMapper extends BaseMapperPlus<AppRole, AppRoleVo> {

    /**
     * 根据用户ID查询角色
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    List<AppRoleVo> selectRolesByUserId(Long userId);

    /**
     * 根据用户ID获取角色权限
     *
     * @param userId 用户ID
     * @return 权限列表
     */
    Set<String> selectRolePermissionByUserId(Long userId);

    /**
     * 查询所有角色
     *
     * @return 角色列表
     */
    List<AppRoleVo> selectRoleAll();

    /**
     * 根据用户ID获取角色选择框列表
     *
     * @param userId 用户ID
     * @return 角色ID列表
     */
    List<Long> selectRoleListByUserId(Long userId);

    /**
     * 校验角色名称是否唯一
     *
     * @param roleName 角色名称
     * @return 结果
     */
    int checkRoleNameUnique(String roleName);

    /**
     * 校验角色权限是否唯一
     *
     * @param roleKey 角色权限
     * @return 结果
     */
    int checkRoleKeyUnique(String roleKey);

}