package com.xhkjedu.sexam.mapper.paperstudent;

import com.xhkjedu.sexam.base.TkMapper;
import com.xhkjedu.sexam.model.paper.EPaperQtype;
import com.xhkjedu.sexam.model.paperstudent.EPaperStudent;
import com.xhkjedu.sexam.model.reportstu.ERstudent;
import com.xhkjedu.sexam.vo.paperstudent.EPaperStudentVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @author ywx
 * @classname EPaperStudentMapper
 * @description 试卷学生
 * @date 2022/7/25 15:34
 **/
@Repository
public interface EPaperStudentMapper extends TkMapper<EPaperStudent> {

    //学生进行中考试列表
    List<Map> listExamPapersForStudent(@Param("studentid")Integer studentid);

    //学生已结束考试列表
    List<Map> listExamsEndForStudent(@Param("studentid")Integer studentid);

    //获取考试科目时间信息
    Map getExamSubjectPaperByEpsid(@Param("epsid")Integer epsid);

    //考试试卷基本信息
    EPaperStudentVo getExamSubjectByEpsid(@Param("epsid")Integer epsid);

    //学生试卷题库（android）
    List<Map> listStuPaperQuestionsForAndroid(@Param("epsid")Integer epsid);

    //学生试卷附件（android）
    List<Map> listStuPaperFjQuestionsForAndroid(@Param("epsid")Integer epsid);

    //学生试卷题库(web)
    List<EPaperQtype> listStuPaperQuestionsForWeb(@Param("epsid")Integer epsid);

    //学生试卷附件(web)
    List<EPaperQtype> listStuPaperFjQuestionsForWeb(@Param("epsid")Integer epsid);

    //学生提交试卷
    int updateStudentPaper(@Param("ps") EPaperStudent ps);

    //更新缺考字段
    void updateStudentPaperState(@Param("ps") EPaperStudent ps);

    //根据试卷id批量修改该试卷学生得分
    void updateBathStudentPaperScoreByEpid(@Param("epid") Integer epid);

    //根据试卷id和学生id获取学生试卷信息
    EPaperStudent getPaperStudentByStuidAndEpid(@Param("epid") Integer epid, @Param("studentid") Integer studentid);

    List<ERstudent> listByExamId(@Param("examid") Integer examid);

    //更改单个学生试卷分值
    void updateStuPaperscoreEpsid(@Param("epsid")Integer epsid);

    //获取学生试卷基础信息和得分
    Map getStudentPaperScore(@Param("studentid") Integer studentid,@Param("epid") Integer epid);
}