package com.xhkjedu.sexam.mapper.reportstu;

import com.xhkjedu.base.TkMapper;
import com.xhkjedu.sexam.model.reportstu.ERstudent;
import org.apache.ibatis.annotations.Param;

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

public interface ERstudentMapper extends TkMapper<ERstudent> {
    //校级报告-成绩单
    List<Map> listByExamId(@Param("stu") ERstudent stu);

    //学生报告-报告概况-获取学生单次考试情况
    List<Map> getStudentScoreByExamid(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            ,@Param("showrank") Integer showrank);
    //学生报告-报告概况-获取学生单次考试情况(学生无报告)
    Map getStudentScoreByExamidForNo(@Param("examid")Integer examid,@Param("classid")Integer classid);
    //学生报告-报告概况-获取本次考试的班级人数和年级人数
    Map getStudentNumByExamid(@Param("examid")Integer examid,@Param("classid")Integer classid);
    //学生报告-报告概况-学生最近十次考试名次
    List<Map> listStudentExamHistory(@Param("studentid")Integer studentid,@Param("subjectid")String subjectid);
    //学生报告-学科分析-学科名次
    Map getSubjectScoreByStudentid(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid,@Param("showrank") Integer showrank);
    //学生报告-学科分析--知识点分析
    List<Map> listSubjectPoints(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid,@Param("showrank") Integer showrank);
    //学生报告-学科分析--难易度分析
    List<Map> listSubjectComplexitys(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid,@Param("showrank") Integer showrank);
    //学生报告-学科分析-题型分析
    List<Map> listSubjectQtypes(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid,@Param("showrank") Integer showrank);
    //学生报告-学科分析-试题分析(附件)
    List<Map> listSubjectQuestionsForFj(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid,@Param("showrank") Integer showrank);
    //学生报告-学科分析-试题分析(题库)
    List<Map> listSubjectQuestionsForTk(@Param("epid") Integer epid, @Param("studentid") Integer studentid
            ,@Param("showrank") Integer showrank);

    //学生报告-试卷分析（题库）
    List<Map> listStudentQuestionsTk(@Param("epid") Integer epid, @Param("studentid") Integer studentid
            , @Param("showrank") Integer showrank);

    //学生报告-试卷分析（附件）
    List<Map> listStudentQuestionsFj(@Param("epid") Integer epid, @Param("studentid") Integer studentid
            , @Param("showrank") Integer showrank);

    //学生报告-错题集-各科目错题
    List<Map> listStudentSubjectErrorQues(@Param("examid") Integer examid, @Param("studentid") Integer studentid);

    //学生报告-错题集-学生科目下错题
    List<Map> listStudentErrorQuestionsForTk(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid, @Param("showrank") Integer showrank);

    //学生报告-错题集-学生科目下错题（附件）
    List<Map> listStudentErrorQuestionsForFj(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("subjectid") String subjectid, @Param("showrank") Integer showrank);

    //学生报告-监控照片-考试科目下违规图片数量
    List<Map> listExamSubjectBadNums(@Param("examid") Integer examid, @Param("studentid") Integer studentid);

    //学生报告-监控照片-学生单科图片
    List<Map> listExamSubjectBadimgs(@Param("esid") Integer esid, @Param("studentid") Integer studentid);

    //班级报告教师成绩单
    List<Map> listTeacherCjd(@Param("stu") ERstudent stu);

    //pdf报告-考试概况
    Map getPdfKsGk(@Param("examid") Integer examid, @Param("studentid") Integer studentid);

    //学科名次
    List<Map> listSubjectScoreByStudentid(@Param("examid") Integer examid, @Param("studentid") Integer studentid
            , @Param("showrank") Integer showrank);

    //考试基础（学生）
    Map findByExamIdAndStudentId(@Param("examid") Integer examid,@Param("studentid") Integer studentid);

    //学生报告-pdf报告状态和学生报告地址
    Map getReportStuState(@Param("examid") Integer examid,@Param("studentid") Integer studentid);

    //获取考试PDF报告基础信息
    Map getPdfInfo(@Param("examid") Integer examid,@Param("studentid") Integer studentid);
}