From 5c5aad749303149022a1957e2be04e9116b97397 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期二, 21 十二月 2021 11:59:51 +0800
Subject: [PATCH] 萤石云摄像头

---
 dao/src/main/java/com/sandu/ximon/dao/domain/YSY_AccessTokenDto.java              |   28 ++
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java |  131 +++++++++++++
 dao/src/main/java/com/sandu/ximon/dao/domain/YSY_MonitorDto.java                  |  169 ++++++++++++++++
 dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java                   |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java           |   22 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java       |  128 ++++++++++++
 dao/src/main/resources/mapper/MonitorMapper.xml                                   |   26 +-
 dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java                         |   92 +++++++--
 8 files changed, 562 insertions(+), 38 deletions(-)

diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java b/dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java
index ea4c558..e209875 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/Monitor.java
@@ -1,36 +1,86 @@
 package com.sandu.ximon.dao.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
-import lombok.Data;
-
+import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import lombok.Data;
 
 /**
  * 鎽勫儚澶�
+ * @TableName monitor
  */
+@TableName(value ="monitor")
 @Data
 public class Monitor implements Serializable {
-
+    /**
+     * 
+     */
     @TableId(type = IdType.AUTO)
     private Long id;
-    //鎵�灞炰汉
-    private Long userId;
-    //鐩戞帶搴忓垪鍙�
-    private String serialNumber;
-    //鎵�灞炵伅鏉�
-    private String belongTo;
-    //鍦板潃
-    private String address;
-    //璁惧鐘舵��:鍦ㄧ嚎:1/绂荤嚎:0
-    private int equipmentState;
-    //宸ヤ綔鐘舵�侊細姝e父浣跨敤:1/绂佹浣跨敤:0
-    private int workState;
-    //缁戝畾鐘舵�侊細宸茬粦瀹�:1/鏈粦瀹�:0
-    private int bindingState;
-    //澶囨敞
+
+    /**
+     * 璁惧搴忓垪鍙�
+     */
+    private String deviceSerial;
+
+    /**
+     * 璁惧楠岃瘉鐮�
+     */
+    private String devicesCode;
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String deviceName;
+
+    /**
+     * 璁惧绫诲瀷
+     */
+    private String deviceType;
+
+    /**
+     * 鍦ㄧ嚎鐘舵�侊細0-涓嶅湪绾匡紝1-鍦ㄧ嚎
+     */
+    private Integer equipmentStatus;
+
+    /**
+     * 鏄惁鍔犲瘑锛�0-涓嶅姞瀵嗭紝1-鍔犲瘑
+     */
+    private Integer isEncrypt;
+
+    /**
+     * 宸ヤ綔鐘舵��
+     */
+    private Integer workState;
+
+    /**
+     * 缁戝畾鐘舵��
+     */
+    private Integer bindingState;
+
+    /**
+     * 澶囨敞
+     */
     private String note;
-    //鎺ュ叆鏃堕棿
-    private LocalDateTime createTime;
-}
+
+    /**
+     * 
+     */
+    private LocalDateTime addTime;
+
+    /**
+     * 
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * MAC鍦板潃
+     */
+    private String netAddress;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/YSY_AccessTokenDto.java b/dao/src/main/java/com/sandu/ximon/dao/domain/YSY_AccessTokenDto.java
new file mode 100644
index 0000000..cf6e1d3
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/YSY_AccessTokenDto.java
@@ -0,0 +1,28 @@
+package com.sandu.ximon.dao.domain;
+
+import lombok.Data;
+
+/**
+ * @author ZZQ
+ * @date 2021/12/17 14:32
+ */
+@Data
+public class YSY_AccessTokenDto {
+    //"{\"msg\":\"鎿嶄綔鎴愬姛!\",\"code\":\"200\",
+    // \"data\":{\"accessToken\":\"at.4gl2j50x0x1qv6n60mwhc5kaa6csfend-1hr2lrhf51-1u5h20l-cxqlntrqs\",\"expireTime\":1640327042533}}"
+    private String msg;
+    private String code;
+    private data data;
+
+    public class data {
+        private String accessToken;
+
+        public String getAccessToken() {
+            return accessToken;
+        }
+
+        public void setAccessToken(String accessToken) {
+            this.accessToken = accessToken;
+        }
+    }
+}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/YSY_MonitorDto.java b/dao/src/main/java/com/sandu/ximon/dao/domain/YSY_MonitorDto.java
new file mode 100644
index 0000000..c57e7d7
--- /dev/null
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/YSY_MonitorDto.java
@@ -0,0 +1,169 @@
+package com.sandu.ximon.dao.domain;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author ZZQ
+ * @date 2021/12/17 15:46
+ */
+@Data
+public class YSY_MonitorDto {
+    private String code;
+    private String msg;
+    private data data;
+
+
+    public class data {
+//        {
+//            "deviceSerial": "F34465099",
+//                "deviceName": "DS-2DE4223IW-DE(F34465099)",
+//                "localName": "DS-2DE4223IW-DE(F34465099)",
+//                "model": "DS-2DE4223IW-DE",
+//                "status": 1,
+//                "defence": 0,
+//                "isEncrypt": 1,
+//                "alarmSoundMode": 0,
+//                "offlineNotify": 0,
+//                "category": "UNKNOWN",
+//                "parentCategory": "COMMON",
+//                "updateTime": 1612337396000,
+//                "netType": null,
+//                "signal": null,
+//                "riskLevel": 0,
+//                "netAddress": "119.132.57.169"
+//        }
+        private String deviceSerial;
+        private String deviceName;
+        private String localName;
+        private String model;
+        private Integer status;
+        private Integer defence;
+        private Integer isEncrypt;
+        private Integer alarmSoundMode;
+        private Integer offlineNotify;
+        private String category;
+        private String parentCategory;
+        private LocalDateTime updateTime;
+//        private Object netType;
+//        private Object signal;
+        private Integer riskLevel;
+        private String netAddress;
+
+        public String getDeviceSerial() {
+            return deviceSerial;
+        }
+
+        public void setDeviceSerial(String deviceSerial) {
+            this.deviceSerial = deviceSerial;
+        }
+
+        public String getDeviceName() {
+            return deviceName;
+        }
+
+        public void setDeviceName(String deviceName) {
+            this.deviceName = deviceName;
+        }
+
+        public String getLocalName() {
+            return localName;
+        }
+
+        public void setLocalName(String localName) {
+            this.localName = localName;
+        }
+
+        public String getModel() {
+            return model;
+        }
+
+        public void setModel(String model) {
+            this.model = model;
+        }
+
+        public Integer getStatus() {
+            return status;
+        }
+
+        public void setStatus(Integer status) {
+            this.status = status;
+        }
+
+        public Integer getDefence() {
+            return defence;
+        }
+
+        public void setDefence(Integer defence) {
+            this.defence = defence;
+        }
+
+        public Integer getIsEncrypt() {
+            return isEncrypt;
+        }
+
+        public void setIsEncrypt(Integer isEncrypt) {
+            this.isEncrypt = isEncrypt;
+        }
+
+        public Integer getAlarmSoundMode() {
+            return alarmSoundMode;
+        }
+
+        public void setAlarmSoundMode(Integer alarmSoundMode) {
+            this.alarmSoundMode = alarmSoundMode;
+        }
+
+        public Integer getOfflineNotify() {
+            return offlineNotify;
+        }
+
+        public void setOfflineNotify(Integer offlineNotify) {
+            this.offlineNotify = offlineNotify;
+        }
+
+        public String getCategory() {
+            return category;
+        }
+
+        public void setCategory(String category) {
+            this.category = category;
+        }
+
+        public String getParentCategory() {
+            return parentCategory;
+        }
+
+        public void setParentCategory(String parentCategory) {
+            this.parentCategory = parentCategory;
+        }
+
+        public LocalDateTime getUpdateTime() {
+            return updateTime;
+        }
+
+        public void setUpdateTime(LocalDateTime updateTime) {
+            this.updateTime = updateTime;
+        }
+
+        public Integer getRiskLevel() {
+            return riskLevel;
+        }
+
+        public void setRiskLevel(Integer riskLevel) {
+            this.riskLevel = riskLevel;
+        }
+
+        public String getNetAddress() {
+            return netAddress;
+        }
+
+        public void setNetAddress(String netAddress) {
+            this.netAddress = netAddress;
+        }
+    }
+
+}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java
index 6f1d932..1e425d9 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/MonitorMapper.java
@@ -11,3 +11,7 @@
     List<Monitor> listMonitorByKeyword(String keyword, int equipmentState1, int equipmentState2,
                                        int bindingState1, int bindingState2);
 }
