From 7ef4892f9f24f941aca37e6b3991b808a0aca619 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 08 九月 2023 11:16:35 +0800
Subject: [PATCH] 优化

---
 ycl-platform/src/main/java/com/ycl/util/VideoUtil.java                         |   67 ++++++++++++++++++----
 ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java              |    6 +-
 ycl-platform/src/main/resources/application-prod.yml                           |   10 +++
 ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java |   44 ++++++++++++--
 ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java                |   27 +++++----
 5 files changed, 119 insertions(+), 35 deletions(-)

diff --git a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
index 257e41b..fda52c9 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
@@ -2,12 +2,15 @@
 
 import cn.hutool.json.JSONConverter;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.ycl.annotation.LogSave;
 import com.ycl.api.CommonResult;
 import com.ycl.dto.video.AlarmParam;
+import com.ycl.entity.video.VideoPoint;
 import com.ycl.enums.common.ResultCode;
 import com.ycl.service.video.IVideoAlarmReportService;
+import com.ycl.service.video.impl.IVideoPointService;
 import com.ycl.util.VideoUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -27,6 +30,7 @@
 import java.util.Base64;
 import java.util.Dictionary;
 import java.util.Hashtable;
+import java.util.List;
 
 /**
  * @author admin
@@ -35,6 +39,7 @@
 @RestController
 @RequestMapping("/API")
 public class AlarmController {
+    private IVideoPointService videoPointService;
     private IVideoAlarmReportService videoAlarmReportService;
 
     private static Dictionary<String, Integer> sessionDic = new Hashtable<>();
@@ -45,6 +50,11 @@
     @Autowired
     public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) {
         this.videoAlarmReportService = videoAlarmReportService;
+    }
+
+    @Autowired
+    public void setVideoPointService(IVideoPointService videoPointService) {
+        this.videoPointService = videoPointService;
     }
 
     @ApiOperation("瑙嗛鎶ヨ鎺ㄩ�丄PI")
@@ -62,13 +72,33 @@
     public CommonResult getMonitorAddress(@PathVariable String code, @PathVariable Integer subType,
                                           @RequestParam(required = false) String scheme) {
 
-        if (subType == null) {
-            subType = 1;
+        LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>()
+                .eq(VideoPoint::getPlatResourceId, code)
+                .or().eq(VideoPoint::getCode, code);
+        List<VideoPoint> pointList = videoPointService.list(queryWrapper);
+        if (pointList.size() > 0) {
+            VideoPoint videoPoint = pointList.get(0);
+            if (videoPoint.getType() == 1) {
+                return CommonResult.successApi(videoUtil.getKHVideo(code));
+            } else {
+                if (subType == null) {
+                    subType = 1;
+                }
+                if (!StringUtils.isNotBlank(scheme)) {
+                    scheme = "RTSP";
+                }
+                return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType));
+            }
+        } else {
+
+            if (subType == null) {
+                subType = 1;
+            }
+            if (!StringUtils.isNotBlank(scheme)) {
+                scheme = "RTSP";
+            }
+            return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType));
         }
-        if (!StringUtils.isNotBlank(scheme)) {
-            scheme = "RTSP";
-        }
-        return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType));
     }
 
 
@@ -90,7 +120,7 @@
         try {
             if (sessionDic.get(sessionId) < 10) {
                 sessionDic.remove(sessionId);
-                fileUrl = fileUrl.replace("Expires","v");
+                fileUrl = fileUrl.replace("Expires", "v");
                 System.out.println("getImages鑾峰彇鍥剧墖鍦板潃锛�" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
                 URL url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
                 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
diff --git a/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java
index 3a3b6c9..d06fefc 100644
--- a/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java
+++ b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java
@@ -25,27 +25,30 @@
     @Autowired
     private VideoUtil videoUtil;
 
-    @Scheduled(cron = "0/1 * * * * ?")   // 姣忕鎵ц
+//    @Scheduled(cron = "0/9 * * * * ?")   // 姣忕鎵ц
 //    @Scheduled(cron = "0 0/1 * ?")
     @Transactional(rollbackFor = Exception.class)
     public void scheduledTask() {
-        try {
-            findVideoList(1, 20);
-        } catch (Exception ex) {
+        System.out.println("娴峰悍锛氬紑濮嬫墽琛�");
 
-        }
+        findVideoList(1, 20);
+
     }
 
-    private void findVideoList(Integer pageNo, Integer pageSize) throws Exception {
-        PageResult<Camera> pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0");
-        if (pageResult.getTotal() > 0) {
-            if (pageResult.getList().size() > 0) {
-                saveVideoFromCamera(pageResult.getList());
+    private void findVideoList(Integer pageNo, Integer pageSize) {
+        try {
+            PageResult<Camera> pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0");
+            if (pageResult.getTotal() > 0) {
+                if (pageResult.getList().size() > 0) {
+                    saveVideoFromCamera(pageResult.getList());
 
-                if (pageResult.getList().size() >= pageSize) {
-                    findVideoList(pageNo + 1, pageSize);
+                    if (pageResult.getList().size() >= pageSize) {
+                        findVideoList(pageNo + 1, pageSize);
+                    }
                 }
             }
+        } catch (Exception ex) {
+            System.out.println("娴峰悍锛�" + ex.getMessage());
         }
     }
 
diff --git a/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java b/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
index 86e4f07..28e3e36 100644
--- a/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
+++ b/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
@@ -105,7 +105,7 @@
             umsDepartService.saveOrUpdate(dingOrg);
         });
 
-        log.info(TAG + "update organization size " + dingOrgList.size());
+//        log.info(TAG + "update organization size " + dingOrgList.size());
         TimeInterval timer = DateUtil.timer();
         /**
          //         * 鏍规嵁缁勭粐code 鏌ヨ 閫氳褰曚汉鍛樹俊鎭�
@@ -134,7 +134,7 @@
             }
         }
         ArrayList<UmsAdminRoleRelation> relations = new ArrayList<>();
-        log.info(TAG + " elapsed time:" + timer.interval());
+//        log.info(TAG + " elapsed time:" + timer.interval());
         for (DingUserInfo dingUserInfo : dingList) {
             //1.娣诲姞鐢ㄦ埛
             UmsAdmin user = new UmsAdmin();
@@ -185,7 +185,7 @@
         if (CollUtil.isNotEmpty(relations)) {
             umsAdminRoleRelationService.saveBatch(relations, IService.DEFAULT_BATCH_SIZE);
         }
-        log.info(TAG + "update user size " + dingList.size());
+//        log.info(TAG + "update user size " + dingList.size());
 //        getEmployeeAvatar();
     }
 
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 e99ce7b..cb8bc5d 100644
--- a/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java
+++ b/ycl-platform/src/main/java/com/ycl/util/VideoUtil.java
@@ -123,7 +123,7 @@
             return objectMapper.readTree(monitorReq.getBody()).get("url").textValue();
 
         } catch (Exception ex) {
-            System.out.println("鑾峰彇瑙嗛寮傚父锛�" + ex);
+            System.out.println("鑾峰彇瑙嗛寮傚父锛�" + ex.getMessage());
             return "鑾峰彇鍦板潃澶辫触锛岃妫�鏌ode鍊�";
         }
     }
@@ -135,11 +135,58 @@
     private final String APP_SECRET = "LElVf9Ct3ykStZHCmFNZ";
 
     public PageResult<Camera> callPostCameras(Integer pageNo, Integer pageSize, String treeCode) throws Exception {
+        System.out.println("娴峰悍瑙嗛-callPostCameras");
         ArtemisConfig config = new ArtemisConfig();
         config.setHost(HOST); // 浠g悊API缃戝叧nginx鏈嶅姟鍣╥p绔彛
         config.setAppKey(APP_KEY);  // 绉橀挜appkey
         config.setAppSecret(APP_SECRET);// 绉橀挜appSecret
+        System.out.println("娴峰悍瑙嗛-鍒濆鍖朿onfig");
         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");
+            }
+        };
+        JSONObject jsonBody = new JSONObject();
+        jsonBody.put("pageNo", pageNo);
+        jsonBody.put("pageSize", pageSize);
+        jsonBody.put("treeCode", treeCode);
+        String body = jsonBody.toString();
+        System.out.println("娴峰悍瑙嗛寮�濮嬭姹傦細");
+        //鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆
+        HttpResponse result = ArtemisHttpUtil.doPostStringImgArtemis(config, path, body, null, null, "application/json", head);
+        try {
+            String strResult = EntityUtils.toString(result.getEntity());
+            HttpResponseResult responseResult = com.alibaba.fastjson.JSONObject.parseObject(strResult, HttpResponseResult.class);
+            System.out.println("娴峰悍瑙嗛缁撴灉锛�" + responseResult.toString());
+            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;
+    }
+
+    public String getKHVideo(String code) 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/previewURLs"; // 鎺ュ彛璺緞
         Map<String, String> path = new HashMap<String, String>(2) {
             {
                 put("https://", getSecurityApi);
@@ -156,9 +203,10 @@
             }
         };
         JSONObject jsonBody = new JSONObject();
-        jsonBody.put("pageNo", pageNo);
-        jsonBody.put("pageSize", pageSize);
-        jsonBody.put("treeCode", treeCode);
+        jsonBody.put("cameraIndexCode", code);
+        jsonBody.put("streamType", 0);
+        jsonBody.put("protocol", "hls");
+        jsonBody.put("transmode", 0);
         String body = jsonBody.toString();
         //鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆
         HttpResponse result = ArtemisHttpUtil.doPostStringImgArtemis(config, path, body, query, null, "application/json", head);
@@ -167,17 +215,12 @@
             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;
+                String url = jsonObject.getString("url");
+                return url;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return null;
+        return "";
     }
 }
diff --git a/ycl-platform/src/main/resources/application-prod.yml b/ycl-platform/src/main/resources/application-prod.yml
index 6201f09..e1181ec 100644
--- a/ycl-platform/src/main/resources/application-prod.yml
+++ b/ycl-platform/src/main/resources/application-prod.yml
@@ -77,4 +77,12 @@
     endpoint: http://oss-cn-zjls-lszwy-d01-a.ops.zjlscloud.com
     keyId: Tkf72Q1gdzETsZf6
     keySecret: tRk39S6B1kSGARRdS4DF6jxr5nBYj5
-    bucketName: zhzfptoss
\ No newline at end of file
+    bucketName: zhzfptoss
+
+#涓撴湁閽夐拤鍙傛暟
+zzding :
+  app-key : SC_ZHZF-IC5g2YiRDW8tug1DfAfiui
+  app-secret : 39RIHFOKd8fUeeW9T7CdBcwEqA6dMKx5d3686B6P
+  domain-name : openplatform.dg-work.cn
+  protocal : https
+  tenant-id : 50645661
\ No newline at end of file

--
Gitblit v1.8.0