From facda03795167f2c949cc5327233aacc534310e8 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 15:56:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=A7=86=E9=A2=91api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/controller/ai/AiVideoController.java | 5 +++-- .../main/java/com/iformall/service/AiVideoService.java | 2 +- .../com/iformall/service/impl/AiVideoServiceImpl.java | 4 ++-- .../service/sm/impl/UserMouldVideoServiceImpl.java | 3 ++- .../src/main/java/com/iformall/sm/AiVideoHelper.java | 10 +++++++--- 5 files changed, 15 insertions(+), 9 deletions(-) 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..ff1d3d0 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; @@ -29,7 +30,7 @@ public class AiVideoController extends BaseController { @ApiOperation("生成视频") @PostMapping("generateVideo") - public ResultData generateVideo(@RequestBody GenerateVideoDTO dto) { - return new ResultData(aiVideoService.generateVideo(dto.getAiVideoParam(), dto.getId(), getServiceId())); + public ResultData generateVideo(@RequestBody AiVideoParam aiVideoParam) { + return new ResultData(aiVideoService.generateVideo(aiVideoParam, getServiceId())); } } 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..63e6757 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(AiVideoParam aiVideoParam, 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..df53e86 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 @@ -25,8 +25,8 @@ public class AiVideoServiceImpl implements AiVideoService { } @Override - public AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long taskId, Long serviceId) { - AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam, taskId); + public AiVideoResult generateVideo(AiVideoParam aiVideoParam, Long serviceId) { + AiVideoResult video = AiVideoHelper.createVideo(aiVideoParam); if (video.isSuccess()) { // 记录时长 SaveServiceVideoRecordDTO dto = SaveServiceVideoRecordDTO.builder() 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..279a812 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -61,10 +61,14 @@ 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)); From c9257e5aa9b568d6ea8477b0655ce34289d2ab47 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 17:23:03 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat=EF=BC=9A=E6=8E=A5=E5=8F=A3=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/iformall/config/ShiroConfig.java | 4 ++-- .../src/main/java/com/iformall/sm/AiVideoHelper.java | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) 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/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index 279a812..dfa5272 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -71,7 +71,6 @@ public class AiVideoHelper { } 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); From 4ffbdb3f89c840bce3d6295d7c83103a82a29d5c Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 27 Oct 2023 18:30:11 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=A7=86=E5=B1=8Fapi=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ai/AiVideoController.java | 4 ++-- .../com/iformall/dto/GenerateVideoDTO.java | 11 ++++++---- .../com/iformall/service/AiVideoService.java | 2 +- .../service/impl/AiVideoServiceImpl.java | 20 ++++++++++++++++--- 4 files changed, 27 insertions(+), 10 deletions(-) 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 ff1d3d0..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 @@ -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())); } } 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 63e6757..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 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 df53e86..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 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; }