package com.yida.data.school.exam.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.CurrentUser;
import com.yida.data.common.core.entity.exam.*;
import com.yida.data.school.dto.exam.FindClassExaminationDTO;
import com.yida.data.school.dto.exam.SelectClassScoreDTO;
import com.yida.data.school.vo.exam.EduStudentExamVO;

import java.util.List;

public interface CoreExaminationTeacherService extends IService<CoreExaminationTeacher> {

    /**
     * 查询本次考试对应的监考老师列表数据
     */
    IPage<CoreExaminationTeacher> findExaminationTeacherPageList(Integer pageNum,Integer pageSize,Integer coreExaminationId, String teachaerName);

    /**
     * 保存考试监考老师信息
     */
    void saveExaminationTeacher(CoreExaminationTeacher coreExaminationTeacher, CurrentUser currentUser);

    /**
     * 根据监考老师id查询监考老师详细信息
     */
    CoreExaminationTeacher findExaminationTeacher(Integer examinationTeacherId);

    /**
     * 批量删除监考老师信息
     */
    void delExaminationTeacherBatch(List<Integer> examinationTeacherIds);

    /**
     * 手机端查询考试列表
     *
     * @return
     */
    IPage<CoreExamination> findExaminationList(Page page, Long gradeId, String name, Long teacherId);


    /**
     * 查询年级的总分，总人数
     *
     * @param findClassExaminationDTO
     */
    EduStudentExamVO findClassExamination(FindClassExaminationDTO findClassExaminationDTO);

    /**
     * 查询考试科目
     *
     * @param examId
     * @return
     */
    List<CoreExaminationCourse> findExaminationCourseList(Long examId,Long teacherId,Long schoolId);

    /**
     * 查询学生个人成绩详情
     *
     * @param studentId
     * @param examId
     * @return
     */
    List<CoreExaminationStudentCourse> selectStudentScore(Long studentId, Long examId,Long course);

    /**
     * 查询老师对应班级成绩单
     *
     * @param selectClassScoreDTO
     * @return
     */
    IPage<CoreExaminationStudent> selectClassScore(SelectClassScoreDTO selectClassScoreDTO);
}
