package com.njuzr.eaibackend.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njuzr.eaibackend.po.ClassStudent; import com.njuzr.eaibackend.vo.StudentInfoVO; import org.apache.ibatis.annotations.*; import java.util.List; @Mapper public interface ClassStudentMapper extends BaseMapper { int batchInsert(@Param("list") List students); /** * 根据班级ID和学号列表批量删除学生 * @param classId 班级ID * @param officialNumbers 学号列表 * @return 删除的行数 */ int batchDeleteByClassIdAndNumbers( @Param("classId") Long classId, @Param("officialNumbers") List officialNumbers); @Select("SELECT u.id as student_id, cs.official_number, cs.stu_name, cs.state FROM class_student cs JOIN users u ON cs.official_number = u.official_number WHERE cs.class_id = #{classId}") @Results({ @Result(property = "studentId", column = "student_id"), @Result(property = "officialNumber", column = "official_number"), @Result(property = "stuName", column = "stu_name") }) List selectStudentsByClassId(@Param("classId") Long classId); /** * 根据学生ID和课程ID查找班级学生记录 */ @Select("SELECT cs.* FROM class_student cs " + "JOIN class c ON cs.class_id = c.class_id " + "JOIN users u ON cs.official_number = u.official_number " + "WHERE u.id = #{studentId} AND c.course_id = #{courseId}") ClassStudent findClassStudentByStudentAndCourse(@Param("studentId") Long studentId, @Param("courseId") Long courseId); /** * 更新学生加入状态 */ @Update("UPDATE class_student SET state = #{state} WHERE id = #{id}") int updateStateById(@Param("id") Long id, @Param("state") int state); }