From 3f95846ca34bf97b00346417c99b1549293b72d2 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期三, 22 十二月 2021 09:45:35 +0800
Subject: [PATCH] 萤石云摄像头

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java |  184 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 159 insertions(+), 25 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index 0f19ea5..ebb6a7b 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -1,24 +1,45 @@
 package com.sandu.ximon.admin.service;
 
 
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.admin.param.BannerParam;
 import com.sandu.ximon.admin.param.MonitorParam;
-import com.sandu.ximon.dao.domain.Banner;
 import com.sandu.ximon.dao.domain.Monitor;
+import com.sandu.ximon.dao.domain.YSY_AccessTokenDto;
+import com.sandu.ximon.dao.domain.YSY_MonitorDto;
 import com.sandu.ximon.dao.mapper.MonitorMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 @AllArgsConstructor
 public class MonitorService extends BaseServiceImpl<MonitorMapper, Monitor> {
     private final MonitorMapper monitorMapper;
+    //钀ょ煶浜慉ppKey
+    private static final String AppKey = "51a534ebadf54c31a0848dc575dfa206";
+    //钀ょ煶浜� AppKey Secret
+    private static final String Secret = "8c32c67a73c87b9e461b2e3bdf58967a";
+
+    //钀ょ煶浜戝湴鍧�
+    private static final String YSY_URL = "https://open.ys7.com/api/lapp";
+    //鑾峰彇钀ょ煶浜慳ccessToken鍦板潃
+    private static final String ACCESSTOKEN_URL = "/token/get";
+    //娣诲姞钀ょ煶浜戞憚鍍忓ご
+    private static final String ADD_DEVICE_URL = "/device/add";
+    //鍒犻櫎钀ょ煶浜戞憚鍍忓ご
+    private static final String DELETE_DEVICE_URL = "/device/delete";
+    //鑾峰彇钀ょ煶浜戝崟涓澶囦俊鎭�
+    private static final String GET_DEVICE_URL = "/device/info";
+    //鑾峰彇钀ょ煶浜戞憚鍍忓ご鎾斁鍦板潃URL
+    private static final String GET_VEDIO_URL = "/v2/live/address/get";
 
     /**
      * 鏌ヨ鍏ㄩ儴鎽勫儚澶�
@@ -35,22 +56,26 @@
      */
     public List<Monitor> listMonitorByKeyword(MonitorParam monitorParam) {
         //璁惧鐘舵��:鍦ㄧ嚎/绂荤嚎/鍏ㄩ儴
-        String equipmentState1;
-        String equipmentState2;
-        if ("鍏ㄩ儴".equals(monitorParam.getEquipmentState())) {
-            equipmentState1 = "鍦ㄧ嚎";
-            equipmentState2 = "绂荤嚎";
+        int equipmentState1;
+        int equipmentState2;
+        if (2 == monitorParam.getEquipmentState()) {
+            //鍦ㄧ嚎
+            equipmentState1 = 1;
+            //绂荤嚎
+            equipmentState2 = 0;
         } else {
             equipmentState1 = monitorParam.getEquipmentState();
             equipmentState2 = monitorParam.getEquipmentState();
         }
 
         //缁戝畾鐘舵�侊細宸茬粦瀹�/鏈粦瀹�/鍏ㄩ儴
-        String bindingState1;
-        String bindingState2;
-        if ("鍏ㄩ儴".equals(monitorParam.getBindingState())) {
-            bindingState1 = "宸茬粦瀹�";
-            bindingState2 = "鏈粦瀹�";
+        int bindingState1;
+        int bindingState2;
+        if (2 == monitorParam.getBindingState()) {
+            //宸茬粦瀹�
+            bindingState1 = 1;
+            //鏈粦瀹�
+            bindingState2 = 0;
         } else {
             bindingState1 = monitorParam.getBindingState();
             bindingState2 = monitorParam.getBindingState();
@@ -73,22 +98,131 @@
     }
 
     /**
-     * 缂栬緫鎽勫儚澶�
-     * @param Id
-     * @param monitorParam
+     * 鑾峰彇钀ょ煶浜慳ccessToken
+     */
+
+    public String getAccessToken() {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("appKey", AppKey);
+        paramMap.put("appSecret", Secret);
+        String s = HttpUtil.post(YSY_URL + ACCESSTOKEN_URL, paramMap);
+        YSY_AccessTokenDto accessTokenDto = JSON.parseObject(s, YSY_AccessTokenDto.class);
+        return accessTokenDto.getData().getAccessToken();
+    }
+
+    /**
+     * 娣诲姞钀ょ煶浜戞憚鍍忓ご
+     *
+     * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+     * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+     * @param validateCode 璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
+     */
+    public YSY_MonitorDto addYSYMonitor(String accessToken, String deviceSerial, String validateCode) {
+
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", accessToken);
+        paramMap.put("deviceSerial", deviceSerial);
+        paramMap.put("validateCode", validateCode);
+        String s = HttpUtil.post(YSY_URL + ADD_DEVICE_URL, paramMap);
+        System.out.println(s);
+        YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+        return monitorDto;
+    }
+
+
+    /**
+     * 鍒犻櫎钀ょ煶浜戞憚鍍忓ご
+     *
+     * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+     * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+     */
+    public YSY_MonitorDto deleteYSYMonitor(String accessToken, String deviceSerial) {
+
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", accessToken);
+        paramMap.put("deviceSerial", deviceSerial);
+        String s = HttpUtil.post(YSY_URL + DELETE_DEVICE_URL, paramMap);
+        System.out.println(s);
+        YSY_MonitorDto monitorDto = JSON.parseObject(s, YSY_MonitorDto.class);
+        return monitorDto;
+    }
+
+    /**
+     * 鑾峰彇钀ょ煶浜戞憚鍍忓ご鍗曚釜璁惧淇℃伅
+     *
+     * @param accessToken  鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+     * @param deviceSerial 璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+     */
+    public YSY_MonitorDto getYSYMonitorInfo(String accessToken, String deviceSerial) {
+
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", accessToken);
+        paramMap.put("deviceSerial", deviceSerial);
+        String s = HttpUtil.post(YSY_URL + GET_DEVICE_URL, paramMap);
+        System.out.println(s);
+        YSY_MonitorDto monitor = JSON.parseObject(s, YSY_MonitorDto.class);
+        return monitor;
+    }
+
+    /**
+     * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅瀛樺偍鍒版暟鎹簱
+     *
+     * @param monitor 鎽勫儚澶村璞�
      * @return
      */
-    public boolean updateBanner(Long Id, MonitorParam monitorParam) {
-        Monitor monitor = getById(Id);
-        if (monitor == null) {
-            throw new BusinessException("鎵句笉鍒版憚鍍忓ご");
+    public boolean addMonitorInfoToTable(Monitor monitor) {
+        Monitor one = getOne(Wrappers.lambdaQuery(Monitor.class).eq(Monitor::getDeviceSerial, monitor.getDeviceSerial()));
+        if (one == null) {
+            return save(monitor);
+        } else {
+            return updateById(monitor);
         }
-        Monitor update = new Monitor();
-        update.setId(Id);
-        update.setSerialNumber(monitorParam.());
-        update.setBannerUrl(bannerParam.getUrl());
-        update.setId(bannerId);
-        return updateById(update);
     }
 
+    /**
+     * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅鏇存柊鍒版暟鎹簱
+     *
+     * @param monitor 鎽勫儚澶村璞�
+     * @return
+     */
+    public boolean upDateMonitorInfo(Monitor monitor) {
+        if (monitor.getId() == null) {
+            throw new BusinessException("缂哄皯鎽勫儚澶寸浉鍏矷D鍙傛暟");
+        }
+
+        Monitor info = getById(monitor.getId());
+
+        if (info == null) {
+            throw new BusinessException("鎵句笉鍒扮浉鍏虫憚鍍忓ご");
+        }
+        if (!monitor.getDevicesCode().equals(info.getDevicesCode()) || !monitor.getDeviceSerial().equals(info.getDeviceSerial())) {
+            throw new BusinessException("鐩戞帶搴忓垪鍙锋垨鐩戞帶楠岃瘉鐮佷笉姝g‘");
+        }
+
+        return updateById(monitor);
+    }
+
+    /**
+     * 杩斿洖鎽勫儚澶村疄鏃剁敾闈㈡挱鏀惧湴鍧�
+     *
+     * @param accessToken
+     * @param deviceSerial
+     * @return
+     */
+    public String getMonitorVideoUrl(String accessToken, String deviceSerial, int protocol) {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("accessToken", accessToken);
+        paramMap.put("deviceSerial", deviceSerial);
+        paramMap.put("protocol", protocol);
+        String s = HttpUtil.post(YSY_URL + GET_VEDIO_URL, paramMap);
+        System.out.println(s);
+        YSY_MonitorDto monitor = JSON.parseObject(s, YSY_MonitorDto.class);
+        if ("200".equals(monitor.getCode())) {
+            return monitor.getData().getUrl();
+        } else {
+            throw new BusinessException(monitor.getMsg());
+        }
+    }
+
+
 }

--
Gitblit v1.9.3