+
+
+
+
diff --git a/dao/src/main/resources/mapper/MonitorMapper.xml b/dao/src/main/resources/mapper/MonitorMapper.xml
index 79a3179..2e740ff 100644
--- a/dao/src/main/resources/mapper/MonitorMapper.xml
+++ b/dao/src/main/resources/mapper/MonitorMapper.xml
@@ -5,16 +5,19 @@
 <mapper namespace="com.sandu.ximon.dao.mapper.MonitorMapper">
 
     <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.Monitor">
-        <id property="id" column="id" jdbcType="BIGINT"/>
-        <result property="userId" column="user_id" jdbcType="VARCHAR"/>
-        <result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/>
-        <result property="belongTo" column="belong_to" jdbcType="VARCHAR"/>
-        <result property="address" column="address" jdbcType="VARCHAR"/>
-        <result property="equipmentState" column="equipment_state" jdbcType="INTEGER"/>
-        <result property="workState" column="work_state" jdbcType="INTEGER"/>
-        <result property="bindingState" column="binding_state" jdbcType="INTEGER"/>
-        <result property="note" column="note" jdbcType="VARCHAR"/>
-        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="deviceSerial" column="device_serial" jdbcType="VARCHAR"/>
+            <result property="devicesCode" column="devices_code" jdbcType="VARCHAR"/>
+            <result property="deviceName" column="device_name" jdbcType="VARCHAR"/>
+            <result property="deviceType" column="device_type" jdbcType="VARCHAR"/>
+            <result property="equipmentStatus" column="equipment_status" jdbcType="INTEGER"/>
+            <result property="isEncrypt" column="is_encrypt" jdbcType="INTEGER"/>
+            <result property="workState" column="work_state" jdbcType="INTEGER"/>
+            <result property="bindingState" column="binding_state" jdbcType="INTEGER"/>
+            <result property="note" column="note" jdbcType="VARCHAR"/>
+            <result property="addTime" column="add_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="netAddress" column="net_address" jdbcType="VARCHAR"/>
     </resultMap>
     <select id="listMonitorByKeyword" resultType="com.sandu.ximon.dao.domain.Monitor">
         SELECT    * FROM   (SELECT    * FROM    (SELECT    * FROM    monitor AS table1
@@ -25,5 +28,4 @@
         WHERE binding_state = #{bindingState1} OR binding_state = #{bindingState2};
     </select>
 
-
-</mapper>
\ No newline at end of file
+</mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
index 44647ba..1f5908d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MonitorController.java
@@ -5,6 +5,7 @@
 import com.sandu.ximon.admin.param.MonitorParam;
 import com.sandu.ximon.admin.service.MonitorService;
 import com.sandu.ximon.dao.domain.Monitor;
+import com.sandu.ximon.dao.domain.YSY_MonitorDto;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
@@ -36,6 +37,13 @@
         return ResponseUtil.successPage(list);
     }
 
+
+    /**
+     * 鍒犻櫎鏁版嵁搴撲腑钀ょ煶浜戞憚鍍忓ご
+     *
+     * @param id
+     * @return
+     */
     @PostMapping("/delete/{id}")
     public ResponseVO<Object> deleteMonitor(@PathVariable Long id) {
         boolean result = monitorService.deleteMonitor(id);
@@ -45,4 +53,127 @@
             return ResponseUtil.fail("鎿嶄綔澶辫触");
         }
     }
