feat(backend): Add user notifications and public video APIs

This commit is contained in:
2025-04-10 02:14:05 +08:00
parent 449f5418b2
commit d1b55d770b
2 changed files with 112 additions and 0 deletions
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nuaa.video.common.model.vo.Result;
import com.nuaa.video.content.dto.*;
import com.nuaa.video.content.entity.ContentVideo;
import com.nuaa.video.content.mapper.ContentVideoMapper;
import com.nuaa.video.content.service.VideoService;
import com.nuaa.video.content.vo.UploadResultVO;
import com.nuaa.video.content.vo.VideoInfoVO;
@@ -25,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile;
public class VideoController {
private final VideoService videoService;
private final ContentVideoMapper videoMapper;
/**
* 上传视频
@@ -50,6 +52,29 @@ public class VideoController {
return videoService.createVideo(uploadDTO, userId);
}
/**
* 获取视频详情(公开接口)
*/
@GetMapping("/public/{id}")
public Result<VideoInfoVO> getVideoInfoPublic(@PathVariable Long id, HttpServletRequest request) {
Long userId = getUserIdFromRequest(request);
return videoService.getVideoInfo(id, userId);
}
/**
* 获取视频列表(公开接口)
*/
@GetMapping("/public/list")
public Result<Page<VideoListVO>> getVideoListPublic(
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
VideoQueryDTO queryDTO,
HttpServletRequest request) {
Page<ContentVideo> page = new Page<>(pageNum, pageSize);
Long userId = getUserIdFromRequest(request);
return videoService.getVideoList(page, queryDTO, userId);
}
/**
* 获取视频详情
*/
@@ -217,6 +242,35 @@ public class VideoController {
return videoService.reviewVideo(videoId, reviewerId, status, reason);
}
/**
* 增加视频评论数量
*/
@PostMapping("/count/comment/{videoId}/{count}")
public Result<Void> increaseCommentCount(
@PathVariable Long videoId,
@PathVariable Integer count,
HttpServletRequest request) {
// 验证权限(实际可以根据需要添加更复杂的权限验证)
Long userId = getUserIdFromRequest(request);
if (userId == null) {
return Result.error("未登录");
}
try {
ContentVideo video = videoService.getById(videoId);
if (video == null) {
return Result.error("视频不存在");
}
// 更新评论数
videoMapper.increaseCommentCount(videoId, count);
return Result.success();
} catch (Exception e) {
log.error("增加视频评论数失败,videoId={},count={}", videoId, count, e);
return Result.error("更新视频评论数失败");
}
}
/**
* 从请求中获取用户ID
*/