From 25b7ce0742103b9cbaf21aae06c2cf12d4872764 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期三, 13 九月 2023 11:11:05 +0800
Subject: [PATCH] 视频上传
---
ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java | 124 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 120 insertions(+), 4 deletions(-)
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 2110dbf..05f98c7 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
@@ -1,8 +1,14 @@
package com.ycl.controller.dingding;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+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.PostClient;
import com.ycl.api.CommonResult;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.dingding.DingCommon;
+import com.ycl.config.DingConfig;
import com.ycl.controller.BaseController;
import com.ycl.entity.dingding.DingUserInfo;
import com.ycl.service.auth.AuthService;
@@ -12,18 +18,29 @@
import com.ycl.vo.NewAddressBookVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static com.ycl.common.constant.DingConst.*;
+
@RestController
@RequestMapping("/ding")
@Api(tags = "閽夐拤")
+@Slf4j
public class DingController extends BaseController {
@Autowired
@@ -46,6 +63,13 @@
@Autowired
private BookRemarkService bookRemarkService;
+ @Resource
+ private ExecutableClient executableClient;
+
+ @Resource
+ private DingConfig dingConfig;
+
+
@ApiOperation(value = "鏍规嵁閽夐拤鎺堟潈鐮佽幏鍙杢oken")
@GetMapping("/dingLogin")
public CommonResult<Map> dingLogin(@RequestParam String code) {
@@ -60,11 +84,64 @@
return CommonResult.success(map);
}
+ @ApiOperation(value = "鏍规嵁閽夐拤鎺堟潈鐮佽幏鍙杍sapiToken")
+ @GetMapping("/dingTicker")
+ public CommonResult<Map> dingTicker() {
+ String accessToken = getToken();
+ String ticket = getTiker(accessToken);
+ HashMap<String, Object> map = new HashMap<>();
+
+ map.put("accessToken", accessToken);
+
+ map.put("ticket", ticket);
+ return CommonResult.success(map);
+ }
+
+ private String getToken() {
+ //璋冪敤API
+ GetClient getTokenClient = executableClient.newGetClient(GET_TOKEN);
+ //璁剧疆鍙傛暟
+ getTokenClient.addParameter("appkey", dingConfig.getAppKey());
+ getTokenClient.addParameter("appsecret", dingConfig.getAppSecret());
+ String apiResult = getTokenClient.get();
+ return parsingResult(apiResult);
+ }
+
+ private String getTiker(String accToken) {
+ //璋冪敤API
+ PostClient postClient = executableClient.newPostClient(GET_TIKER);
+ //璁剧疆鍙傛暟
+ if (ObjectUtil.isNotNull(accToken)) {
+ postClient.addParameter("accessToken", accToken);
+ postClient.addParameter("appkey", dingConfig.getAppKey());
+ postClient.addParameter("appsecret", dingConfig.getAppSecret());
+ String apiResult = postClient.post();
+ return parsingResult(apiResult);
+ }
+ return null;
+ }
+
+ private 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;
+ }
+ } else {
+ log.error(resJson.toJSONString());
+ }
+ }
+ return null;
+ }
+
@ApiOperation(value = "閫氳褰�")
@GetMapping("/addressBook")
public CommonResult<List<AddressBookVO>> getAddressBook() {
AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
-
return CommonResult.success(dingService.getAddressBook(user.getUserId()));
}
@@ -77,8 +154,6 @@
}
-
-
@ApiOperation(value = "閫氳褰曢�掑綊")
@GetMapping("/getDddressBook")
public CommonResult<NewAddressBookVO> getNewAddressBook(@RequestParam("id") Long id) {
@@ -87,7 +162,6 @@
}
-
@ApiOperation(value = "淇敼閫氳褰曞娉�")
@PutMapping("/remark")
public CommonResult updateRemark(@RequestParam("userId") Long userId, @RequestParam("remark") String remark) {
@@ -95,5 +169,47 @@
return CommonResult.success(bookRemarkService.updateRemark(user, userId, remark));
}
+ private String getVideo(String accToken) {
+ CloseableHttpResponse response = null;
+ //璋冪敤API
+ GetClient getClient = executableClient.newGetClient(GET_VIDEO);
+ //璁剧疆鍙傛暟
+ try {
+ if (ObjectUtil.isNotNull(accToken)) {
+ getClient.addParameter("accessToken", accToken);
+ getClient.addParameter("mediaId", dingConfig.getMediaId());
+// String result = getClient.get();
+// return parsingResult(result);
+ response = getClient.getB();
+ HttpEntity entity = response.getEntity();
+ InputStream is = entity.getContent();
+ File voice = new File("/Users/video/log1.xlsx");
+ OutputStream fos = new FileOutputStream(voice);
+ int cache = 10 * 1024;
+ byte[] buffer = new byte[cache];
+ int ch = 0;
+ while ((ch = is.read(buffer)) != -1) {
+ fos.write(buffer, 0, ch);
+ }
+ is.close();
+ fos.flush();
+ fos.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ if (response != null) {
+ try {
+ //鐗瑰埆鎻愰啋锛氶渶瑕佽皟鐢╮esponse鐨刢lose鏂规硶鍏抽棴缃戠粶杩炴帴锛侊紒锛�
+ response.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return null;
+ }
+
+
}
--
Gitblit v1.8.0