| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package nju.seec.helper.controller;
- import nju.seec.helper.aspect.auth.Auth;
- import nju.seec.helper.controller.response.PageResponse;
- import nju.seec.helper.dto.*;
- import nju.seec.helper.service.SlideService;
- import nju.seec.helper.util.enums.UserType;
- import nju.seec.helper.vo.SlideVO;
- import org.springframework.data.domain.Pageable;
- import org.springframework.data.web.PageableDefault;
- import org.springframework.http.ResponseEntity;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- /**
- * 课件
- *
- * @author cst
- */
- @RestController
- @RequestMapping("/api/slide")
- public class SlideController {
- private final SlideService slideService;
- public SlideController(SlideService slideService) {
- this.slideService = slideService;
- }
- /**
- * 教师创建课件
- */
- @Auth(roles = UserType.TEACHER, message = "创建课件")
- @PostMapping
- public ResponseEntity<SlideVO> createSlide(LoginUser user,
- @Valid SlideDTO slideDTO) {
- SlideVO slideVO = slideService.createSlide(user, slideDTO);
- return ResponseEntity.ok(slideVO);
- }
- /**
- * 教师修改课件
- */
- @Auth(roles = UserType.TEACHER, message = "修改课件")
- @PutMapping
- public SlideVO modifySlide(LoginUser user,
- @Validated @RequestBody ModifySlideDTO modifySlideDTO) {
- return slideService.modifySlide(user, modifySlideDTO);
- }
- /**
- * 教师修改课件状态
- */
- @Auth(roles = UserType.TEACHER, message = "修改课件状态")
- @PutMapping("/state")
- public void modifySlideState(LoginUser user,
- @Validated @RequestBody SlideStateDTO slideStateDTO) {
- slideService.modifySlideState(user, slideStateDTO);
- }
- /**
- * 教师修改课件状态
- */
- @Auth(roles = UserType.TEACHER, message = "修改课件状态")
- @PutMapping("/file")
- public void modifySlideFile(LoginUser user,
- @Validated SlideFileDTO slideFileDTO) {
- slideService.modifySlideFile(user, slideFileDTO);
- }
- /**
- * 教师删除课件
- */
- @Auth(roles = UserType.TEACHER, message = "删除课件")
- @DeleteMapping("/{slideId}")
- public void removeSlide(LoginUser user,
- @PathVariable Integer slideId) {
- slideService.removeSlide(user, slideId);
- }
- /**
- * 教师获取课件
- */
- @Auth(roles = UserType.TEACHER, message = "获取课件")
- @GetMapping("/teacher")
- public PageResponse<SlideVO> teacherGetSlides(LoginUser user,
- @RequestParam(required = false, defaultValue = "") String key,
- @PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
- return PageResponse.of(slideService.teacherGetSlides(user, key, pageable));
- }
- /**
- * 教师基于课程获取课件
- */
- @Auth(roles = UserType.TEACHER, message = "获取课件")
- @GetMapping("/teacher/course/{courseId}")
- public PageResponse<SlideVO> teacherGetSlidesByCourse(LoginUser user,
- @PathVariable Integer courseId,
- @RequestParam(required = false, defaultValue = "") String key,
- @PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
- return PageResponse.of(slideService.teacherGetSlidesByCourse(user, courseId, key, pageable));
- }
- /**
- * 学生基于课程获取课件
- */
- @Auth(roles = UserType.STUDENT, message = "获取课件")
- @GetMapping("/student/course/{courseId}")
- public PageResponse<SlideVO> studentGetSlidesByCourse(LoginUser user,
- @PathVariable Integer courseId,
- @RequestParam(required = false, defaultValue = "") String key,
- @PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
- return PageResponse.of(slideService.studentGetSlidesByCourse(user, courseId, key, pageable));
- }
- /**
- * 获取课件链接
- */
- @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "获取课件链接")
- @GetMapping("/{slideId}/url")
- public String getSlideUrl(LoginUser user,
- @PathVariable Integer slideId) {
- return slideService.getSlideUrl(user, slideId);
- }
- /**
- * 获取某课件
- */
- @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "获取课件")
- @GetMapping("/{slideId}")
- public SlideVO getOneSlide(LoginUser user, @PathVariable Integer slideId) {
- return slideService.getOneSlide(user, slideId);
- }
- }
|