package nju.seec.helper.service; import nju.seec.helper.dto.course.ChooseDTO; import nju.seec.helper.dto.course.CourseDTO; import nju.seec.helper.dto.user.LoginUser; import nju.seec.helper.vo.CourseVO; import nju.seec.helper.vo.UserVO; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; /** * @author cst */ public interface CourseService { /** * 创建课程 * * @param teacher * @param courseDTO * @return */ CourseVO createCourse(LoginUser teacher, CourseDTO courseDTO); /** * 修改课程 * * @param user * @param courseId * @param courseDTO * @return */ CourseVO modifyCourse(LoginUser user, Long courseId, CourseDTO courseDTO); /** * 删除课程(伪删除) * * @param user * @param courseId */ void removeCourse(LoginUser user, Long courseId); /** * 学生选课 * * @param student * @param courseId * @param chooseDTO */ void chooseCourse(LoginUser student, Long courseId, ChooseDTO chooseDTO); /** * 退课 * * @param user * @param courseId */ void quitCourse(LoginUser user, Long courseId); /** * 获取课程 * * @param key * @param pageable * @return */ Page getCourses(String key, Pageable pageable); /** * 教师获取创建课程 * * @param teacher * @param key * @param pageable * @return */ Page teacherGetCourses(LoginUser teacher, String key, Pageable pageable); /** * 学生获取已选课程 * * @param student * @param key * @param pageable * @return */ Page studentGetCourses(LoginUser student, String key, Pageable pageable); /** * 获取课程选课码 * * @param user * @param courseId * @return */ String getCourseCode(LoginUser user, Long courseId); /** * 取得某课程 * * @param courseId * @return */ CourseVO getOneCourse(Long courseId); /** * 获取选课名单 * * @param user * @param courseId * @param key * @param pageable * @return */ Page getChooseStudents(LoginUser user, Long courseId, String key, Pageable pageable); }