From 31155ed32e2f2e2022b4b1697c8a2052a8543a48 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 25 十月 2023 21:38:04 +0800
Subject: [PATCH] 合并代码
---
ycl-platform/src/main/java/com/ycl/config/MqConstant.java | 14 ++
ycl-platform/src/main/java/com/ycl/PlatformApplication.java | 2
ycl-platform/pom.xml | 5
ycl-platform/src/main/java/com/ycl/config/FastJson2JsonRedisSerializer.java | 49 ++++++++
ycl-platform/src/main/resources/application.yml | 1
ycl-platform/src/main/java/com/ycl/controller/dingding/IntelligentClientTest.java | 110 ++++++++++++++++++
ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java | 50 ++++++++
ycl-platform/src/main/java/com/ycl/config/DdTest.java | 71 +++++++++++
ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java | 20 ++
9 files changed, 318 insertions(+), 4 deletions(-)
diff --git a/ycl-platform/pom.xml b/ycl-platform/pom.xml
index c8f0758..909d85e 100644
--- a/ycl-platform/pom.xml
+++ b/ycl-platform/pom.xml
@@ -55,6 +55,11 @@
<artifactId>httpmime</artifactId>
<version>4.5.14</version>
</dependency>
+ <dependency>
+ <groupId>com.alibaba.fastjson2</groupId>
+ <artifactId>fastjson2</artifactId>
+ <version>2.0.14</version>
+ </dependency>
</dependencies>
<!-- <build>-->
diff --git a/ycl-platform/src/main/java/com/ycl/PlatformApplication.java b/ycl-platform/src/main/java/com/ycl/PlatformApplication.java
index 163ff52..efdca70 100644
--- a/ycl-platform/src/main/java/com/ycl/PlatformApplication.java
+++ b/ycl-platform/src/main/java/com/ycl/PlatformApplication.java
@@ -22,7 +22,7 @@
@EnableScheduling
@EnableFeignClients
@EnableTransactionManagement(proxyTargetClass = true)
-@SpringBootApplication
+@SpringBootApplication(scanBasePackages = "com.ycl")
public class PlatformApplication {
public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext application = SpringApplication.run(PlatformApplication.class, args);
diff --git a/ycl-platform/src/main/java/com/ycl/config/DdTest.java b/ycl-platform/src/main/java/com/ycl/config/DdTest.java
new file mode 100644
index 0000000..db97b67
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/config/DdTest.java
@@ -0,0 +1,71 @@
+package com.ycl.config;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.xxpt.gateway.shared.api.request.OapiGettokenJsonRequest;
+import com.alibaba.xxpt.gateway.shared.api.response.OapiGettokenJsonResponse;
+import com.alibaba.xxpt.gateway.shared.client.http.ExecutableClient;
+import com.alibaba.xxpt.gateway.shared.client.http.IntelligentGetClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.concurrent.TimeUnit;
+@Slf4j
+@Component
+@EnableScheduling
+public class DdTest {
+
+// @Autowired
+// private RedisTemplate<Object,Object> redisTemplate;
+
+ @Value("${zzding.app-key}")
+ public String appKey;
+
+ @Value("${zzding.app-secret}")
+ public String appSecret;
+
+ private static ExecutableClient executableClient;
+
+ @PostConstruct
+ public void init(){
+ executableClient= ExecutableClient.getInstance();
+ executableClient.setDomainName("openplatform.dg-work.cn");
+ executableClient.setProtocal("https");
+ executableClient.setAccessKey(appKey);
+ executableClient.setSecretKey(appSecret);
+ executableClient.init();
+ }
+
+ public static ExecutableClient getExecutableClient() {
+ return executableClient;
+ }
+
+
+// //姣忎竴灏忔椂30鍒嗘墽琛屼竴娆★紝鑾峰彇鏈�鏂皌oken鏀惧叆redis
+// @Scheduled(initialDelay = 0L,fixedDelay = 5400000L)
+// public void getToken() {
+// IntelligentGetClient intelligentGetClient = DdTest.getExecutableClient().newIntelligentGetClient("/gettoken.json");
+// OapiGettokenJsonRequest oapiGettokenJsonRequest = new OapiGettokenJsonRequest();
+// oapiGettokenJsonRequest.setAppkey(appKey);
+// oapiGettokenJsonRequest.setAppsecret(appSecret);
+// OapiGettokenJsonResponse apiResult = intelligentGetClient.get(oapiGettokenJsonRequest);
+// String data = apiResult.getContent().getData();
+// if (data != null && !data.contains("errorCode")) {
+// log.info("鑾峰彇token鎴愬姛");
+// JSONObject jsonObject = JSON.parseObject(data);
+// String token = (String) jsonObject.get("accessToken");
+// log.info("鑾峰彇token鎴愬姛锛歿}",token);
+// redisTemplate.opsForValue().set(MqConstant.DD_ACCESS_TOKEN, token, 2, TimeUnit.HOURS);
+// }else {
+// throw new RuntimeException("閽夐拤token鑾峰彇澶辫触");
+// }
+// }
+
+}
diff --git a/ycl-platform/src/main/java/com/ycl/config/FastJson2JsonRedisSerializer.java b/ycl-platform/src/main/java/com/ycl/config/FastJson2JsonRedisSerializer.java
new file mode 100644
index 0000000..44131e8
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/config/FastJson2JsonRedisSerializer.java
@@ -0,0 +1,49 @@
+package com.ycl.config;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONReader;
+import com.alibaba.fastjson2.JSONWriter;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.SerializationException;
+
+import java.nio.charset.Charset;
+
+/**
+ * Redis浣跨敤FastJson搴忓垪鍖�
+ *
+ * @author ruoyi
+ */
+public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
+{
+ public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
+
+ private Class<T> clazz;
+
+ public FastJson2JsonRedisSerializer(Class<T> clazz)
+ {
+ super();
+ this.clazz = clazz;
+ }
+
+ @Override
+ public byte[] serialize(T t) throws SerializationException
+ {
+ if (t == null)
+ {
+ return new byte[0];
+ }
+ return JSON.toJSONString(t, JSONWriter.Feature.WriteClassName).getBytes(DEFAULT_CHARSET);
+ }
+
+ @Override
+ public T deserialize(byte[] bytes) throws SerializationException
+ {
+ if (bytes == null || bytes.length <= 0)
+ {
+ return null;
+ }
+ String str = new String(bytes, DEFAULT_CHARSET);
+
+ return JSON.parseObject(str, clazz, JSONReader.Feature.SupportAutoType);
+ }
+}
diff --git a/ycl-platform/src/main/java/com/ycl/config/MqConstant.java b/ycl-platform/src/main/java/com/ycl/config/MqConstant.java
new file mode 100644
index 0000000..5ba707a
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/config/MqConstant.java
@@ -0,0 +1,14 @@
+package com.ycl.config;
+
+public interface MqConstant {
+
+ String DATA_QUEUE="data_queue_two";
+
+ String DATA_EXCHANGE="data_exchange";
+
+ String DATA_ROUTE_KEY="data_route_key";
+
+ String EXCHANGE_TYPE_TOPIC="topic";
+
+ String DD_ACCESS_TOKEN="dd_access_token";
+}
diff --git a/ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java b/ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java
index 9aaa3c5..c7729f2 100644
--- a/ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java
+++ b/ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java
@@ -2,13 +2,27 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.SimpleClientHttpRequestFactory;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
+
@Bean
- public RestTemplate restTemplate() {
- return new RestTemplate();
+ public RestTemplate restTemplate(ClientHttpRequestFactory factory){
+ RestTemplate restTemplate = new RestTemplate(factory);
+ restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
+ return restTemplate;
}
-}
+
+ @Bean
+ public ClientHttpRequestFactory factory(){
+ SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
+ factory.setReadTimeout(5000);
+ factory.setConnectTimeout(15000);
+ return factory;
+ }
+}
\ No newline at end of file
diff --git a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
index ba9b287..13002eb 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
@@ -10,10 +10,12 @@
import com.alibaba.xxpt.gateway.shared.client.http.PostClient;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.common.utils.StringUtils;
import com.aliyun.oss.model.ObjectMetadata;
import com.ycl.api.CommonResult;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.dingding.DingCommon;
+import com.ycl.config.DdTest;
import com.ycl.config.DingConfig;
import com.ycl.controller.BaseController;
import com.ycl.entity.dingding.DingUserInfo;
@@ -187,6 +189,54 @@
return CommonResult.success(bookRemarkService.updateRemark(user, userId, remark));
}
+
+ @PostMapping("/oss/sign")
+ public CommonResult ossSign(@RequestParam("mediaId") String mediaId, @RequestParam("extension") String extension) {
+ log.info("鎺ユ敹鍒癴ile");
+ if (StringUtils.isNullOrEmpty(mediaId) || StringUtils.isNullOrEmpty(extension)) {
+ return CommonResult.failed("鍙傛暟涓嶈兘涓虹┖锛�");
+ }
+ ExecutableClient executableClient = DdTest.getExecutableClient();
+ CloseableHttpResponse response = null;
+ OSS ossClient = null;
+ try {
+ //浠庨拤閽夎幏鍙栬棰戞祦
+ String api = "/media/download";
+ GetClient getClient = executableClient.newGetClient(api);
+ //浠巖edis鑾峰彇token
+ String token = getToken();
+ //璁剧疆鍙傛暟
+ getClient.addParameter("access_token", token);
+ getClient.addParameter("media_id", mediaId);
+ response = getClient.getB();
+ HttpEntity entity = response.getEntity();
+ InputStream is = entity.getContent();
+ DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+
+ String strDate2 = dtf2.format(LocalDateTime.now());
+
+ String fileName = strDate2 + RandomUtils.generateRandomInt(4) + "." + extension;
+ MultipartFile file = getMultipartFile(is, fileName);
+ String url = ossService.uploadImages(file);
+ return CommonResult.success(url);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.out.println(e.getMessage());
+ } finally {
+ if (ossClient != null) {
+ ossClient.shutdown();
+ }
+ if (response != null) {
+ try {
+ response.close();
+ } catch (Exception e) {
+ System.out.println(e);
+ }
+ }
+ }
+ return null;
+ }
+
@ApiOperation(value = "鑾峰彇瑙嗛")
@GetMapping("/getVideo/{mediaId}")
public CommonResult<String> getVideo(@PathVariable String mediaId) {
diff --git a/ycl-platform/src/main/java/com/ycl/controller/dingding/IntelligentClientTest.java b/ycl-platform/src/main/java/com/ycl/controller/dingding/IntelligentClientTest.java
new file mode 100644
index 0000000..7cd42a9
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/controller/dingding/IntelligentClientTest.java
@@ -0,0 +1,110 @@
+package com.ycl.controller.dingding;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.xxpt.gateway.shared.api.request.OapiMediaUploadRequest;
+import com.alibaba.xxpt.gateway.shared.api.response.OapiMediaUploadResponse;
+import com.alibaba.xxpt.gateway.shared.client.http.ExecutableClient;
+import com.alibaba.xxpt.gateway.shared.client.http.GetClient;
+import com.alibaba.xxpt.gateway.shared.client.http.IntelligentPostClient;
+import com.alibaba.xxpt.gateway.shared.client.http.PostClient;
+
+import java.io.*;
+
+import static com.ycl.common.constant.DingConst.GET_TIKER;
+import static com.ycl.common.constant.DingConst.GET_TOKEN;
+
+public class IntelligentClientTest {
+ private static ExecutableClient executableClient;
+
+ static {
+ executableClient = ExecutableClient.getInstance();
+ //DomainName涓嶅悓鐜瀵瑰簲涓嶅悓鍩熷悕锛岀ず渚嬩负sass鍩熷悕
+ executableClient.setDomainName("openplatform.dg-work.cn");
+ executableClient.setProtocal("https");
+ //搴旂敤App Key
+ executableClient.setAccessKey("SC_ZHZF-IC5g2YiRDW8tug1DfAfiui");
+ //搴旂敤App Secret
+ executableClient.setSecretKey("39RIHFOKd8fUeeW9T7CdBcwEqA6dMKx5d3686B6P");
+ executableClient.init();
+ }
+
+
+ private static String getToken() {
+ //璋冪敤API
+ GetClient getTokenClient = executableClient.newGetClient(GET_TOKEN);
+ //璁剧疆鍙傛暟
+ getTokenClient.addParameter("appkey", "SC_ZHZF-IC5g2YiRDW8tug1DfAfiui");
+ getTokenClient.addParameter("appsecret", "39RIHFOKd8fUeeW9T7CdBcwEqA6dMKx5d3686B6P");
+ String apiResult = getTokenClient.get();
+ return parsingResult(apiResult);
+ }
+
+
+ private static String parsingResult(String apiResult) {
+ if (ObjectUtil.isNotNull(apiResult)) {
+ JSONObject resJson = JSONObject.parseObject(apiResult);
+ if (resJson.getBoolean("success")) {
+ JSONObject content = resJson.getJSONObject("content");
+ if (content.getBoolean("success")) {
+ JSONObject dataObj = content.getJSONObject("data");
+ String accessToken = dataObj.getString("accessToken");
+ return accessToken;
+ }
+ }
+ }
+ return null;
+ }
+
+ public static void main(String[] args) {
+// //executableClient淇濊瘉鍗曚緥
+// IntelligentPostClient intelligentPostClient = executableClient.newIntelligentPostClient("/media/upload");
+// OapiMediaUploadRequest oapiMediaUploadRequest = new OapiMediaUploadRequest();
+// String token = getToken();
+// //璋冪敤鎺ュ彛鍑瘉
+// oapiMediaUploadRequest.setAccess_token(token);
+// //濯掍綋鏂囦欢绫诲瀷锛屽垎鍒湁鍥剧墖锛坕mage锛夈�佽闊筹紙voice锛夈�佹櫘閫氭枃浠�(file)
+// oapiMediaUploadRequest.setType("file");
+// //orm-data涓獟浣撴枃浠舵爣璇嗭紝鏈塮ilename銆乫ilelength銆乧ontent-type绛変俊鎭�
+// oapiMediaUploadRequest.setMedia("瀛楃涓�");
+// intelligentPostClient.addFile(new File("F:\\瑙嗛\\C20353B5856A7413D4B40A8D42BBA569.mp4"));
+// //鑾峰彇缁撴灉
+// OapiMediaUploadResponse apiResult = intelligentPostClient.post(oapiMediaUploadRequest);
+// System.out.println(apiResult);
+ File file = new File("F:\\halon.json");
+ try {
+
+ JSONObject jsonObject = readerMethod(file);
+
+ String dataList = jsonObject.getString("dataObj");
+ JSONArray array = JSON.parseArray(dataList);
+ String urls = "";
+ for (int i = 0; i < 311; i++) {
+ JSONObject object = (JSONObject) array.get(i);
+ String path = object.getString("FilePath");
+ urls += path + "\r\n";
+ }
+ System.out.println(urls);
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static JSONObject readerMethod(File file) throws IOException, FileNotFoundException {
+ FileReader fileReader = new FileReader(file);
+ Reader reader = new InputStreamReader(new FileInputStream(file), "Utf-8");
+ int ch = 0;
+ StringBuffer sb = new StringBuffer();
+ while ((ch = reader.read()) != -1) {
+ sb.append((char) ch);
+ }
+ fileReader.close();
+ reader.close();
+ String jsonStr = sb.toString();
+// System.out.println(JSON.parseObject(jsonStr));
+ return JSON.parseObject(jsonStr);
+ }
+}
diff --git a/ycl-platform/src/main/resources/application.yml b/ycl-platform/src/main/resources/application.yml
index 75ab11b..b117905 100644
--- a/ycl-platform/src/main/resources/application.yml
+++ b/ycl-platform/src/main/resources/application.yml
@@ -92,3 +92,4 @@
- /**/API/**
- /**/ding/**
- /**/sccg_region/**
+ - oss/sign
--
Gitblit v1.8.0