From 80d2edeef25f752e0a80a6cff99e38f61c2d2cb2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 18 十月 2022 13:07:38 +0800
Subject: [PATCH] 优化sip消息构建,去除ServerTransaction的使用

---
 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java |  141 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 139 insertions(+), 2 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 aab8d77..278392b 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
@@ -13,7 +13,32 @@
 @Repository
 public interface DeviceMapper {
 
-    @Select("SELECT * FROM device WHERE deviceId = #{deviceId}")
+    @Select("SELECT " +
+            "deviceId, " +
+            "coalesce(custom_name, name) as name, " +
+            "manufacturer, " +
+            "model, " +
+            "firmware, " +
+            "transport," +
+            "streamMode," +
+            "ip," +
+            "port," +
+            "hostAddress," +
+            "expires," +
+            "registerTime," +
+            "keepaliveTime," +
+            "createTime," +
+            "updateTime," +
+            "charset," +
+            "subscribeCycleForCatalog," +
+            "subscribeCycleForMobilePosition," +
+            "mobilePositionSubmissionInterval," +
+            "subscribeCycleForAlarm," +
+            "ssrcCheck," +
+            "geoCoordSys," +
+            "treeType," +
+            "online" +
+            " FROM device WHERE deviceId = #{deviceId}")
     Device getDeviceByDeviceId(String deviceId);
 
     @Insert("INSERT INTO device (" +
@@ -37,6 +62,9 @@
                 "subscribeCycleForMobilePosition," +
                 "mobilePositionSubmissionInterval," +
                 "subscribeCycleForAlarm," +
+                "ssrcCheck," +
+                "geoCoordSys," +
+                "treeType," +
                 "online" +
             ") VALUES (" +
                 "#{deviceId}," +
@@ -59,6 +87,9 @@
                 "#{subscribeCycleForMobilePosition}," +
                 "#{mobilePositionSubmissionInterval}," +
                 "#{subscribeCycleForAlarm}," +
+                "#{ssrcCheck}," +
+                "#{geoCoordSys}," +
+                "#{treeType}," +
                 "#{online}" +
             ")")
     int add(Device device);
@@ -84,11 +115,40 @@
                 "<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);
 
-    @Select("SELECT *, (SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount  FROM device de")
+    @Select("SELECT " +
+            "deviceId, " +
+            "coalesce(custom_name, name) as name, " +
+            "manufacturer, " +
+            "model, " +
+            "firmware, " +
+            "transport," +
+            "streamMode," +
+            "ip," +
+            "port," +
+            "hostAddress," +
+            "expires," +
+            "registerTime," +
+            "keepaliveTime," +
+            "createTime," +
+            "updateTime," +
+            "charset," +
+            "subscribeCycleForCatalog," +
+            "subscribeCycleForMobilePosition," +
+            "mobilePositionSubmissionInterval," +
+            "subscribeCycleForAlarm," +
+            "ssrcCheck," +
+            "geoCoordSys," +
+            "treeType," +
+            "online," +
+            "(SELECT count(0) FROM device_channel WHERE deviceId=de.deviceId) as channelCount  FROM device de")
     List<Device> getDevices();
 
     @Delete("DELETE FROM device WHERE deviceId=#{deviceId}")
@@ -96,4 +156,81 @@
 
     @Update("UPDATE device SET online=0")
     int outlineForAll();
+
+    @Select("SELECT " +
+            "deviceId, " +
+            "coalesce(custom_name, name) as name, " +
+            "manufacturer, " +
+            "model, " +
+            "firmware, " +
+            "transport," +
+            "streamMode," +
+            "ip," +
+            "port," +
+            "hostAddress," +
+            "expires," +
+            "registerTime," +
+            "keepaliveTime," +
+            "createTime," +
+            "updateTime," +
+            "charset," +
+            "subscribeCycleForCatalog," +
+            "subscribeCycleForMobilePosition," +
+            "mobilePositionSubmissionInterval," +
+            "subscribeCycleForAlarm," +
+            "ssrcCheck," +
+            "geoCoordSys," +
+            "treeType," +
+            "online" +
+            " FROM device WHERE online = 1")
+    List<Device> getOnlineDevices();
+    @Select("SELECT " +
+            "deviceId, " +
+            "coalesce(custom_name, name) as name, " +
+            "manufacturer, " +
+            "model, " +
+            "firmware, " +
+            "transport," +
+            "streamMode," +
+            "ip," +
+            "port," +
+            "hostAddress," +
+            "expires," +
+            "registerTime," +
+            "keepaliveTime," +
+            "createTime," +
+            "updateTime," +
+            "charset," +
+            "subscribeCycleForCatalog," +
+            "subscribeCycleForMobilePosition," +
+            "mobilePositionSubmissionInterval," +
+            "subscribeCycleForAlarm," +
+            "ssrcCheck," +
+            "geoCoordSys," +
+            "treeType," +
+            "online" +
+            " FROM device WHERE ip = #{host} AND port=${port}")
+    Device getDeviceByHostAndPort(String host, int port);
+
+    @Update(value = {" <script>" +
+            "UPDATE device " +
+            "SET updateTime='${updateTime}'" +
+            "<if test=\"name != null\">, custom_name='${name}'</if>" +
+            "<if test=\"streamMode != null\">, streamMode='${streamMode}'</if>" +
+            "<if test=\"ip != null\">, ip='${ip}'</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>" +
+            "<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 updateCustom(Device device);
 }

--
Gitblit v1.8.0