package com.qmth.distributed.print.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.qmth.distributed.print.business.bean.dto.ExamStudentCourseDto;
import com.qmth.distributed.print.business.bean.dto.ExamStudentDto;
import com.qmth.distributed.print.business.bean.dto.ExamStudentPdfInfoDto;
import com.qmth.distributed.print.business.entity.ExamStudent;

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

/**
 * <p>
 * 考生 服务类
 * </p>
 *
 * @author xf
 * @since 2021-03-23
 */
public interface ExamStudentService extends IService<ExamStudent> {

    List<String> listPaperTypeByExamDetailCourseId(String examDetailCourseId);

    Map<String, Object> getStudentDetail(Long id);

    /**
     * 根据科目查询考生
     *
     * @param schoolId
     * @param examDetailCourseIds
     * @return
     */
    List<ExamStudentCourseDto> queryBySchoolIdAndExamDetailCourseIds(Long schoolId, List<Long> examDetailCourseIds);

    ExamStudentPdfInfoDto getByStudentId(Long id);

    void removeByExamDetailCourseId(Long id);

    List<String> listUserClass(Long schoolId, Long examId, String paperNumber);

    ExamStudent listByExamDetailCourseIdLimit1(Long schoolId, Long examDetailCourseId);

    List<ExamStudent> listByExamDetailCourseIdNotIntMarkStudent(Long examDetailCourseId, String paperType);

    int countByExamDetailCourseIdAndStudentCode(Long examDetailCourseId, String studentCode);

    List<ExamStudent> listByExamDetailCourseId(Long examDetailCourseId);

    /**
     * 查询班级和老师信息
     *
     * @param examId
     * @param courseCode
     * @param paperNumber
     * @return
     */
    ExamStudentDto queryExamStudent(Long examId, String courseCode, String paperNumber);
}