+
+    /**
+     * 鑾峰彇钀ょ煶浜慉ccessToken
+     *
+     * @return AccessToken
+     */
+    @GetMapping("/getAccessToken")
+    public ResponseVO<Object> getAccessToken() {
+        return ResponseUtil.success(monitorService.getAccessToken());
+    }
+
+    /**
+     * 娣诲姞钀ょ煶浜戞憚鍍忓ご
+     *
+     * @param monitorParam 娣诲姞鎽勫儚澶寸粨鏋�
+     * @return
+     */
+    @GetMapping("/addYSYMonitor")
+    public ResponseVO<Object> addYSYMonitor(@RequestBody MonitorParam monitorParam) {
+        YSY_MonitorDto addMonitorDto = monitorService.addYSYMonitor(monitorParam.getAccessToken(), monitorParam.getDeviceSerial(), monitorParam.getValidateCode());
+
+        if ("200".equals(addMonitorDto.getCode())) {
+            return ResponseUtil.success(addMonitorDto);
+        } else if ("20017".equals(addMonitorDto.getCode())) {
+            //宸茬粡琚嚜宸辨坊鍔犵殑鎽勫儚澶撮渶瑕佹坊鍔犲埌鏁版嵁搴�
+            getYSYMonitorInfoAndaddMonitorToTable(monitorParam);
+            return ResponseUtil.error(20017, addMonitorDto.getMsg());
+        } else {
+            return ResponseUtil.fail(addMonitorDto.getMsg());
+        }
+    }
+
+    /**
+     * 鍒犻櫎钀ょ煶浜戞憚鍍忓ご
+     *
+     * @param monitorParam 娣诲姞鎽勫儚澶寸粨鏋�
+     * @return
+     */
+    @GetMapping("/deleteYSYMonitor")
+    public ResponseVO<Object> deleteYSYMonitor(@RequestBody MonitorParam monitorParam) {
+        YSY_MonitorDto addMonitorDto = monitorService.deleteYSYMonitor(monitorParam.getAccessToken(), monitorParam.getDeviceSerial());
+
+        if ("200".equals(addMonitorDto.getCode())) {
+            return ResponseUtil.success(addMonitorDto);
+        } else {
+            return ResponseUtil.fail(addMonitorDto.getMsg());
+        }
+    }
+
+    /**
+     * 鑾峰彇鍗曚釜璁惧淇℃伅   getYSYMonitorInfo
+     */
+    @GetMapping("/getYSYMonitorInfo")
+    public ResponseVO<Object> getYSYMonitorInfo(@RequestBody MonitorParam monitorParam) {
+        YSY_MonitorDto getMonitorDto = monitorService.getYSYMonitorInfo(monitorParam.getAccessToken(), monitorParam.getDeviceSerial());
+
+        if ("200".equals(getMonitorDto.getCode())) {
+            return ResponseUtil.success(getMonitorDto.getData());
+        } else {
+            return ResponseUtil.fail(getMonitorDto.getMsg());
+        }
+    }
+
+
+    /**
+     * 鑾峰彇鍗曚釜璁惧淇℃伅骞朵笖瀛樺偍鍒版暟鎹簱
+     *
+     * @param monitorParam
+     * @return
+     */
+    @GetMapping("/getYSYMonitorInfoAndaddMonitorToTable")
+    public ResponseVO<Object> getYSYMonitorInfoAndaddMonitorToTable(@RequestBody MonitorParam monitorParam) {
+        YSY_MonitorDto getMonitorDto = monitorService.getYSYMonitorInfo(monitorParam.getAccessToken(), monitorParam.getDeviceSerial());
+
+        if ("200".equals(getMonitorDto.getCode())) {
+            Monitor monitor = new Monitor();
+            monitor.setDeviceSerial(getMonitorDto.getData().getDeviceSerial());
+            monitor.setDevicesCode(monitorParam.getValidateCode());
+            monitor.setDeviceName(getMonitorDto.getData().getDeviceName());
+            monitor.setDeviceType(getMonitorDto.getData().getModel());
+            monitor.setEquipmentStatus(getMonitorDto.getData().getStatus());
+            monitor.setIsEncrypt(getMonitorDto.getData().getIsEncrypt());
+            monitor.setAddTime(getMonitorDto.getData().getUpdateTime());
+            monitor.setNetAddress(getMonitorDto.getData().getNetAddress());
+            boolean flag = monitorService.addMonitorInfoToTable(monitor);
+
+            if (flag) {
+                return ResponseUtil.success("鍌ㄥ瓨鎽勫儚澶磋澶囦俊鎭垚鍔燂紒");
+            } else {
+
+                return ResponseUtil.fail("鍌ㄥ瓨鎽勫儚澶磋澶囦俊鎭け璐�!");
+            }
+
+        } else {
+            return ResponseUtil.fail(getMonitorDto.getMsg());
+        }
+    }
+
+
+    /**
+     * 	缂栬緫鎽勫儚澶磋澶囦俊鎭�
+     */
+    /**
+     * 鑾峰彇鍗曚釜璁惧淇℃伅   getYSYMonitorInfo
+     */
+    @PostMapping("/UpDateMonitorInfo")
+    public ResponseVO<Object> UpDateMonitorInfo(@RequestBody MonitorParam monitorParam) {
+        Monitor monitor = new Monitor();
+        monitor.setId(monitorParam.getId());
+        monitor.setDeviceSerial(monitorParam.getDeviceSerial());
+        monitor.setDevicesCode(monitorParam.getDevicesCode());
+        monitor.setWorkState(monitorParam.getWorkState());
+        monitor.setNote(monitorParam.getNote());
+
+        boolean falg = monitorService.upDateMonitorInfo(monitorParam);
+
+        if (falg) {
+            return ResponseUtil.success("鏇存柊鏁版嵁鎴愬姛");
+        } else {
+            return ResponseUtil.fail("鏇存柊鏁版嵁澶辫触");
+        }
+    }
+
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java
index e5e7b4f..1f0c4f3 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/param/MonitorParam.java
@@ -1,15 +1,31 @@
 package com.sandu.ximon.admin.param;
 
