package com.zhongzheng.modules.grade.mapper;

import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
import com.zhongzheng.modules.grade.domain.ClassGradeUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhongzheng.modules.grade.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * 学员记录Mapper接口
 *
 * @author ruoyi
 * @date 2021-11-10
 */
public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {

    Collection<ClassGradeUserVo> select(ClassGradeUserQueryBo bo);

    List<ClassGradeUserGoodsVo> listUser(ClassGradeUserQueryBo bo);

    List<ClassPeriodStudentVo> listUserPeriod(ClassGradeUserQueryBo bo);

    List<ClassPeriodUserVo> listPeriod(ClassGradeUserQueryBo bo);

    List<ClassPeriodVo> listPeriodAudit(ClassGradeUserQueryBo bo);

    List<ClassPeriodChapterVo> listperiodChapter(@Param("moduleId") Long id,@Param("goodsId") Long goodsId,@Param("courseId") Long courseId,@Param("userId") Long userId);

    List<ClassPeriodSectionVo> listPeriodSection(@Param("chapterId") Long id,@Param("goodsId") Long goodsId,@Param("courseId") Long courseId,@Param("userId") Long userId);

    List<ClassPeriodVo> listPeriodAuditSection(ClassGradeUserQueryBo bo);

    List<ClassPeriodVo> listPeriodAuditExam(ClassGradeUserQueryBo bo);

    List<ClassPeriodSectionVo> listperiodExam(@Param("chapterId") Long id,@Param("goodsId") Long goodsId,@Param("courseId") Long courseId,@Param("userId") Long userId,@Param("moduleId") Long moduleId);

    List<ClassPeriodSectionVo> listPeriodSectionExam(@Param("chapterId") Long id,@Param("goodsId") Long goodsId,@Param("courseId") Long courseId,@Param("userId") Long userId);

    List<Long> selectStart(@Param("userId") Long userId,@Param("goodsId") Long goodsId,@Param("gradeId") Long gradeId);

    List<ClassGradeUserGoodsVo> sendClassGradeUser();

    List<ClassGradeUserGoodsVo> sendTenClassGradeUser();

    List<ClassGradeUserGoodsVo> sendFiveClassGradeUser();
}
