From a82b831b8b2b96dfa5791808f1207500e16697cf Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 04 一月 2023 10:39:40 +0800 Subject: [PATCH] 优化设备状态保持,自动记录心跳间隔,三次心跳失败则设备离线,不在使用设备有效期字段作为唯一判断标准,提高容错能力和稳定性。 --- src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java | 68 +++++++++++++++++++++++++++------ 1 files changed, 55 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java index 278392b..8182e6d 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java @@ -1,6 +1,7 @@ package com.genersoft.iot.vmp.storager.dao; import com.genersoft.iot.vmp.gb28181.bean.Device; +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Repository; @@ -16,12 +17,15 @@ @Select("SELECT " + "deviceId, " + "coalesce(custom_name, name) as name, " + + "password, " + "manufacturer, " + "model, " + "firmware, " + "transport," + "streamMode," + "ip," + + "sdpIp," + + "localIp," + "port," + "hostAddress," + "expires," + @@ -50,11 +54,14 @@ "transport," + "streamMode," + "ip," + + "sdpIp," + + "localIp," + "port," + "hostAddress," + "expires," + "registerTime," + "keepaliveTime," + + "keepaliveIntervalTime," + "createTime," + "updateTime," + "charset," + @@ -75,11 +82,14 @@ "#{transport}," + "#{streamMode}," + "#{ip}," + + "#{sdpIp}," + + "#{localIp}," + "#{port}," + "#{hostAddress}," + "#{expires}," + "#{registerTime}," + "#{keepaliveTime}," + + "#{keepaliveIntervalTime}," + "#{createTime}," + "#{updateTime}," + "#{charset}," + @@ -102,23 +112,15 @@ "<if test=\"model != null\">, model='${model}'</if>" + "<if test=\"firmware != null\">, firmware='${firmware}'</if>" + "<if test=\"transport != null\">, transport='${transport}'</if>" + - "<if test=\"streamMode != null\">, streamMode='${streamMode}'</if>" + "<if test=\"ip != null\">, ip='${ip}'</if>" + + "<if test=\"localIp != null\">, localIp='${localIp}'</if>" + "<if test=\"port != null\">, port=${port}</if>" + "<if test=\"hostAddress != null\">, hostAddress='${hostAddress}'</if>" + "<if test=\"online != null\">, online=${online}</if>" + "<if test=\"registerTime != null\">, registerTime='${registerTime}'</if>" + "<if test=\"keepaliveTime != null\">, keepaliveTime='${keepaliveTime}'</if>" + + "<if test=\"keepaliveIntervalTime != null\">, keepaliveIntervalTime='${keepaliveIntervalTime}'</if>" + "<if test=\"expires != null\">, expires=${expires}</if>" + - "<if test=\"charset != null\">, charset='${charset}'</if>" + - "<if test=\"subscribeCycleForCatalog != null\">, subscribeCycleForCatalog=${subscribeCycleForCatalog}</if>" + - "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" + - "<if test=\"mobilePositionSubmissionInterval != null\">, mobilePositionSubmissionInterval=${mobilePositionSubmissionInterval}</if>" + - "<if test=\"subscribeCycleForAlarm != null\">, subscribeCycleForAlarm=${subscribeCycleForAlarm}</if>" + - "<if test=\"ssrcCheck != null\">, ssrcCheck=${ssrcCheck}</if>" + - "<if test=\"geoCoordSys != null\">, geoCoordSys=#{geoCoordSys}</if>" + - "<if test=\"treeType != null\">, treeType=#{treeType}</if>" + - "<if test=\"mediaServerId != null\">, mediaServerId=#{mediaServerId}</if>" + "WHERE deviceId='${deviceId}'"+ " </script>"}) int update(Device device); @@ -126,12 +128,15 @@ @Select("SELECT " + "deviceId, " + "coalesce(custom_name, name) as name, " + + "password, " + "manufacturer, " + "model, " + "firmware, " + "transport," + "streamMode," + "ip," + + "sdpIp," + + "localIp," + "port," + "hostAddress," + "expires," + @@ -160,12 +165,15 @@ @Select("SELECT " + "deviceId, " + "coalesce(custom_name, name) as name, " + + "password, " + "manufacturer, " + "model, " + "firmware, " + "transport," + "streamMode," + "ip," + + "sdpIp," + + "localIp," + "port," + "hostAddress," + "expires," + @@ -181,18 +189,21 @@ "ssrcCheck," + "geoCoordSys," + "treeType," + - "online" + + "online " + " FROM device WHERE online = 1") List<Device> getOnlineDevices(); @Select("SELECT " + "deviceId, " + "coalesce(custom_name, name) as name, " + + "password, " + "manufacturer, " + "model, " + "firmware, " + "transport," + "streamMode," + "ip," + + "sdpIp," + + "localIp," + "port," + "hostAddress," + "expires," + @@ -216,11 +227,11 @@ "UPDATE device " + "SET updateTime='${updateTime}'" + "<if test=\"name != null\">, custom_name='${name}'</if>" + + "<if test=\"password != null\">, password='${password}'</if>" + "<if test=\"streamMode != null\">, streamMode='${streamMode}'</if>" + "<if test=\"ip != null\">, ip='${ip}'</if>" + + "<if test=\"sdpIp != null\">, sdpIp='${sdpIp}'</if>" + "<if test=\"port != null\">, port=${port}</if>" + - "<if test=\"hostAddress != null\">, hostAddress='${hostAddress}'</if>" + - "<if test=\"online != null\">, online=${online}</if>" + "<if test=\"charset != null\">, charset='${charset}'</if>" + "<if test=\"subscribeCycleForCatalog != null\">, subscribeCycleForCatalog=${subscribeCycleForCatalog}</if>" + "<if test=\"subscribeCycleForMobilePosition != null\">, subscribeCycleForMobilePosition=${subscribeCycleForMobilePosition}</if>" + @@ -233,4 +244,35 @@ "WHERE deviceId='${deviceId}'"+ " </script>"}) int updateCustom(Device device); + + @Insert("INSERT INTO device (" + + "deviceId, " + + "custom_name, " + + "password, " + + "sdpIp, " + + "createTime," + + "updateTime," + + "charset," + + "ssrcCheck," + + "geoCoordSys," + + "treeType," + + "online" + + ") VALUES (" + + "#{deviceId}," + + "#{name}," + + "#{password}," + + "#{sdpIp}," + + "#{createTime}," + + "#{updateTime}," + + "#{charset}," + + "#{ssrcCheck}," + + "#{geoCoordSys}," + + "#{treeType}," + + "#{online}" + + ")") + void addCustomDevice(Device device); + + @Select("select count(1) as total, sum(online) as online from device") + ResourceBaceInfo getOverview(); + } -- Gitblit v1.8.0