package com.xhkjedu.sexam.mapper.paper;

import com.xhkjedu.base.TkMapper;
import com.xhkjedu.sexam.model.paper.EPaper;
import com.xhkjedu.sexam.vo.paper.EExamSubjectPaperVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

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

/**
 * @Description 试卷信息
 * @Author WN
 * Date 2022/7/18 10:48
 **/
@Repository
public interface EPaperMapper extends TkMapper<EPaper> {

    //获取考试下有科目试卷信息
    List<Map> listExamPapers(@Param("examid") Integer examid);

    //教师出卷列表
    List<Map> listExamPapersByTeacherid(@Param("teacherid") Integer teacherid, @Param("esstate") Integer esstate
            ,@Param("strtime") String strtime);

    //试卷详情
    Map getExamPaperDetailByEsid(@Param("esid") Integer esid);

    //获取考试科目和考试名称
    Map getExamPaperAndSubject(@Param("epid") Integer epid);

    //删除试卷信息
    void deletePaperByEpid(@Param("epid") Integer epid);

    //修改试题设置答案
    void updateEPaperAnswered(@Param("paper") EPaper paper);

    //根据试卷id获取考试id
    Integer getExamIdByEpId(@Param("epid") Integer epid);

    //修改批阅设置
    void updateCorrectType(@Param("epid") Integer epid, @Param("correcttype") int correcttype);

    //修改答题卡关联字段信息
    void updatePaperScantron(@Param("paper") EPaper paper);

    //根据试卷id获取考试科目基本信息
    Map getESubjectByEpId(@Param("epid") Integer epid);

    //试科目获取试卷信息
    EExamSubjectPaperVo getPaperParamsByEpid(@Param("epid") Integer epid);

    //获取考试试卷题量和分值
    List<EPaper> listNumAndScoreByExamId(@Param("examid") Integer examid);

    //保存试卷试题数量和分值
    void updatePaperInfo(@Param("paper") EPaper paper);

    //保存答题卡pdf
    void updatePaperScantronpdf(@Param("paper") EPaper paper);

    //获取试卷中答题卡文件
    Map getPaperScantronfile(@Param("epid") Integer epid);

    //试卷基本考试科目进本信息（扫描）
    Map getExamPaperSubjectForScan(@Param("epid") Integer epid);

    //根据考试id和科目id获取试卷信息
    Map getPaperByExamidAndSubjectid(@Param("examid") Integer examid, @Param("subjectid") String subjectid);

    //根据试卷id获取考试状态
    Integer getExamStateByEpId(@Param("epid") Integer epid);

    //获取试卷关联考试及发起学校id
    Map getExamSchoolidByEpId(@Param("epid") Integer epid);
}