ClassStudentMapper.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.njuzr.eaibackend.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.njuzr.eaibackend.po.ClassStudent;
  4. import com.njuzr.eaibackend.vo.StudentInfoVO;
  5. import org.apache.ibatis.annotations.*;
  6. import java.util.List;
  7. @Mapper
  8. public interface ClassStudentMapper extends BaseMapper<ClassStudent> {
  9. int batchInsert(@Param("list") List<ClassStudent> students);
  10. /**
  11. * 根据班级ID和学号列表批量删除学生
  12. * @param classId 班级ID
  13. * @param officialNumbers 学号列表
  14. * @return 删除的行数
  15. */
  16. int batchDeleteByClassIdAndNumbers(
  17. @Param("classId") Long classId,
  18. @Param("officialNumbers") List<String> officialNumbers);
  19. @Select("SELECT official_number, stu_name, state FROM class_student WHERE class_id = #{classId}")
  20. @Results({
  21. @Result(property = "officialNumber", column = "official_number"),
  22. @Result(property = "stuName", column = "stu_name")
  23. })
  24. List<StudentInfoVO> selectStudentsByClassId(@Param("classId") Long classId);
  25. /**
  26. * 根据学生ID和课程ID查找班级学生记录
  27. */
  28. @Select("SELECT cs.* FROM class_student cs " +
  29. "JOIN class c ON cs.class_id = c.class_id " +
  30. "JOIN users u ON cs.official_number = u.official_number " +
  31. "WHERE u.id = #{studentId} AND c.course_id = #{courseId}")
  32. ClassStudent findClassStudentByStudentAndCourse(@Param("studentId") Long studentId,
  33. @Param("courseId") Long courseId);
  34. /**
  35. * 更新学生加入状态
  36. */
  37. @Update("UPDATE class_student SET state = #{state} WHERE id = #{id}")
  38. int updateStateById(@Param("id") Long id, @Param("state") int state);
  39. }