+import com.sandu.ximon.dao.domain.Monitor;
 import lombok.Data;
 
 import javax.validation.constraints.NotEmpty;
+import java.io.Serializable;
 
 @Data
-public class MonitorParam {
+public class MonitorParam extends Monitor implements Serializable {
 
     private String keyword;
     @NotEmpty
-    private int equipmentState;
+    private Integer equipmentState;
     @NotEmpty
-    private int bindingState;
+    private Integer bindingState;
+
+    /**
+     * +
+     * 寮�濮嬭悿鐭充簯鎽勫儚澶寸浉鍏冲弬鏁�
+     */
+    //鎺堟潈杩囩▼鑾峰彇鐨刟ccess_token
+    private String accessToken;
+    //璁惧搴忓垪鍙�,瀛樺湪鑻辨枃瀛楁瘝鐨勮澶囧簭鍒楀彿锛屽瓧姣嶉渶涓哄ぇ鍐�
+    private String deviceSerial;
+    //璁惧楠岃瘉鐮侊紝璁惧鏈鸿韩涓婄殑鍏綅澶у啓瀛楁瘝
+    private String validateCode;
+    /**
+     * 缁撴潫钀ょ煶浜戞憚鍍忓ご鐩稿叧鍙傛暟
+     */
 }
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 0e434a9..c01ff5e 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,43 @@
 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";
 
     /**
      * 鏌ヨ鍏ㄩ儴鎽勫儚澶�
@@ -76,5 +95,110 @@
         return removeById(Id);
     }
 
+    /**
+     * 鑾峰彇钀ょ煶浜慳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 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);
+        }
+    }
+
+    /**
+     * 灏嗘憚鍍忓ご璁惧鐩稿叧淇℃伅鏇存柊鍒版暟鎹簱
+     *
+     * @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);
+    }
+
 
 }

--
Gitblit v1.9.3