ソースを参照

feat:修改创建视屏api接口

private_deployment
xmzhao71 1年前
コミット
4ffbdb3f89
4個のファイルの変更27行の追加10行の削除
  1. +2
    -2
      open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java
  2. +7
    -4
      open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java
  3. +1
    -1
      open-api/src/main/java/com/iformall/service/AiVideoService.java
  4. +17
    -3
      open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java

+ 2
- 2
open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java ファイルの表示

@@ -30,7 +30,7 @@ public class AiVideoController extends BaseController {

@ApiOperation("生成视频")
@PostMapping("generateVideo")
public ResultData generateVideo(@RequestBody AiVideoParam aiVideoParam) {
return new ResultData(aiVideoService.generateVideo(aiVideoParam, getServiceId()));
public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) {
return new ResultData(aiVideoService.generateVideo(dto, getServiceId()));
}
}

+ 7
- 4
open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java ファイルの表示

@@ -1,5 +1,6 @@
package com.iformall.dto;

import com.iformall.enums.sm.EnumThirdPartyType;
import com.iformall.sm.AiVideoParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -38,15 +39,17 @@ public class GenerateVideoDTO {
* }
* }
*/
@ApiModelProperty(value = "视频唯一标识")
private Long id;
// @ApiModelProperty(value = "视频唯一标识")
// private Long id;
@ApiModelProperty(value = "接入方式")
private Integer type = EnumThirdPartyType.API_JOIN.getCode();
@ApiModelProperty(value = "生成视频参数")
private AiVideoParam aiVideoParam;


public static GenerateVideoDTO build(AiVideoParam aiVideoParam, Long id) {
public static GenerateVideoDTO build(AiVideoParam aiVideoParam, Integer type) {
GenerateVideoDTO dto = new GenerateVideoDTO();
dto.setId(id);
dto.setType(type);
dto.setAiVideoParam(aiVideoParam);
return dto;
}


+ 1
- 1
open-api/src/main/java/com/iformall/service/AiVideoService.java ファイルの表示

@@ -23,5 +23,5 @@ public interface AiVideoService {
* @param aiVideoParam
* @return {@link AiVideoResult}
*/
AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long serviceId);
AiVideoResult generateVideo(GenerateVideoDTO dto, Long serviceId);
}

+ 17
- 3
open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java ファイルの表示

@@ -1,9 +1,13 @@
package com.iformall.service.impl;

import com.iformall.common.CommonConstants;
import com.iformall.domain.dto.sm.SaveServiceVideoRecordDTO;
import com.iformall.dto.GenerateVideoDTO;
import com.iformall.enums.sm.EnumThirdPartyType;
import com.iformall.service.AiVideoService;
import com.iformall.service.sm.ServiceVideoRecordService;
import com.iformall.sm.*;
import com.iformall.utils.Base64Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@@ -25,15 +29,25 @@ public class AiVideoServiceImpl implements AiVideoService {
}

@Override
public AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long serviceId) {
public AiVideoResult generateVideo(GenerateVideoDTO dto, Long serviceId) {
AiVideoParam aiVideoParam = dto.getAiVideoParam();
// 如果是api接入,则将图片地址转为base64
if (EnumThirdPartyType.API_JOIN.getCode().equals(dto.getType())) {
AiVideoParam.VideoFiles videoFiles = aiVideoParam.getVideo_files();
videoFiles.getBack_ground().setImage(Base64Util.imageUrlToBase64(videoFiles.getBack_ground().getImage()));
for (AiVideoParam.Material material : videoFiles.getMaterial()) {
material.setImage(Base64Util.imageUrlToBase64(material.getImage()));
}
}

AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam);
if (video.isSuccess()) {
// 记录时长
SaveServiceVideoRecordDTO dto = SaveServiceVideoRecordDTO.builder()
SaveServiceVideoRecordDTO saveServiceVideoRecordDTO = SaveServiceVideoRecordDTO.builder()
.serviceId(serviceId)
.videoTime(String.valueOf(video.getDuration()))
.build();
serviceVideoRecordService.saveServiceVideoRecord(dto);
serviceVideoRecordService.saveServiceVideoRecord(saveServiceVideoRecordDTO);
}
return video;
}


読み込み中…
キャンセル
保存