From e6790d88fc5b1ac33d239c0d90ce6cdea666b821 Mon Sep 17 00:00:00 2001
From: mk1990 <153958232@qq.com>
Date: 星期一, 16 五月 2022 10:14:24 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0' of https://github.com/mk1990/wvp-GB28181-pro into wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java |   91 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 87 insertions(+), 4 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 da455fb..37d951e 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,24 +1,107 @@
 package com.genersoft.iot.vmp.storager.dao;
 
 import com.genersoft.iot.vmp.gb28181.bean.Device;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
+/**
+ * 鐢ㄤ簬瀛樺偍璁惧淇℃伅
+ */
 @Mapper
+@Repository
 public interface DeviceMapper {
 
     @Select("SELECT * FROM device WHERE deviceId = #{deviceId}")
     Device getDeviceByDeviceId(String deviceId);
 
-    @Insert("SELECT * FROM device WHERE deviceId = #{deviceId}")
+    @Insert("INSERT INTO device (" +
+                "deviceId, " +
+                "name, " +
+                "manufacturer, " +
+                "model, " +
+                "firmware, " +
+                "transport," +
+                "streamMode," +
+                "ip," +
+                "port," +
+                "hostAddress," +
+                "expires," +
+                "registerTime," +
+                "keepaliveTime," +
+                "createTime," +
+                "updateTime," +
+                "charset," +
+                "subscribeCycleForCatalog," +
+                "subscribeCycleForMobilePosition," +
+                "mobilePositionSubmissionInterval," +
+                "subscribeCycleForAlarm," +
+                "ssrcCheck," +
+                "online" +
+            ") VALUES (" +
+                "#{deviceId}," +
+                "#{name}," +
+                "#{manufacturer}," +
+                "#{model}," +
+                "#{firmware}," +
+                "#{transport}," +
+                "#{streamMode}," +
+                "#{ip}," +
+                "#{port}," +
+                "#{hostAddress}," +
+                "#{expires}," +
+                "#{registerTime}," +
+                "#{keepaliveTime}," +
+                "#{createTime}," +
+                "#{updateTime}," +
+                "#{charset}," +
+                "#{subscribeCycleForCatalog}," +
+                "#{subscribeCycleForMobilePosition}," +
+                "#{mobilePositionSubmissionInterval}," +
+                "#{subscribeCycleForAlarm}," +
+                "#{ssrcCheck}," +
+                "#{online}" +
+            ")")
     int add(Device device);
 
+    @Update(value = {" <script>" +
+                "UPDATE device " +
+                "SET updateTime='${updateTime}'" +
+                "<if test=\"name != null\">, name='${name}'</if>" +
+                "<if test=\"manufacturer != null\">, manufacturer='${manufacturer}'</if>" +
+                "<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=\"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=\"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>" +
+                "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")
     List<Device> getDevices();
 
+    @Delete("DELETE FROM device WHERE deviceId=#{deviceId}")
     int del(String deviceId);
+
+    @Update("UPDATE device SET online=0")
+    int outlineForAll();
+
+    @Select("SELECT * FROM device WHERE online = 1")
+    List<Device> getOnlineDevices();
+    @Select("SELECT * FROM device WHERE ip = #{host} AND port=${port}")
+    Device getDeviceByHostAndPort(String host, int port);
 }

--
Gitblit v1.8.0