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

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yida.data.common.core.entity.CurrentUser;
import com.yida.data.common.core.entity.exam.CoreExaminationStudent;

import java.util.List;

public interface CoreExaminationStudentService extends IService<CoreExaminationStudent> {
    /**
     * 查询本次考试对应的考试学生列表数据
     */
    IPage<CoreExaminationStudent> findExaminationStudentPageList(Integer pageNum, Integer pageSize, Long coreExaminationId, String searchName, Long classId);

    /**
     * 保存考生信息
     */
    void saveExaminationStudent(CoreExaminationStudent coreExaminationStudent, CurrentUser currentUser);

    /**
     * 判断身份证号码在学生表中是否存在
     */
    int checkStudentIdNumber(CoreExaminationStudent coreExaminationStudent);

    /**
     * 根据考生id查询考生详细信息
     */
    CoreExaminationStudent findExaminationStudent(Long examinationStudentId);

    /**
     * 批量删除考生信息
     */
    void delExaminationStudentBatch(List<Long> examinationStudentIds);

    /**
     * 查询本次考试的排行榜数据列表
     */

    IPage<CoreExaminationStudent> findRankPageList(Integer pageNum,Integer pageSize,Long coreExaminationId, String studentName,
                                                  Long classId);

    /**
     * 保存考生信息和成绩
     */
    void saveExamResults(CoreExaminationStudent coreExaminationStudent, CurrentUser currentUser);

    /**
     *
     */
    CoreExaminationStudent findCoreExaminationStudentDetail(Long coreExaminationId,
                                                            Long coreExaminationStudentId, Long classId,
                                                            String name);

    /**
     *
     */
    void editExamResultsDetail(CoreExaminationStudent coreExaminationStudent, CurrentUser currentUser);

    /**
     * 取消成绩发布
     */
    Integer delTeacherBatch(Long examinationId, CurrentUser currentUser);

    /**
     *
     */
    void delRankBatchIds(List<Long> rankIds);

    CoreExaminationStudent selectStudent(Long id, Long Id);
}
