From 729ffd78703d215c8464b59128259080641c640b Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Fri, 20 Oct 2023 18:52:38 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E6=8E=A5=E5=8F=A3=E4=BD=BF=E7=94=A8=E5=87=AD=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/smsdk/SmSdkConstant.java | 10 +++- .../com/iformall/smsdk/SmSdkProperties.java | 8 +++- .../java/com/iformall/smsdk/SmSdkUtils.java | 8 ++-- .../main/java/com/iformall/smsdk/SmUtils.java | 48 +++++++++++++++++++ 4 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 suimangService/src/main/java/com/iformall/smsdk/SmUtils.java diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java index ee2c40a..9b836ef 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkConstant.java @@ -8,13 +8,19 @@ package com.iformall.smsdk; */ 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"; } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java index 9b908c5..4b3e210 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkProperties.java @@ -4,12 +4,18 @@ import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; +/** + * 遂芒sdk调用凭证 + * + * @author xmzhao71 + * @date 2023-10-20 + */ @Data @Component @ConfigurationProperties(prefix = "sdk.sm") public class SmSdkProperties { /** - * 域名 + * 域名 */ private String baseUrl; } diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java index 7ceb654..f5377cd 100644 --- a/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java +++ b/suimangService/src/main/java/com/iformall/smsdk/SmSdkUtils.java @@ -36,9 +36,9 @@ public class SmSdkUtils { public static AiPreviewResult preview(SmPreviewVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.PREVIEW_VIDEO; - HttpEntity httpEntity = new HttpEntity<>(dto); +// HttpEntity httpEntity = new HttpEntity<>(dto); log.info("(遂芒api)【预览视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); log.info("(遂芒api)【预览视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); @@ -47,9 +47,9 @@ public class SmSdkUtils { public static AiVideoResult generateVideo(SmGenerateVideoDTO dto) { String url = smSdkUtils.smSdkProperties.getBaseUrl() + SmSdkConstant.GENERATE_VIDEO; - HttpEntity httpEntity = new HttpEntity<>(dto); +// HttpEntity httpEntity = new HttpEntity<>(dto); log.info("(遂芒api)【生成视频】接口的请求参数:{}", JSON.toJSONString(dto)); - ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class); + ResponseEntity response = smSdkUtils.restTemplate.exchange(url, HttpMethod.POST, SmUtils.getHttpEntity(JSON.toJSONString(dto)), String.class); log.info("(遂芒api)【生成视频】接口的响应数据:{}", JSON.toJSONString(response.getBody())); JSONObject resultObject = JSON.parseObject(response.getBody()); String data = resultObject.getString("data"); diff --git a/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java b/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java new file mode 100644 index 0000000..a9c2ad3 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/smsdk/SmUtils.java @@ -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 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 wxThirdPartyApis = smUtils.wxThirdPartyApiMapper.selectList(new LambdaQueryWrapper() + .eq(WxThirdPartyApi::getStatus, CommonConstants.STATUS_NORMAL)); + return wxThirdPartyApis.get(0); + } +}