From 1c732150ad5e8b21efff07ecd923c4ff8fda60c1 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期二, 05 九月 2023 20:47:41 +0800 Subject: [PATCH] 100路视频 --- ycl-platform/src/main/java/com/ycl/util/VideoUtil.java | 66 ++++++++++++++++ ycl-platform/src/main/java/com/ycl/dto/video/HttpResponseResult.java | 11 ++ ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java | 3 ycl-platform/src/main/java/com/ycl/dto/video/Camera.java | 45 +++++++++++ ycl-platform/src/main/java/com/ycl/dto/video/PageResult.java | 18 ++++ ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java | 77 +++++++++++++++++- 6 files changed, 211 insertions(+), 9 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java index f4a6942..e9fea7d 100644 --- a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java @@ -145,6 +145,9 @@ } public static String getcontentType(String FilenameExtension) { + if (FilenameExtension.equalsIgnoreCase(".mp4")||FilenameExtension.equalsIgnoreCase(".mov")) { + return "video/mp4"; + } if (FilenameExtension.equalsIgnoreCase(".bmp")) { return "image/bmp"; } diff --git a/ycl-platform/src/main/java/com/ycl/dto/video/Camera.java b/ycl-platform/src/main/java/com/ycl/dto/video/Camera.java new file mode 100644 index 0000000..6037663 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/dto/video/Camera.java @@ -0,0 +1,45 @@ +package com.ycl.dto.video; + +import lombok.Data; + +import java.util.Date; + +@Data +public class Camera { + + private String cameraIndexCode; + private String gbIndexCode; + private String name; + private String deviceIndexCode; + private String longitude; + private String latitude; + private String altitude; + private Integer pixel; + private Integer cameraType; + private String cameraTypeName; + private String installPlace; + private String matrixCode; + private Integer chanNum; + private String viewshed; + private String capabilitySet; + private String capabilitySetName; + private String intelligentSet; + private String intelligentSetName; + private String recordLocation; + private String recordLocationName; + private Integer ptzController; + private String ptzControllerName; + private String deviceResourceType; + private String deviceResourceTypeName; + private String channelType; + private String channelTypeName; + private Integer transType; + private String transTypeName; + private Date updateTime; + private String unitIndexCode; + private String treatyType; + private String treatyTypeName; + private Date createTime; + private Integer status; + private String statusName; +} diff --git a/ycl-platform/src/main/java/com/ycl/dto/video/HttpResponseResult.java b/ycl-platform/src/main/java/com/ycl/dto/video/HttpResponseResult.java new file mode 100644 index 0000000..59b45c4 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/dto/video/HttpResponseResult.java @@ -0,0 +1,11 @@ +package com.ycl.dto.video; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +@Data +public class HttpResponseResult{ + private String code; + private String msg; + private JSONObject data; +} diff --git a/ycl-platform/src/main/java/com/ycl/dto/video/PageResult.java b/ycl-platform/src/main/java/com/ycl/dto/video/PageResult.java new file mode 100644 index 0000000..8ab6055 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/dto/video/PageResult.java @@ -0,0 +1,18 @@ +package com.ycl.dto.video; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PageResult<T> { + private Integer total; + private Integer pageSize; + private Integer pageNo; + private List<T> list; + +} diff --git a/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java index 103223b..e99ce7b 100644 --- a/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java +++ b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java @@ -1,13 +1,19 @@ package com.ycl.util; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import cn.hutool.json.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; -import com.ycl.api.CommonResult; +import com.hikvision.artemis.sdk.ArtemisHttpUtil; +import com.hikvision.artemis.sdk.config.ArtemisConfig; import com.ycl.dto.v1.Req.FirstReq; import com.ycl.dto.v1.Req.SecondReq; import com.ycl.dto.v1.Res.FirstRes; +import com.ycl.dto.video.Camera; +import com.ycl.dto.video.HttpResponseResult; +import com.ycl.dto.video.PageResult; import com.ycl.utils.MD5Util; import lombok.SneakyThrows; +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.http.client.ClientHttpResponse; @@ -17,6 +23,9 @@ import org.springframework.web.client.RestTemplate; import java.net.URI; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Component public class VideoUtil { @@ -118,4 +127,57 @@ return "鑾峰彇鍦板潃澶辫触锛岃妫�鏌ode鍊�"; } } + + + private final String ARTEMIS_PATH = "/artemis"; + private final String HOST = "10.53.133.82:1443"; + private final String APP_KEY = "29967737"; + private final String APP_SECRET = "LElVf9Ct3ykStZHCmFNZ"; + + public PageResult<Camera> callPostCameras(Integer pageNo, Integer pageSize, String treeCode) throws Exception { + ArtemisConfig config = new ArtemisConfig(); + config.setHost(HOST); // 浠g悊API缃戝叧nginx鏈嶅姟鍣╥p绔彛 + config.setAppKey(APP_KEY); // 绉橀挜appkey + config.setAppSecret(APP_SECRET);// 绉橀挜appSecret + final String getSecurityApi = ARTEMIS_PATH + "/api/resource/v1/cameras"; // 鎺ュ彛璺緞 + Map<String, String> path = new HashMap<String, String>(2) { + { + put("https://", getSecurityApi); + } + }; + Map<String, String> head = new HashMap<String, String>(2) { //get璇锋眰鐨刪ead鍙傛暟 + { + put("headpost", "sky-test"); + } + }; + Map<String, String> query = new HashMap<String, String>(2) { //get璇锋眰鐨刪ead鍙傛暟 + { + put("domainId", "0"); + } + }; + JSONObject jsonBody = new JSONObject(); + jsonBody.put("pageNo", pageNo); + jsonBody.put("pageSize", pageSize); + jsonBody.put("treeCode", treeCode); + String body = jsonBody.toString(); + //鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆 + HttpResponse result = ArtemisHttpUtil.doPostStringImgArtemis(config, path, body, query, null, "application/json", head); + try { + String strResult = EntityUtils.toString(result.getEntity()); + HttpResponseResult responseResult = com.alibaba.fastjson.JSONObject.parseObject(strResult, HttpResponseResult.class); + if ("0".equals(responseResult.getCode())) { + com.alibaba.fastjson.JSONObject jsonObject = responseResult.getData(); + String strList = jsonObject.getString("list"); + Integer total = Integer.parseInt(jsonObject.getString("total")); + Integer resultPageSize = Integer.parseInt(jsonObject.getString("pageSize")); + Integer resultPageNo = Integer.parseInt(jsonObject.getString("pageNo")); + List<Camera> ls = com.alibaba.fastjson.JSONObject.parseArray(strList, Camera.class); + PageResult<Camera> pageResult = new PageResult<>(total, resultPageSize, resultPageNo, ls); + return pageResult; + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } } diff --git a/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java b/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java index 760b2e1..c3244e3 100644 --- a/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java +++ b/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java @@ -1,6 +1,9 @@ package com.ycl.sccgplatform; -import com.ycl.dto.statistics.CategoryDto; +import com.alibaba.fastjson.JSONObject; +import com.ycl.dto.video.Camera; +import com.ycl.dto.video.HttpResponseResult; +import com.ycl.dto.video.PageResult; import com.ycl.mapper.unlawful.UnlawfulMapper; import com.ycl.service.oss.OssService; import org.junit.jupiter.api.Test; @@ -13,8 +16,6 @@ import java.util.List; import java.util.UUID; -import static com.alibaba.druid.util.Utils.loadFromFile; - @SpringBootTest public class Test1 { @@ -25,9 +26,71 @@ private UnlawfulMapper unlawfuldao; @Test - void test(){ + void test() { // List<CategoryDto> data = unlawfuldao.getDataByType(0, 5,"2022-12-14 17:19:01", "2022-12-14 17:19:03"); // System.out.println(data); + + + String msg = "{\n" + + " \"code\": \"0\",\n" + + " \"msg\": \"success\",\n" + + " \"data\": {\n" + + " \"total\": 1,\n" + + " \"pageSize\": 20,\n" + + " \"pageNo\": 1,\n" + + " \"list\": [\n" + + " {\n" + + " \"cameraIndexCode\": \"90ad77d8057c43dab140b77361606927\",\n" + + " \"gbIndexCode\": \"12000000051210000000\",\n" + + " \"name\": \"Camera_01\",\n" + + " \"deviceIndexCode\": \"f5da3e320bcb483da6bef4b3f86de779\",\n" + + " \"longitude\": \"120.216123284763\",\n" + + " \"latitude\": \"30.21168569675452\",\n" + + " \"altitude\": \"88\",\n" + + " \"pixel\": 1,\n" + + " \"cameraType\": 1,\n" + + " \"cameraTypeName\": \"鍗婄悆\",\n" + + " \"installPlace\": \"琛楅亾\",\n" + + " \"matrixCode\": \"2076c586b0a94a6ba639b44eda9e76e9\",\n" + + " \"chanNum\": 1,\n" + + " \"viewshed\": \"{\\\"horizontalValue\\\":\\\"13.80000\\\",\\\"azimuth\\\":\\\"109.23000\\\",\\\"visibleRadius\\\":\\\"48.00000\\\"}\",\n" + + " \"capabilitySet\": \"@event_face@\",\n" + + " \"capabilitySetName\": \"浜鸿劯閲囬泦鑳藉姏\",\n" + + " \"intelligentSet\": \"@face@\",\n" + + " \"intelligentSetName\": \"浜鸿劯缁撴瀯鍖栬兘鍔沑",\n" + + " \"recordLocation\": \"0\",\n" + + " \"recordLocationName\": \"涓績瀛樺偍\",\n" + + " \"ptzController\": 1,\n" + + " \"ptzControllerName\": \"DVR\",\n" + + " \"deviceResourceType\": \"ENCODE_DEVICE\",\n" + + " \"deviceResourceTypeName\": \"缂栫爜璁惧\",\n" + + " \"channelType\": \"digital\",\n" + + " \"channelTypeName\": \"鏁板瓧閫氶亾\",\n" + + " \"transType\": 0,\n" + + " \"transTypeName\": \"UDP\",\n" + + " \"updateTime\": \"2021-06-15T00:00:00.000+08:00\",\n" + + " \"unitIndexCode\": \"083b2031c1db4f368f015fe2562e0012\",\n" + + " \"treatyType\": \"20005\",\n" + + " \"treatyTypeName\": \"ONVIF\",\n" + + " \"createTime\": \"2021-06-15T00:00:00.000+08:00\",\n" + + " \"status\": 0,\n" + + " \"statusName\": \"涓嶅湪绾縗"\n" + + " }\n" + + " ]\n" + + " }\n" + + "}\n"; + HttpResponseResult responseResult = com.alibaba.fastjson.JSONObject.parseObject(msg, HttpResponseResult.class); + if ("0".equals(responseResult.getCode())) { + JSONObject jsonObject = responseResult.getData(); + String strList = jsonObject.getString("list"); + Integer total = Integer.parseInt(jsonObject.getString("total")); + Integer pageSize = Integer.parseInt(jsonObject.getString("pageSize")); + Integer pageNo = Integer.parseInt(jsonObject.getString("pageNo")); + List<Camera> ls = JSONObject.parseArray(strList, Camera.class); + + PageResult<Camera> pageResult = new PageResult<>(total, pageSize, pageNo, ls); + System.out.println(ls.size()); + } } // @Test @@ -37,17 +100,17 @@ // } @Test - void test2(){ + void test2() { double v = Double.parseDouble("1.0"); double v1 = Double.parseDouble("3.0"); System.out.println(v / v1); } @Test - void test3(){ + void test3() { System.out.println("sczf/" + String.valueOf(UUID.randomUUID())); } - + @Test void test4() throws Exception { String extension = "jpg"; -- Gitblit v1.8.0