package com.codvision.auth.service;

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

import java.util.List;

/**
 * <p>
 * 组织用户关联信息 服务类
 * </p>
 *
 * @author lingee
 * @since 2023-11-10
 */
public interface IUserOrgRoleService extends IBaseService<UserOrgRole, UserOrgRoleVO> {

    /**
     * 获取组织用户关联信息详情
     *
     * @param id
     * @return 组织用户关联信息
     */
    UserOrgRoleVO getDetail(Long id);

    /**
     * 分页查询组织用户关联信息
     *
     * @param queryPage 分页参数
     * @return 分页结果
     */
    IPage<UserOrgRoleVO> getPageResult(QueryPage<UserOrgRole> queryPage);

    /**
     * 根据条件查询组织用户关联信息
     *
     * @param queryBean 查询条件
     * @return 组织用户关联信息列表
     */
    List<UserOrgRoleVO> listAll(UserOrgRole queryBean);

    /**
     * 根据用户id、组织id、角色id获取组织用户关联信息
     *
     * @param uid    用户id
     * @param oid    组织id
     * @param roleId 角色id
     * @return 组织用户关联信息
     */
    UserOrgRole getUserOrgRole(Integer uid, Integer oid, Integer roleId);
}
