package com.iformall.smsdk; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.iformall.sm.AiPreviewResult; import com.iformall.sm.AiVideoParam; import com.iformall.sm.AiVideoResult; import com.iformall.utils.JsonUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.Map; @Slf4j @Component public class SmSdkUtils { private static SmSdkUtils smSdkUtils; @Resource(name = "restTemplate") private RestTemplate restTemplate; @Autowired private SmSdkProperties smSdkProperties; @PostConstruct public void init() { smSdkUtils = this; } public static AiPreviewResult preview(SmPreviewVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSON(dto)); ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class); log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSON(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult(); } public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(dto.getId())); ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class); log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSON(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult(); } }