xhxu 1年前
父节点
当前提交
efec41093a
共有 7 个文件被更改,包括 39 次插入17 次删除
  1. +2
    -1
      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. +18
    -4
      open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java
  5. +2
    -2
      suimangAdmin/src/main/java/com/iformall/config/ShiroConfig.java
  6. +2
    -1
      suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java
  7. +7
    -4
      suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java

+ 2
- 1
open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java 查看文件

@@ -5,6 +5,7 @@ import com.iformall.controller.BaseController;
import com.iformall.dto.GenerateVideoDTO;
import com.iformall.dto.PreviewVideoDTO;
import com.iformall.service.AiVideoService;
import com.iformall.sm.AiVideoParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +31,6 @@ public class AiVideoController extends BaseController {
@ApiOperation("生成视频")
@PostMapping("generateVideo")
public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) {
return new ResultData(aiVideoService.generateVideo(dto.getAiVideoParam(), dto.getId(), getServiceId()));
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 taskId, Long serviceId);
AiVideoResult generateVideo(GenerateVideoDTO dto, Long serviceId);
}

+ 18
- 4
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 taskId, Long serviceId) {
AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam, taskId);
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;
}


+ 2
- 2
suimangAdmin/src/main/java/com/iformall/config/ShiroConfig.java 查看文件

@@ -150,8 +150,8 @@ public class ShiroConfig {
//配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了
filterChainDefinitionMap.put("/logout", "authc");

// filterChainDefinitionMap.put("/**", "corsFilter,token,authc");
filterChainDefinitionMap.put("/**", "anon");
filterChainDefinitionMap.put("/**", "corsFilter,token,authc");
// filterChainDefinitionMap.put("/**", "anon");


shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);


+ 2
- 1
suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java 查看文件

@@ -349,6 +349,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {

try{
AiVideoParam videoParam = new AiVideoParam();
videoParam.setTask_id(mouldVideo.getId());
videoParam.setGen_txt(paperwork.replaceAll(Constant.text_pause, "[*]"));
videoParam.setVideo_template_id(personMouldSmId);
videoParam.setSubtitle(subtitleMap);
@@ -391,7 +392,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService {
}
videoParam.setVideo_files(videoFiles);

AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId());
AiVideoResult video = AiVideoHelper.createVideo(videoParam);
if(video.isSuccess()){
videoUpd.setVideoPath(video.getUrl());
// videoUpd.setVideoTime(video.getDuration()+"");


+ 7
- 4
suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java 查看文件

@@ -61,13 +61,16 @@ public class AiVideoHelper {
}

public static AiVideoResult createVideo(AiVideoParam videoParam,Long taskId) {
public static AiVideoResult createVideo(AiVideoParam videoParam) {

videoParam.setTask_id(taskId);
videoParam.setCallback_url(callbackUrl + "/callback/oral/broadcasting");
// videoParam.setTask_id(taskId);
if (StringUtils.isNotBlank(videoParam.getCallback_url())) {
videoParam.setCallback_url(videoParam.getCallback_url());
} else {
videoParam.setCallback_url(callbackUrl + "/callback/oral/broadcasting");
}

log.info("生成视频start request:" + videoParam.neglectImgString());
log.info("完整参数:{}", JSONObject.toJSONString(videoParam));
String response = doPost(oral_broadcasting+"/gen_dh_video", JSONObject.toJSONString(videoParam));
log.info("生成视频end response:"+response);



正在加载...
取消
保存