package com.njuzr.eaibackend.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njuzr.eaibackend.controller.MyResponse; import com.njuzr.eaibackend.dto.course.CourseDTO; import com.njuzr.eaibackend.dto.course.CourseQueryDTO; import com.njuzr.eaibackend.dto.course.CourseUpdateDTO; import com.njuzr.eaibackend.dto.course.EnrollDTO; import com.njuzr.eaibackend.po.Course; import com.njuzr.eaibackend.po.MyUserDetails; import com.njuzr.eaibackend.po.User; import com.njuzr.eaibackend.vo.CourseVO; import com.njuzr.eaibackend.vo.StudentCourseHomeworkVO; import com.njuzr.eaibackend.vo.UserVO; import org.springframework.web.bind.annotation.RequestParam; /** * @author: Leonezhurui * @Date: 2024/3/5 - 22:08 * @Package: EAI-Backend */ public interface CourseService { CourseVO createCourse(CourseDTO courseDTO); IPage findCoursesPage(Page page, CourseQueryDTO courseQueryDTO); CourseVO updateCourse(Long userId, Long courseId, CourseUpdateDTO courseUpdateDTO); CourseVO updateCourseByPortal(Long userId, Long userPid, Long courseId, CourseUpdateDTO courseUpdateDTO); void deleteById(MyUserDetails role, Long courseId); // void enroll(EnrollDTO enrollDTO); // 通过班级码选课 void enrollByClassCode(EnrollDTO enrollDTO); IPage getEnrollmentsByCourse(Page page, Long teacherId, Long courseId); IPage getEnrollmentsByStudent(Page page, Long studentId); String getEnrollCodeByCourseId(Long courseId); void dropCourse(Long studentId, Long courseId); // 添加新方法 /** * 根据学生ID和课程ID查询该学生的课程作业情况 * @param studentId 学生ID * @param courseId 课程ID * @return 学生课程作业情况 */ StudentCourseHomeworkVO getStudentCourseAssignments(Long studentId, Long courseId); }