ClassStudentMapper.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 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}")
  20. @Results({
  21. @Result(property = "studentId", column = "student_id"),
  22. @Result(property = "officialNumber", column = "official_number"),
  23. @Result(property = "stuName", column = "stu_name")
  24. })
  25. List<StudentInfoVO> selectStudentsByClassId(@Param("classId") Long classId);
  26. /**
  27. * 根据学生ID和课程ID查找班级学生记录
  28. */
  29. @Select("SELECT cs.* FROM class_student cs " +
  30. "JOIN class c ON cs.class_id = c.class_id " +
  31. "JOIN users u ON cs.official_number = u.official_number " +
  32. "WHERE u.id = #{studentId} AND c.course_id = #{courseId}")
  33. ClassStudent findClassStudentByStudentAndCourse(@Param("studentId") Long studentId,
  34. @Param("courseId") Long courseId);
  35. /**
  36. * 更新学生加入状态
  37. */
  38. @Update("UPDATE class_student SET state = #{state} WHERE id = #{id}")
  39. int updateStateById(@Param("id") Long id, @Param("state") int state);
  40. }