package com.zd.exam.mapper;

import com.zd.exam.domain.ElCourseChapter;
import com.zd.exam.domain.vo.ChapterLearnVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 学习资源章节Mapper接口
 *
 * @author liubo
 * @date 2021-12-07
 */
public interface ElCourseChapterMapper {
    /**
     * 查询学习资源章节
     *
     * @param id 学习资源章节主键
     * @return 学习资源章节
     */
    public ElCourseChapter selectElCourseChapterById(Long id);

    /**
     * 查询学习资源章节列表
     *
     * @param elCourseChapter 学习资源章节
     * @return 学习资源章节集合
     */
    public List<ElCourseChapter> selectElCourseChapterList(ElCourseChapter elCourseChapter);

    /**
     * 新增学习资源章节
     *
     * @param elCourseChapter 学习资源章节
     * @return 结果
     */
    public int insertElCourseChapter(ElCourseChapter elCourseChapter);

    /**
     * 修改学习资源章节
     *
     * @param elCourseChapter 学习资源章节
     * @return 结果
     */
    public int updateElCourseChapter(ElCourseChapter elCourseChapter);

    /**
     * 删除学习资源章节
     *
     * @param id 学习资源章节主键
     * @return 结果
     */
    public int deleteElCourseChapterById(Long id);

    /**
     * 批量删除学习资源章节
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteElCourseChapterByIds(Long[] ids);

    List<ChapterLearnVo> selectChapterLearnByCourseId(ChapterLearnVo chapterLearnVo);

    List<ElCourseChapter> selectUserCourseChapterList(ElCourseChapter elCourseChapter);

    Long selectLearnDurationsByUserId(@Param("courseId") Long courseId, @Param("userId") Long userId);

    Long selectChapterDurationsByUserId(@Param("chapterId") Long chapterId, @Param("userId") Long userId);

    String selectCourseTitleByChapterId(Long recordId);
}
