package com.ruoyi.hezhi.mapper;

import com.ruoyi.hezhi.domain.TbMemberSubjectCollect;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 我的收藏题目Mapper接口
 *
 * @author ruoyi
 * @date 2024-11-07
 */
public interface TbMemberSubjectCollectMapper
{
    /**
     * 查询我的收藏题目
     *
     * @param memberSubjectCollectId 我的收藏题目主键
     * @return 我的收藏题目
     */
    public TbMemberSubjectCollect selectTbMemberSubjectCollectByMemberSubjectCollectId(Long memberSubjectCollectId);

    /**
     * 查询我的收藏题目列表
     *
     * @param tbMemberSubjectCollect 我的收藏题目
     * @return 我的收藏题目集合
     */
    public List<TbMemberSubjectCollect> selectTbMemberSubjectCollectList(TbMemberSubjectCollect tbMemberSubjectCollect);

    /**
     * 新增我的收藏题目
     *
     * @param tbMemberSubjectCollect 我的收藏题目
     * @return 结果
     */
    public int insertTbMemberSubjectCollect(TbMemberSubjectCollect tbMemberSubjectCollect);

    /**
     * 修改我的收藏题目
     *
     * @param tbMemberSubjectCollect 我的收藏题目
     * @return 结果
     */
    public int updateTbMemberSubjectCollect(TbMemberSubjectCollect tbMemberSubjectCollect);

    /**
     * 删除我的收藏题目
     *
     * @param memberSubjectCollectId 我的收藏题目主键
     * @return 结果
     */
    public int deleteTbMemberSubjectCollectByMemberSubjectCollectId(Long memberSubjectCollectId);

    /**
     * 批量删除我的收藏题目
     *
     * @param memberSubjectCollectIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTbMemberSubjectCollectByMemberSubjectCollectIds(Long[] memberSubjectCollectIds);

    /**
     * 查询我的收藏题目
     *
     * @param memberUserId 用户ID
     * @param examSubjectId 题目ID
     * @param courseId 课程ID
     * @return 我的收藏题目
     */
    public TbMemberSubjectCollect selectTbMemberSubjectCollectByMemberUserIdSubjectId(@Param("memberUserId") Long memberUserId,
                                                                                      @Param("examSubjectId") Long examSubjectId,
                                                                                      @Param("courseId") Long courseId);

    /**
     * 题目收藏列表
     *
     * @param params 参数
     * @return 结果
     */
    public List<Map<String,Object>> getMemberSubjectCollectList(Map<String,Object> params);

    public int insertMemberSubjectCollectBatch(@Param("tbMemberSubjectCollectList") List<TbMemberSubjectCollect> tbMemberSubjectCollectList);
}
