package com.iformall.smsdk; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.sm.ServiceInfo; import com.iformall.domain.po.sm.ServiceVideoRecord; 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.HashMap; 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(AiVideoParam aiVideoParam) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; // log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSON(aiVideoParam.getTask_id())); ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.parseObject(JSON.toJSONString(aiVideoParam), 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(); } public static ServiceInfo getCurrentServiceInfo() { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.CURRENT_SERVICE_INFO; Map paramMap = new HashMap(); ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.GET, SmUtils.getHttpEntity(paramMap), 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, ServiceInfo.class) : new ServiceInfo(); } public static PageInfo currentVideoRecords(int pageNum,int pageSize) { Map parm = new HashMap(); parm.put("pageNum", pageNum); parm.put("pageSize", pageSize); //String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.CURRENT_SERVICE_VIDEO_RECORDS+"?pageNum="+pageNum+"&pageSize="+pageSize; String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.CURRENT_SERVICE_VIDEO_RECORDS; ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.GET, SmUtils.getHttpEntity(parm), 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, PageInfo.class) : new PageInfo(); } }