| @@ -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); | |||||
| } | |||||
| } | |||||