后台服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 line
2.7 KiB

  1. package com.iformall.smsdk;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.iformall.sm.AiPreviewResult;
  5. import com.iformall.sm.AiVideoParam;
  6. import com.iformall.sm.AiVideoResult;
  7. import com.iformall.utils.JsonUtil;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.http.HttpEntity;
  12. import org.springframework.http.HttpMethod;
  13. import org.springframework.http.ResponseEntity;
  14. import org.springframework.stereotype.Component;
  15. import org.springframework.web.client.RestTemplate;
  16. import javax.annotation.PostConstruct;
  17. import javax.annotation.Resource;
  18. import java.util.Map;
  19. @Slf4j
  20. @Component
  21. public class SmSdkUtils {
  22. private static SmSdkUtils smSdkUtils;
  23. @Resource(name = "restTemplate")
  24. private RestTemplate restTemplate;
  25. @Autowired
  26. private SmSdkProperties smSdkProperties;
  27. @PostConstruct
  28. public void init() {
  29. smSdkUtils = this;
  30. }
  31. public static AiPreviewResult preview(SmPreviewVideoDTO dto) {
  32. String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO;
  33. log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSON(dto));
  34. ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class);
  35. log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSON(response.getBody()));
  36. JSONObject resultObject = JSON.parseObject(response.getBody());
  37. String data = resultObject.getString("data");
  38. return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiPreviewResult.class) : new AiPreviewResult();
  39. }
  40. public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) {
  41. String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO;
  42. // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto));
  43. log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(dto.getId()));
  44. ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(dto), Map.class)), String.class);
  45. log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSON(response.getBody()));
  46. JSONObject resultObject = JSON.parseObject(response.getBody());
  47. String data = resultObject.getString("data");
  48. return StringUtils.isNotBlank(data) ? JSON.parseObject(data, AiVideoResult.class) : new AiVideoResult();
  49. }
  50. }