| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package nju.seec.helper.controller;
- import nju.seec.helper.aspect.auth.Auth;
- import nju.seec.helper.controller.response.PageResourceResponse;
- import nju.seec.helper.controller.response.ResourceResponse;
- import nju.seec.helper.dto.LoginUser;
- import nju.seec.helper.dto.SlideDTO;
- import nju.seec.helper.dto.modify.ModifySlideDTO;
- 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.web.bind.annotation.*;
- import javax.validation.Valid;
- import java.util.List;
- /**
- * 幻灯片
- *
- * @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 ResourceResponse<SlideVO> createSlide(LoginUser user,
- @Valid SlideDTO slideDTO) {
- SlideVO slideVO = slideService.createSlide(user, slideDTO);
- return ResourceResponse.of(slideVO);
- }
- /**
- * 教师修改幻灯片
- */
- @Auth(roles = UserType.TEACHER, message = "修改幻灯片")
- @PutMapping
- public ResourceResponse<SlideVO> modifySlide(LoginUser user,
- @Valid @RequestBody ModifySlideDTO modifySlideDTO) {
- SlideVO slideVO = slideService.modifySlide(user, modifySlideDTO);
- return ResourceResponse.of(slideVO);
- }
- /**
- * 教师获取幻灯片
- */
- @Auth(roles = UserType.TEACHER, message = "获取幻灯片列表")
- @GetMapping("/teacher")
- public PageResourceResponse<SlideVO> teacherGetSlides(LoginUser user,
- @RequestParam(required = false, defaultValue = "") String key,
- @PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
- List<SlideVO> slideVOList = slideService.teacherGetSlides(user, key, pageable);
- return PageResourceResponse.of(slideVOList, pageable.getPageNumber(), pageable.getPageSize());
- }
- /**
- * 教师基于课程获取幻灯片
- */
- @Auth(roles = UserType.TEACHER, message = "获取幻灯片列表")
- @GetMapping("/teacher/course/{courseId}")
- public PageResourceResponse<SlideVO> teacherGetSlidesByCourse(LoginUser user,
- @PathVariable Integer courseId,
- @RequestParam(required = false, defaultValue = "") String key,
- @PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
- List<SlideVO> slideVOList = slideService.teacherGetSlidesByCourse(user, courseId, key, pageable);
- return PageResourceResponse.of(slideVOList, pageable.getPageNumber(), pageable.getPageSize());
- }
- /**
- * 学生基于课程获取幻灯片
- */
- @Auth(roles = UserType.STUDENT, message = "获取幻灯片列表")
- @GetMapping("/student/course/{courseId}")
- public PageResourceResponse<SlideVO> studentGetSlidesByCourse(LoginUser user,
- @PathVariable Integer courseId,
- @RequestParam(required = false, defaultValue = "") String key,
- @PageableDefault(size = Integer.MAX_VALUE) Pageable pageable) {
- List<SlideVO> slideVOList = slideService.studentGetSlidesByCourse(user, courseId, key, pageable);
- return PageResourceResponse.of(slideVOList, pageable.getPageNumber(), pageable.getPageSize());
- }
- /**
- * 获取幻灯片链接
- */
- @Auth(roles = {UserType.TEACHER, UserType.STUDENT}, message = "获取幻灯片链接")
- @GetMapping("/{slideId}/url")
- public ResourceResponse<String> getSlideUrl(LoginUser user,
- @PathVariable Integer slideId) {
- String slideUrl = slideService.getSlideUrl(user, slideId);
- return ResourceResponse.of(slideUrl);
- }
- }
|