작성자 | SHA1 | 메시지 | 날짜 |
---|---|---|---|
|
d57a1ff387 | feat:修改创建视屏api接口 | 1 년 전 |
|
213ac35112 | Merge remote-tracking branch 'origin/photo' into private_deployment | 1 년 전 |
|
4ffbdb3f89 | feat:修改创建视屏api接口 | 1 년 전 |
|
c9257e5aa9 | feat:接口验证 | 1 년 전 |
@@ -30,7 +30,7 @@ public class AiVideoController extends BaseController { | |||||
@ApiOperation("生成视频") | @ApiOperation("生成视频") | ||||
@PostMapping("generateVideo") | @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())); | |||||
} | } | ||||
} | } |
@@ -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 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 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); | 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); | ||||
@@ -10,6 +10,7 @@ import com.iformall.common.IdWorker; | |||||
import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
import com.iformall.domain.po.sm.*; | import com.iformall.domain.po.sm.*; | ||||
import com.iformall.enums.*; | import com.iformall.enums.*; | ||||
import com.iformall.enums.sm.EnumThirdPartyType; | |||||
import com.iformall.mapper.UserMouldVideoMapper; | import com.iformall.mapper.UserMouldVideoMapper; | ||||
import com.iformall.service.sm.*; | import com.iformall.service.sm.*; | ||||
import com.iformall.sm.AiVideoHelper; | import com.iformall.sm.AiVideoHelper; | ||||
@@ -396,7 +397,7 @@ public class UserMouldVideoServiceImpl implements UserMouldVideoService { | |||||
// AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); | // AiVideoResult video = AiVideoHelper.createVideo(videoParam,mouldVideo.getId()); | ||||
// AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); | // AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, mouldVideo.getId())); | ||||
AiVideoResult video = SmSdkUtils.generateVideo(videoParam); | |||||
AiVideoResult video = SmSdkUtils.generateVideo(SmGenerateVideoDTO.build(videoParam, EnumThirdPartyType.PRIVATE_JOIN.getCode())); | |||||
if(video.isSuccess()){ | if(video.isSuccess()){ | ||||
videoUpd.setVideoPath(video.getUrl()); | videoUpd.setVideoPath(video.getUrl()); | ||||
// videoUpd.setVideoTime(video.getDuration()+""); | // videoUpd.setVideoTime(video.getDuration()+""); | ||||
@@ -71,7 +71,6 @@ public class AiVideoHelper { | |||||
} | } | ||||
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); | ||||
@@ -9,14 +9,14 @@ import lombok.Data; | |||||
@ApiModel(value = "生成视频请求参数") | @ApiModel(value = "生成视频请求参数") | ||||
@Data | @Data | ||||
public class SmGenerateVideoDTO { | public class SmGenerateVideoDTO { | ||||
@ApiModelProperty(value = "视频唯一标识") | |||||
private Long id; | |||||
@ApiModelProperty(value = "类型") | |||||
private Integer type; | |||||
@ApiModelProperty(value = "生成视频参数") | @ApiModelProperty(value = "生成视频参数") | ||||
private AiVideoParam aiVideoParam; | private AiVideoParam aiVideoParam; | ||||
public static SmGenerateVideoDTO build(AiVideoParam aiVideoParam, Long id) { | |||||
public static SmGenerateVideoDTO build(AiVideoParam aiVideoParam, Integer type) { | |||||
SmGenerateVideoDTO dto = new SmGenerateVideoDTO(); | SmGenerateVideoDTO dto = new SmGenerateVideoDTO(); | ||||
dto.setId(id); | |||||
dto.setType(type); | |||||
dto.setAiVideoParam(aiVideoParam); | dto.setAiVideoParam(aiVideoParam); | ||||
return dto; | return dto; | ||||
} | } | ||||
@@ -45,7 +45,8 @@ public class SmSdkUtils { | |||||
return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); | return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); | ||||
} | } | ||||
public static AiVideoResult generateVideo(AiVideoParam aiVideoParam) { | |||||
public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { | |||||
AiVideoParam aiVideoParam = dto.getAiVideoParam(); | |||||
String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; | String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; | ||||
// log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); | // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); | ||||
log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(aiVideoParam.getTask_id())); | log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(aiVideoParam.getTask_id())); | ||||