From a9be2e0bfbd8e716207fc467e2699d9caec76a7c Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 07 十二月 2022 17:44:38 +0800
Subject: [PATCH] feat: 实时视频Api fix: 事件Api 视频点位api 视频巡查api

---
 ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java |   96 ++++-------------------------------------------
 1 files changed, 9 insertions(+), 87 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 a583190..dadc1fb 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
@@ -1,29 +1,17 @@
 package com.ycl.controller.platformApi;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ycl.api.CommonResult;
-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.AlarmParam;
 import com.ycl.enums.common.ResultCode;
 import com.ycl.service.video.IVideoAlarmReportService;
-import com.ycl.utils.MD5Util;
+import com.ycl.util.VideoUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.SneakyThrows;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.*;
-import org.springframework.http.client.ClientHttpResponse;
-import org.springframework.http.client.SimpleClientHttpRequestFactory;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.client.DefaultResponseErrorHandler;
-import org.springframework.web.client.RestTemplate;
-
-import java.net.URI;
 
 /**
  * @author admin
@@ -33,19 +21,11 @@
 @RequestMapping("/API")
 public class AlarmController {
 
-    @Value("${videoPoint.url}")
-    private String url;
-
-    @Value("${videoPoint.userName}")
-    private String userName;
-
-    @Value("${videoPoint.passWord}")
-    private String passWord;
-
-    @Value("${videoPoint.ip}")
-    private String ip;
 
     private IVideoAlarmReportService videoAlarmReportService;
+
+    @Autowired
+    private VideoUtil videoUtil;
 
     @Autowired
     public void setVideoAlarmReportService(IVideoAlarmReportService videoAlarmReportService) {
@@ -59,77 +39,19 @@
         return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage());
     }
 
-    @GetMapping("/Video/{code}/{subType}")
+    @GetMapping("/video")
     @ApiOperation(value = "璁惧鑾峰彇鐩戞帶鍦板潃")
     @SneakyThrows
-    public CommonResult getMonitorAddress(@PathVariable String code, @PathVariable Integer subType,
+    public CommonResult getMonitorAddress(@RequestParam String code,
+                                          @RequestParam(required = false) Integer subType,
                                           @RequestParam(required = false) String scheme) {
 
-        String clientType = "winpc";
-        String reqUrl = "/videoService/accounts/authorize";
-        String deviceUrl = "/videoService/devicesManager/devices";
         if (subType == null) {
             subType = 1;
         }
-        if (!StringUtils.isNotBlank(scheme)) {
+        if (StringUtils.isBlank(scheme)) {
             scheme = "RTSP";
         }
-        String monitorUrl = "/videoService/realmonitor/uri?subType=" + subType + "&scheme=" + scheme + "&channelId=";
-
-        RestTemplate restTemplate = new RestTemplate();
-        restTemplate.setErrorHandler(new DefaultResponseErrorHandler() {
-            @Override
-            public boolean hasError(HttpStatus status) {
-                return super.hasError(status);
-            }
-
-            @Override
-            public void handleError(URI url, HttpMethod method, ClientHttpResponse response) {
-
-            }
-        });
-        SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
-        simpleClientHttpRequestFactory.setOutputStreaming(false);
-        restTemplate.setRequestFactory(simpleClientHttpRequestFactory);
-
-        //璇锋眰澶�
-        HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
-
-        //绗竴娆℃潈闄愯姹備綋
-        FirstReq firstReq = new FirstReq();
-        firstReq.setIpAddress(ip);
-        firstReq.setUserName(userName);
-        firstReq.setClientType(clientType);
-        ObjectMapper objectMapper = new ObjectMapper();
-
-        HttpEntity<String> firstEntity = new HttpEntity<>(objectMapper.writeValueAsString(firstReq), httpHeaders);
-        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url + reqUrl, firstEntity, String.class);
-
-        FirstRes firstRes = objectMapper.readValue(responseEntity.getBody(), FirstRes.class);
-
-        String signature = MD5Util.md5Encrypt(passWord);
-        signature = MD5Util.md5Encrypt(userName + signature);
-        signature = MD5Util.md5Encrypt(signature);
-        signature = MD5Util.md5Encrypt(userName + ":" + firstRes.getRealm() + ":" + signature);
-        signature = MD5Util.md5Encrypt(signature + ":" + firstRes.getRandomKey());
-
-        SecondReq secondReq = new SecondReq();
-        secondReq.setIpAddress(ip);
-        secondReq.setEncryptType(firstRes.getEncryptType());
-        secondReq.setSignature(signature);
-        secondReq.setRandomKey(firstRes.getRandomKey());
-        secondReq.setClientType(clientType);
-        secondReq.setUserName(userName);
-
-        HttpEntity<String> secondEntity = new HttpEntity<>(objectMapper.writeValueAsString(secondReq), httpHeaders);
-        ResponseEntity<String> secondResEntity = restTemplate.postForEntity(url + reqUrl, secondEntity, String.class);
-        HttpHeaders deviceHeaders = new HttpHeaders();
-        deviceHeaders.add("X-Subject-Token", objectMapper.readTree(secondResEntity.getBody()).get("token").textValue());
-        HttpEntity<Object> deviceEntity = new HttpEntity<>(deviceHeaders);
-        ResponseEntity<String> exchange = restTemplate.exchange(url + deviceUrl + "/" + code, HttpMethod.GET, deviceEntity, String.class);
-        String channelId = objectMapper.readTree(objectMapper.readTree(objectMapper.readTree(exchange.getBody()).get("encoderUnit").toString()).get("channels").get(0).toString()).get("channelId").textValue();
-        ResponseEntity<String> monitorReq = restTemplate.exchange(url + monitorUrl + channelId, HttpMethod.GET, deviceEntity, String.class);
-        return CommonResult.successApi(objectMapper.readTree(monitorReq.getBody()).get("url"));
+        return CommonResult.successApi(videoUtil.getVideo(code, scheme, subType));
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0