package com.backendsys.modules.ai.volcengine.controller; import com.backendsys.modules.ai.volcengine.entity.VolcengineVideoCollect; import com.backendsys.modules.ai.volcengine.entity.VolcengineVideoTask; import com.backendsys.modules.ai.volcengine.entity.VolcengineVideoTaskDTO; import com.backendsys.modules.ai.volcengine.service.VolcengineVideoCollectService; import com.backendsys.modules.ai.volcengine.service.VolcengineVideoTaskService; import com.backendsys.modules.common.config.security.utils.SecurityUtil; import com.backendsys.modules.common.utils.Result; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @AllArgsConstructor @Validated @RestController @Tag(name = "火山大模型 视频生成") public class VolcengineVideoController { private final VolcengineVideoTaskService volcengineVideoTaskService; private final VolcengineVideoCollectService volcengineVideoCollectService; @Operation(summary = "创建图生视频任务") @PreAuthorize("@sr.hasPermission('37.1.1')") @PostMapping("/api/ai/volcegine/generateVideo") public Result generateVideo(@Validated(VolcengineVideoTask.Generate.class) @RequestBody VolcengineVideoTask volcengineVideoTask) { volcengineVideoTask.setUser_id(SecurityUtil.getUserId()); return Result.success().put("data", volcengineVideoTaskService.generateVideo(volcengineVideoTask)); } @Operation(summary = "查询图生视频任务状态") @PreAuthorize("@sr.hasPermission('37.1.2')") @GetMapping("/api/ai/volcegine/video/getTaskStatus/{volcengineTaskId}") public Result getTaskStatus(@PathVariable String volcengineTaskId) { return Result.success().put("data", volcengineVideoTaskService.selectTaskStatus(volcengineTaskId)); } @Operation(summary = "分页获取图生视频任务记录") @PreAuthorize("@sr.hasPermission('37.1.3')") @GetMapping("/api/ai/volcegine/video/getTaskList") public Result getTaskList(VolcengineVideoTaskDTO dto) { dto.setUser_id(SecurityUtil.getUserId()); return Result.success().put("data", volcengineVideoTaskService.selectTaskList(dto)); } @Operation(summary = "视频收藏/取消收藏") @PreAuthorize("@sr.hasPermission('37.1.4')") @PutMapping("/api/ai/volcegine/video/setCollect") public Result setCollect(@Validated(VolcengineVideoCollect.Collect.class) @RequestBody VolcengineVideoCollect volcengineVideoCollect) { volcengineVideoCollect.setUser_id(SecurityUtil.getUserId()); return Result.success().put("data", volcengineVideoCollectService.setCollect(volcengineVideoCollect)); } }