package cc.mrbird.febs.video.controller; import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.video.dto.ApiVideoCollectionDto; import cc.mrbird.febs.video.dto.ApiVideoHistoryDto; import cc.mrbird.febs.video.dto.ApiVideoLikeDto; import cc.mrbird.febs.video.dto.VideoListDto; import cc.mrbird.febs.video.service.IVideoMasterInfoService; import cc.mrbird.febs.video.vo.VideoInfoVo; import cc.mrbird.febs.video.vo.VideoListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; /** * @author wzy * @date 2021-12-16 **/ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping(value = "/api/video") @Api(value = "ApiVideoController", tags = "视频接口类") public class ApiVideoController { private final IVideoMasterInfoService videoMasterInfoService; @ApiOperation(value = "获取视频列表", notes = "获取视频列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = VideoListVo.class) }) @PostMapping(value = "/video/list") public FebsResponse videoInPage(@RequestBody VideoListDto videoListDto) { return new FebsResponse().success().data(this.videoMasterInfoService.findVideoList(videoListDto)); } @ApiOperation(value = "根据ID获取视频信息", notes = "根据ID获取视频信息") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = VideoInfoVo.class) }) @GetMapping(value = "/info/{videoId}") public FebsResponse videoInfo(@PathVariable("videoId") Long videoId, @RequestParam(value = "itemId", required = false) Long itemId) { return new FebsResponse().success().data(this.videoMasterInfoService.findVideoInfo(videoId, itemId)); } @ApiOperation(value = "收藏", notes = "收藏") @PostMapping(value = "/videoCollection") public FebsResponse videoCollection(@RequestBody ApiVideoCollectionDto apiVideoCollectionDto) { return videoMasterInfoService.videoCollection(apiVideoCollectionDto); } @ApiOperation(value = "点赞", notes = "点赞") @PostMapping(value = "/videoLike") public FebsResponse videoLike(@RequestBody ApiVideoLikeDto apiVideoLikeDto) { return videoMasterInfoService.videoLike(apiVideoLikeDto); } @ApiOperation(value = "删除历史观看记录", notes = "删除历史观看记录") @PostMapping(value = "/delVideoHistory") public FebsResponse delVideoHistory(@RequestBody ApiVideoHistoryDto apiVideoHistoryDto) { return videoMasterInfoService.delVideoHistory(apiVideoHistoryDto); } }