package com.xhkjedu.sapi.mapper.classreport;

import com.xhkjedu.sapi.model.classreport.*;
import com.xhkjedu.sapi.vo.classreport.ReportClasstypeVo;
import com.xhkjedu.sapi.vo.classreport.YearOnYearVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

@Repository
public interface ClassReportMapper {
    //预习
    List<ReportClasstypeVo> listPreview(@Param("type") TReportClasstype type);

    List<YearOnYearVo> getPreviewNum(@Param("type") TReportClasstype type);

    //课堂
    List<ReportClasstypeVo> listClassroom(@Param("type") TReportClasstype type);

    List<YearOnYearVo> getClassroomNum(@Param("type") TReportClasstype type);

    //作业
    List<ReportClasstypeVo> listPaper(@Param("type") TReportClasstype type);

    List<YearOnYearVo> getPaperNum(@Param("type") TReportClasstype type);

    //背诵
    List<ReportClasstypeVo> listRecite(@Param("type") TReportClasstype type);

    List<YearOnYearVo> getReciteNum(@Param("type") TReportClasstype type);

    //错题辅导
    List<ReportClasstypeVo> listErrQuestionFd(@Param("type") TReportClasstype type);

    List<YearOnYearVo> getErrQuestionFdNum(@Param("type") TReportClasstype type);

    //错题
    List<ReportClasstypeVo> listErrQuestion(@Param("type") TReportClasstype type);

    List<Map> listErrQuestionPoint(@Param("type") ReportClasstypeVo type);

    List<YearOnYearVo> getErrQuestionNum(@Param("type") TReportClasstype type);

    //直播
    List<ReportClasstypeVo> listLive(@Param("type") TReportClasstype type);

    List<YearOnYearVo> getLiveNum(@Param("type") TReportClasstype type);

    //预习列表
    List<TReportClassGuide> listYx(@Param("type") TReportClasstype type);

    //课堂列表
    List<TReportClassRoom> listKt(@Param("type") TReportClasstype type);

    //作业列表
    List<TReportClassPaper> listZy(@Param("type") TReportClasstype type);

    //背诵列表
    List<TReportClassRecite> listBs(@Param("type") TReportClasstype type);

    //错题辅导列表
    List<TReportClassErrorquefd> listFd(@Param("type") TReportClasstype type);

    //错题列表
    List<TReportClassErrorque> listCt(@Param("type") TReportClasstype type);

    //直播列表
    List<TReportClassLive> listZb(@Param("type") TReportClasstype type);

    //知识点
    List<ReportClasstypeVo> listPoint(@Param("type") TReportClasstype type);

    //知识点掌握列表
    List<TReportClassPoint> listZsd(@Param("type") TReportClasstype type);
}
