@@ -5,6 +5,7 @@ import com.iformall.controller.BaseController; | |||||
import com.iformall.dto.GenerateVideoDTO; | import com.iformall.dto.GenerateVideoDTO; | ||||
import com.iformall.dto.PreviewVideoDTO; | import com.iformall.dto.PreviewVideoDTO; | ||||
import com.iformall.service.AiVideoService; | import com.iformall.service.AiVideoService; | ||||
import com.iformall.sm.AiVideoParam; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
@@ -30,6 +31,6 @@ public class AiVideoController extends BaseController { | |||||
@ApiOperation("生成视频") | @ApiOperation("生成视频") | ||||
@PostMapping("generateVideo") | @PostMapping("generateVideo") | ||||
public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) { | public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) { | ||||
return new ResultData(aiVideoService.generateVideo(dto.getAiVideoParam(), dto.getId(), getServiceId())); | |||||
return new ResultData(aiVideoService.generateVideo(dto, getServiceId())); | |||||
} | } | ||||
} | } |
@@ -1,5 +1,6 @@ | |||||
package com.iformall.dto; | package com.iformall.dto; | ||||
import com.iformall.enums.sm.EnumThirdPartyType; | |||||
import com.iformall.sm.AiVideoParam; | import com.iformall.sm.AiVideoParam; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | 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 = "生成视频参数") | @ApiModelProperty(value = "生成视频参数") | ||||
private AiVideoParam aiVideoParam; | private AiVideoParam aiVideoParam; | ||||
public static GenerateVideoDTO build(AiVideoParam aiVideoParam, Long id) { | |||||
public static GenerateVideoDTO build(AiVideoParam aiVideoParam, Integer type) { | |||||
GenerateVideoDTO dto = new GenerateVideoDTO(); | GenerateVideoDTO dto = new GenerateVideoDTO(); | ||||
dto.setId(id); | |||||
dto.setType(type); | |||||
dto.setAiVideoParam(aiVideoParam); | dto.setAiVideoParam(aiVideoParam); | ||||
return dto; | return dto; | ||||
} | } | ||||
@@ -23,5 +23,5 @@ public interface AiVideoService { | |||||
* @param aiVideoParam | * @param aiVideoParam | ||||
* @return {@link AiVideoResult} | * @return {@link AiVideoResult} | ||||
*/ | */ | ||||
AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId, Long serviceId); | |||||
AiVideoResult generateVideo(GenerateVideoDTO dto, Long serviceId); | |||||
} | } |
@@ -1,9 +1,13 @@ | |||||
package com.iformall.service.impl; | package com.iformall.service.impl; | ||||
import com.iformall.common.CommonConstants; | |||||
import com.iformall.domain.dto.sm.SaveServiceVideoRecordDTO; | 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.AiVideoService; | ||||
import com.iformall.service.sm.ServiceVideoRecordService; | import com.iformall.service.sm.ServiceVideoRecordService; | ||||
import com.iformall.sm.*; | import com.iformall.sm.*; | ||||
import com.iformall.utils.Base64Util; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
@@ -25,15 +29,25 @@ public class AiVideoServiceImpl implements AiVideoService { | |||||
} | } | ||||
@Override | @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()) { | if (video.isSuccess()) { | ||||
// 记录时长 | // 记录时长 | ||||
SaveServiceVideoRecordDTO dto = SaveServiceVideoRecordDTO.builder() | |||||
SaveServiceVideoRecordDTO saveServiceVideoRecordDTO = SaveServiceVideoRecordDTO.builder() | |||||
.serviceId(serviceId) | .serviceId(serviceId) | ||||
.videoTime(String.valueOf(video.getDuration())) | .videoTime(String.valueOf(video.getDuration())) | ||||
.build(); | .build(); | ||||
serviceVideoRecordService.saveServiceVideoRecord(dto); | |||||
serviceVideoRecordService.saveServiceVideoRecord(saveServiceVideoRecordDTO); | |||||
} | } | ||||
return video; | return video; | ||||
} | } | ||||
@@ -150,8 +150,8 @@ public class ShiroConfig { | |||||
//配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了 | //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了 | ||||
filterChainDefinitionMap.put("/logout", "authc"); | filterChainDefinitionMap.put("/logout", "authc"); | ||||
// filterChainDefinitionMap.put("/**", "corsFilter,token,authc"); | |||||
filterChainDefinitionMap.put("/**", "anon"); | |||||
filterChainDefinitionMap.put("/**", "corsFilter,token,authc"); | |||||
// filterChainDefinitionMap.put("/**", "anon"); | |||||
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); | shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); | ||||
@@ -349,6 +349,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||||
try{ | try{ | ||||
AiVideoParam videoParam = new AiVideoParam(); | AiVideoParam videoParam = new AiVideoParam(); | ||||
videoParam.setTask_id(mouldVideo.getId()); | |||||
videoParam.setGen_txt(paperwork.replaceAll(Constant.text_pause, "[*]")); | videoParam.setGen_txt(paperwork.replaceAll(Constant.text_pause, "[*]")); | ||||
videoParam.setVideo_template_id(personMouldSmId); | videoParam.setVideo_template_id(personMouldSmId); | ||||
videoParam.setSubtitle(subtitleMap); | videoParam.setSubtitle(subtitleMap); | ||||
@@ -391,7 +392,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||||
} | } | ||||
videoParam.setVideo_files(videoFiles); | videoParam.setVideo_files(videoFiles); | ||||
AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); | |||||
AiVideoResult video = AiVideoHelper.createVideo(videoParam); | |||||
if(video.isSuccess()){ | if(video.isSuccess()){ | ||||
videoUpd.setVideoPath(video.getUrl()); | videoUpd.setVideoPath(video.getUrl()); | ||||
// videoUpd.setVideoTime(video.getDuration()+""); | // videoUpd.setVideoTime(video.getDuration()+""); | ||||
@@ -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("生成视频start request:" + videoParam.neglectImgString()); | ||||
log.info("完整参数:{}", JSONObject.toJSONString(videoParam)); | |||||
String response = doPost(oral_broadcasting+"/gen_dh_video", JSONObject.toJSONString(videoParam)); | String response = doPost(oral_broadcasting+"/gen_dh_video", JSONObject.toJSONString(videoParam)); | ||||
log.info("生成视频end response:"+response); | log.info("生成视频end response:"+response); | ||||