package com.xhkjedu.smarking.mapper.exam;

import com.xhkjedu.base.TkMapper;
import com.xhkjedu.smarking.model.exam.MsClassStudent;
import com.xhkjedu.smarking.vo.exam.CStudentVo;
import org.apache.ibatis.annotations.Param;

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

/**
 * @Description 阅卷考试学生表 Mapper 接口
 * @Author auto
 * @Date 2024-10-15
 */
public interface MsClassStudentMapper extends TkMapper<MsClassStudent> {
    //根据班级ids获取没有考号学生数量
    Integer getNoExamNoNumByClassIds(@Param("classids") List<Integer> classids);

    //获取考试关联学校的准备考号长度
    List<Integer> listSchoolExamNoLength(@Param("classids") List<Integer> classids);

    //获取班级学生列表
    List<MsClassStudent> listByClassIds(@Param("classids") List<Integer> classids);

    //根据考号搜索参加考试学生
    List<Map> listStudentByExamIdAnExamno(@Param("examid") Integer examid, @Param("examno") String examno,@Param("subjectid") String subjectid);

    //考生信息列表
    List<Map> listAll(@Param("cs") MsClassStudent msClassStudent);

    //批量保存考试学生信息
    void batchSave(@Param("list") List<MsClassStudent> students);

    //根据学生ids获取没有考号学生数量
    Integer getNoExamNoNumByStudentIds(@Param("studentIds") List<Integer> studentIds);

    //移除单个科目学生
    void deleteByStu(@Param("cs") CStudentVo cs);

    //移除班级学生
    void deleteByClass(@Param("cs") CStudentVo cs);

    //根据科目和学生id获取班级id
    List<Integer> listBySubjectIdAndStuId(@Param("cs") CStudentVo cs);

    //考试班级列表
    List<Map> listClass(@Param("cs") CStudentVo cs);

    //班级搜索列表
    List<Map> searchClass(@Param("cs") CStudentVo cs);

    //学生搜索列表
    List<Map> searchStudent(@Param("cs") CStudentVo cs);

    //获取考试关联学生
    List<MsClassStudent> listStudentByExamId(@Param("examid") Integer examid, @Param("subjectid") String subjectid);
}
