diff --git a/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java b/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java index 470ba4b..2681945 100644 --- a/open-api/src/main/java/com/iformall/controller/ai/AiVideoController.java +++ b/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())); } } diff --git a/open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java b/open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java index 8ff8c62..2e98534 100644 --- a/open-api/src/main/java/com/iformall/dto/GenerateVideoDTO.java +++ b/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; } diff --git a/open-api/src/main/java/com/iformall/service/AiVideoService.java b/open-api/src/main/java/com/iformall/service/AiVideoService.java index 16577f8..5bee599 100644 --- a/open-api/src/main/java/com/iformall/service/AiVideoService.java +++ b/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); } diff --git a/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java b/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java index ea4d7ef..cfdf67e 100644 --- a/open-api/src/main/java/com/iformall/service/impl/AiVideoServiceImpl.java +++ b/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; } diff --git a/suimangAdmin/src/main/java/com/iformall/config/ShiroConfig.java b/suimangAdmin/src/main/java/com/iformall/config/ShiroConfig.java index 9ba5a6e..89b38cb 100644 --- a/suimangAdmin/src/main/java/com/iformall/config/ShiroConfig.java +++ b/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); diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java index 9cd8881..4917271 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserMouldVideoServiceImpl.java +++ b/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()+""); diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index b3df8fb..dfa5272 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/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);