package com.njuzr.eaibackend.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njuzr.eaibackend.dto.CourseDTO; import com.njuzr.eaibackend.dto.EnrollDTO; import com.njuzr.eaibackend.po.Course; import com.njuzr.eaibackend.po.User; import com.njuzr.eaibackend.service.CourseService; import com.njuzr.eaibackend.vo.CourseVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** * @author: Leonezhurui * @Date: 2024/3/5 - 16:34 * @Package: EAI-Backend */ @RestController @RequestMapping("/api/course") public class CourseController { private final CourseService courseService; @Autowired public CourseController(CourseService courseService) { this.courseService = courseService; } /** * 分页返回所有的课程信息 * @return */ @GetMapping("/findAll") public MyResponse findAllCourses( @RequestParam(value = "page", defaultValue = "1") int currentPage, @RequestParam(value = "size", defaultValue = "10") int pageSize ) { return MyResponse.success(""); } // @GetMapping() // public MyResponse searchCourses( // @RequestParam String courseName, // @RequestParam String // ) { // // } /** * 根据学生Id获取其所选的所有课程的信息 * @param studentId * @return */ @GetMapping("/byStudent/{studentId}") public MyResponse findByStudentId( @PathVariable Long studentId, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size ) { return MyResponse.success(""); } /** * 根据老师Id获取的其所创建的所有课程信息 * @param teacherId * @return */ @PreAuthorize("hasRole('TEACHER')") @GetMapping("/byTeacher/{teacherId}") public MyResponse findByTeacherId( @PathVariable Long teacherId, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size ) { return MyResponse.success(""); } /** * 根据课程Id,获取某个课程的详细信息 * @param courseId * @param currentPage * @param pageSize * @return */ @GetMapping("/{courseId}") public MyResponse findByCourseId( @PathVariable Long courseId, @RequestParam(value = "page", defaultValue = "1") int currentPage, @RequestParam(value = "size", defaultValue = "10") int pageSize ) { Page page = new Page<>(currentPage, pageSize); return MyResponse.success(""); } /** * 创建课程 * @param courseDTO * @return */ @PreAuthorize("hasRole('TEACHER') or hasRole('ADMIN')") @PostMapping public MyResponse createCourse(@Validated @RequestBody CourseDTO courseDTO) { CourseVO courseVO = courseService.createCourse(courseDTO); return MyResponse.success(courseVO); } @PutMapping public MyResponse updateCourse(@RequestBody CourseDTO courseDTO) { return MyResponse.success(""); } @PutMapping("/enrollCode") public MyResponse updateEnrollCode(@RequestParam String enrollCode) { return MyResponse.success(""); } @DeleteMapping public MyResponse deleteCourse(@RequestParam Long courseId) { return MyResponse.success(""); } /** * 选课,通过studentId和courseId,完成选课 * @param enrollDTO * @return */ @PostMapping("/enroll") public MyResponse enroll(@RequestBody EnrollDTO enrollDTO) { return MyResponse.success(""); } }