package com.xhkjedu.sstudy.mapper.paperreport;

import com.xhkjedu.sstudy.model.paper.TPaper;
import com.xhkjedu.sstudy.vo.paperreport.PaperRStuQuestionVo;
import com.xhkjedu.sstudy.vo.paperstudent.PaperStudentVo;
import com.xhkjedu.sstudy.vo.paperstudent.StudentPaperVo;
import org.apache.ibatis.annotations.Param;

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

public interface PaperReportMapper {
    //删除作业报告
    void deletePaperReport(Integer paperid);

    //更改作业是否生成报告
    void updateHasreport(@Param("paperid") Integer paperid, @Param("hasreport") Integer hasreport);

    //作业概况-班级概况
    Map getPaperClass(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    //作业概况-成绩概况
    List<Map> listPaperClassRank(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    //作业概况-试题错误率
    List<Map> listPaperClassQuestionRate(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    //作业概况-知识点错误率
    List<Map> listPaperClassPointRate(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    //作业分析
    Map getPaperAnalyze(Integer paperid);

    //题库作业试题
    List<Map> listTkSt(@Param("paperid") Integer paperid, @Param("classid") Integer classid
            ,@Param("papertype") Integer papertype);

    //附件作业试题
    List<Map> listFjSt(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    //题库作业子题
    List<Map> listZtQuestion(@Param("questionids") List<String> questionids,@Param("paperid") Integer paperid);

    //未提交学生列表
    List<Map> listWtjStu(@Param("paperid") Integer paperid, @Param("classid") Integer classid);

    //已提交学生列表
    List<Map> listTjStu(@Param("paper") TPaper paper);

    //作业基本信息
    Map getPaper(Integer paperid);

    //作业题型
    List<PaperRStuQuestionVo> listPaperType(@Param("paperid") Integer paperid, @Param("papertype") Integer papertype);

    //优秀作答班级
    List<Map> listGoodAnswerClass(@Param("paperid") Integer paperid, @Param("schoolid") Integer schoolid
            , @Param("papertype") Integer papertype);

    //作业概况-试题得分率
    List<Map> listPaperClassQuestionScore(@Param("paperid") Integer paperid,@Param("classid") Integer classid);

    //作业提交详情
    List<StudentPaperVo> listStu(@Param("paper") TPaper paper);
}