CourseController.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package com.njuzr.eaibackend.controller;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.njuzr.eaibackend.dto.CourseDTO;
  4. import com.njuzr.eaibackend.dto.EnrollDTO;
  5. import com.njuzr.eaibackend.po.Course;
  6. import com.njuzr.eaibackend.po.User;
  7. import com.njuzr.eaibackend.service.CourseService;
  8. import com.njuzr.eaibackend.vo.CourseVO;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.security.access.prepost.PreAuthorize;
  11. import org.springframework.validation.annotation.Validated;
  12. import org.springframework.web.bind.annotation.*;
  13. /**
  14. * @author: Leonezhurui
  15. * @Date: 2024/3/5 - 16:34
  16. * @Package: EAI-Backend
  17. */
  18. @RestController
  19. @RequestMapping("/api/course")
  20. public class CourseController {
  21. private final CourseService courseService;
  22. @Autowired
  23. public CourseController(CourseService courseService) {
  24. this.courseService = courseService;
  25. }
  26. /**
  27. * 分页返回所有的课程信息
  28. * @return
  29. */
  30. @GetMapping("/findAll")
  31. public MyResponse findAllCourses(
  32. @RequestParam(value = "page", defaultValue = "1") int currentPage,
  33. @RequestParam(value = "size", defaultValue = "10") int pageSize
  34. ) {
  35. return MyResponse.success("");
  36. }
  37. // @GetMapping()
  38. // public MyResponse searchCourses(
  39. // @RequestParam String courseName,
  40. // @RequestParam String
  41. // ) {
  42. //
  43. // }
  44. /**
  45. * 根据学生Id获取其所选的所有课程的信息
  46. * @param studentId
  47. * @return
  48. */
  49. @GetMapping("/byStudent/{studentId}")
  50. public MyResponse findByStudentId(
  51. @PathVariable Long studentId,
  52. @RequestParam(defaultValue = "0") int page,
  53. @RequestParam(defaultValue = "10") int size
  54. ) {
  55. return MyResponse.success("");
  56. }
  57. /**
  58. * 根据老师Id获取的其所创建的所有课程信息
  59. * @param teacherId
  60. * @return
  61. */
  62. @PreAuthorize("hasRole('TEACHER')")
  63. @GetMapping("/byTeacher/{teacherId}")
  64. public MyResponse findByTeacherId(
  65. @PathVariable Long teacherId,
  66. @RequestParam(defaultValue = "0") int page,
  67. @RequestParam(defaultValue = "10") int size
  68. ) {
  69. return MyResponse.success("");
  70. }
  71. /**
  72. * 根据课程Id,获取某个课程的详细信息
  73. * @param courseId
  74. * @param currentPage
  75. * @param pageSize
  76. * @return
  77. */
  78. @GetMapping("/{courseId}")
  79. public MyResponse findByCourseId(
  80. @PathVariable Long courseId,
  81. @RequestParam(value = "page", defaultValue = "1") int currentPage,
  82. @RequestParam(value = "size", defaultValue = "10") int pageSize
  83. ) {
  84. Page<Course> page = new Page<>(currentPage, pageSize);
  85. return MyResponse.success("");
  86. }
  87. /**
  88. * 创建课程
  89. * @param courseDTO
  90. * @return
  91. */
  92. @PreAuthorize("hasRole('TEACHER') or hasRole('ADMIN')")
  93. @PostMapping
  94. public MyResponse createCourse(@Validated @RequestBody CourseDTO courseDTO) {
  95. CourseVO courseVO = courseService.createCourse(courseDTO);
  96. return MyResponse.success(courseVO);
  97. }
  98. @PutMapping
  99. public MyResponse updateCourse(@RequestBody CourseDTO courseDTO) {
  100. return MyResponse.success("");
  101. }
  102. @PutMapping("/enrollCode")
  103. public MyResponse updateEnrollCode(@RequestParam String enrollCode) {
  104. return MyResponse.success("");
  105. }
  106. @DeleteMapping
  107. public MyResponse deleteCourse(@RequestParam Long courseId) {
  108. return MyResponse.success("");
  109. }
  110. /**
  111. * 选课,通过studentId和courseId,完成选课
  112. * @param enrollDTO
  113. * @return
  114. */
  115. @PostMapping("/enroll")
  116. public MyResponse enroll(@RequestBody EnrollDTO enrollDTO) {
  117. return MyResponse.success("");
  118. }
  119. }