package com.ym.mec.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ym.mec.biz.dal.dao.ImLiveRoomPurviewDao;
import com.ym.mec.biz.dal.dto.SysUserDto;
import com.ym.mec.biz.dal.entity.ImGroup;
import com.ym.mec.biz.dal.entity.ImLiveRoomPurview;
import com.ym.mec.common.page.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 * 直播间的观看权限表(ImLiveRoomPurview)表服务接口
 *
 * @author hgw
 * @since 2022-06-08 09:43:48
 */
public interface ImLiveRoomPurviewService extends IService<ImLiveRoomPurview> {

    ImLiveRoomPurviewDao getDao();

    /**
     * 批量添加/根据查询条件添加房间观看权限
     *
     * @param param 参数
     *              <p> - search 搜索关键字
     *              <p> - subjectId 声部ID
     *              <p> - organIds 分部ID
     *              <p> - groupIds 群聊ID
     *              <p> - teamIds 乐团ID
     *              <p> - schoolIds 学校id/合作单位id
     *              <p> - roomUid 直播间UID
     */
    void addByCondition(Map<String, Object> param);

    /**
     * 指定多个学员id添加观看权限数据
     *
     * @param ids     bizId
     * @param roomUid 直播间UID
     */
    void add(String ids, String roomUid);

    /**
     * 删除观看权限数据
     *
     * @param ids     bizId
     * @param roomUid 直播间UID
     */
    void delete(String ids, String roomUid);

    /**
     * 查询学员列表-观看权限
     *
     * @param param 参数
     *              <p> - search 搜索关键字
     *              <p> - subjectId 声部ID
     *              <p> - roomUid 直播间UID
     *              <p> -page 页数
     *              <p> -rows 每页数量
     */
    PageInfo<SysUserDto> queryStudent(Map<String, Object> param);

    /**
     * 选择列表-观看权限-查询学员列表
     *
     * @param param 参数
     *              <p> - search 搜索关键字
     *              <p> - subjectId 声部ID
     *              <p> - roomUid 直播间UID
     *              <p> -page 页数
     *              <p> -rows 每页数量
     */
    PageInfo<SysUserDto> selectRoomPurviewStudent(Map<String, Object> param);

    /**
     * 选择-观看权限-群聊列表
     *
     * @param param 参数
     *              <p> - search 搜索关键字
     *              <p> - roomUid 直播间UID
     *              <p> - groupType 群类型
     *              <p> -page 页数
     *              <p> -rows 每页数量
     */
    PageInfo<ImGroup> selectRoomPurviewGroup(Map<String, Object> param);

    /**
     * 导入观看权限-人员
     */
    String importPurviewUser(MultipartFile file, String roomUid) throws Exception;
}

