@@ -8,13 +8,19 @@ package com.iformall.smsdk; | |||||
*/ | */ | ||||
public interface SmSdkConstant { | public interface SmSdkConstant { | ||||
/** | |||||
* 请求头参数 | |||||
*/ | |||||
String APP_KEY = "appKey"; | |||||
String SIGN = "sign"; | |||||
/** | /** | ||||
* 预览视频 | * 预览视频 | ||||
*/ | */ | ||||
String PREVIEW_VIDEO = "/ai/video/previewVideo"; | |||||
String PREVIEW_VIDEO = "/api/video/previewVideo"; | |||||
/** | /** | ||||
* 生成视频 | * 生成视频 | ||||
*/ | */ | ||||
String GENERATE_VIDEO = "/ai/video/generateVideo"; | |||||
String GENERATE_VIDEO = "/api/video/generateVideo"; | |||||
} | } |
@@ -4,12 +4,18 @@ import lombok.Data; | |||||
import org.springframework.boot.context.properties.ConfigurationProperties; | import org.springframework.boot.context.properties.ConfigurationProperties; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
/** | |||||
* 遂芒sdk调用凭证 | |||||
* | |||||
* @author xmzhao71 | |||||
* @date 2023-10-20 | |||||
*/ | |||||
@Data | @Data | ||||
@Component | @Component | ||||
@ConfigurationProperties(prefix = "sdk.sm") | @ConfigurationProperties(prefix = "sdk.sm") | ||||
public class SmSdkProperties { | public class SmSdkProperties { | ||||
/** | /** | ||||
* 域名 | |||||
* 域名 | |||||
*/ | */ | ||||
private String baseUrl; | private String baseUrl; | ||||
} | } |
@@ -36,9 +36,9 @@ public class SmSdkUtils { | |||||
public static AiPreviewResult preview(SmPreviewVideoDTO dto) { | public static AiPreviewResult preview(SmPreviewVideoDTO dto) { | ||||
String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; | String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; | ||||
HttpEntity<SmPreviewVideoDTO> httpEntity = new HttpEntity<>(dto); | |||||
// HttpEntity<SmPreviewVideoDTO> httpEntity = new HttpEntity<>(dto); | |||||
log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); | log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); | ||||
ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); | |||||
ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); | |||||
log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); | log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); | ||||
JSONObject resultObject = JSON.parseObject(response.getBody()); | JSONObject resultObject = JSON.parseObject(response.getBody()); | ||||
String data = resultObject.getString("data"); | String data = resultObject.getString("data"); | ||||
@@ -47,9 +47,9 @@ public class SmSdkUtils { | |||||
public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { | public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { | ||||
String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; | String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; | ||||
HttpEntity<SmGenerateVideoDTO> httpEntity = new HttpEntity<>(dto); | |||||
// HttpEntity<SmGenerateVideoDTO> httpEntity = new HttpEntity<>(dto); | |||||
log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); | log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); | ||||
ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); | |||||
ResponseEntity<String> response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); | |||||
log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); | log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); | ||||
JSONObject resultObject = JSON.parseObject(response.getBody()); | JSONObject resultObject = JSON.parseObject(response.getBody()); | ||||
String data = resultObject.getString("data"); | String data = resultObject.getString("data"); | ||||
@@ -0,0 +1,48 @@ | |||||
package com.iformall.smsdk; | |||||
import com.alibaba.fastjson.JSON; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||||
import com.iformall.common.CommonConstants; | |||||
import com.iformall.domain.po.WxThirdPartyApi; | |||||
import com.iformall.mapper.WxThirdPartyApiMapper; | |||||
import com.iformall.utils.sign.SignUtils; | |||||
import org.apache.http.protocol.HTTP; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.http.HttpEntity; | |||||
import org.springframework.http.HttpHeaders; | |||||
import org.springframework.stereotype.Component; | |||||
import javax.annotation.PostConstruct; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
@Component | |||||
public class SmUtils { | |||||
public static SmUtils smUtils; | |||||
@Autowired | |||||
private SmSdkProperties smSdkProperties; | |||||
@Autowired | |||||
private WxThirdPartyApiMapper wxThirdPartyApiMapper; | |||||
@PostConstruct | |||||
public void init() { | |||||
smUtils = this; | |||||
} | |||||
public static HttpEntity<String> getHttpEntity(String param) { | |||||
WxThirdPartyApi apiConfig = getApiConfig(); | |||||
HttpHeaders httpHeaders = new HttpHeaders(); | |||||
httpHeaders.set(SmSdkConstant.APP_KEY, apiConfig.getAppId() + "&" + apiConfig.getAppKey()); | |||||
String sign = SignUtils.getSign(apiConfig.getSignKey(), JSON.parseObject(param, Map.class), "MD5"); | |||||
httpHeaders.set(SmSdkConstant.SIGN, sign); | |||||
return new HttpEntity<>(param, httpHeaders); | |||||
} | |||||
public static WxThirdPartyApi getApiConfig() { | |||||
List<WxThirdPartyApi> wxThirdPartyApis = smUtils.wxThirdPartyApiMapper.selectList(new LambdaQueryWrapper<WxThirdPartyApi>() | |||||
.eq(WxThirdPartyApi::getStatus, CommonConstants.STATUS_NORMAL)); | |||||
return wxThirdPartyApis.get(0); | |||||
} | |||||
} |