From 7e48d847402d2ea4da85af582529de676f30dc38 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 08 五月 2023 17:56:56 +0800
Subject: [PATCH] Merge pull request #844 from xiaoQQya/wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java | 96 +++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 82 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
index db2bb77..ae130cf 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
@@ -2,6 +2,8 @@
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
+import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
+import com.genersoft.iot.vmp.gb28181.bean.PlatformCatalog;
import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
@@ -19,34 +21,100 @@
* 鏌ヨ鍒楄〃閲屽凡缁忓叧鑱旂殑
*/
@Select("<script> "+
- "SELECT deviceAndChannelId FROM platform_gb_channel WHERE platformId='${platformId}' AND deviceAndChannelId in" +
- "<foreach collection='deviceAndChannelIds' open='(' item='id_' separator=',' close=')'> '${id_}'</foreach> ORDER BY deviceAndChannelId ASC" +
+ "SELECT deviceChannelId FROM platform_gb_channel WHERE platformId=#{platformId} AND deviceChannelId in" +
+ "<foreach collection='channelReduces' open='(' item='item' separator=',' close=')'> #{item.id}</foreach>" +
"</script>")
- List<String> findChannelRelatedPlatform(String platformId, List<String> deviceAndChannelIds);
+ List<Integer> findChannelRelatedPlatform(String platformId, List<ChannelReduce> channelReduces);
@Insert("<script> "+
- "INSERT INTO platform_gb_channel (channelId, deviceId, platformId, deviceAndChannelId) VALUES" +
- "<foreach collection='channelReducesToAdd' item='item' separator=','> ('${item.channelId}','${item.deviceId}', '${platformId}', '${item.deviceId}_${item.channelId}' )</foreach>" +
+ "INSERT INTO platform_gb_channel (platformId, deviceChannelId, catalogId) VALUES" +
+ "<foreach collection='channelReducesToAdd' item='item' separator=','>" +
+ " (#{platformId}, #{item.id} , #{item.catalogId} )" +
+ "</foreach>" +
"</script>")
int addChannels(String platformId, List<ChannelReduce> channelReducesToAdd);
-
@Delete("<script> "+
- "DELETE FROM platform_gb_channel WHERE platformId='${platformId}' AND deviceAndChannelId in" +
- "<foreach collection='channelReducesToDel' item='item' open='(' separator=',' close=')' > '${item.deviceId}_${item.channelId}'</foreach>" +
+ "DELETE FROM platform_gb_channel WHERE platformId=#{platformId} AND deviceChannelId in" +
+ "<foreach collection='channelReducesToDel' item='item' open='(' separator=',' close=')' > #{item.id}</foreach>" +
"</script>")
int delChannelForGB(String platformId, List<ChannelReduce> channelReducesToDel);
@Delete("<script> "+
- "DELETE FROM platform_gb_channel WHERE platformId='${platformId}'" +
+ "DELETE FROM platform_gb_channel WHERE deviceChannelId in " +
+ "( select temp.deviceChannelId from " +
+ "(select pgc.deviceChannelId from platform_gb_channel pgc " +
+ "left join device_channel dc on dc.id = pgc.deviceChannelId where dc.deviceId =#{deviceId} " +
+ ") temp)" +
+ "</script>")
+ int delChannelForDeviceId(String deviceId);
+
+ @Delete("<script> "+
+ "DELETE FROM platform_gb_channel WHERE platformId=#{platformId}" +
"</script>")
int cleanChannelForGB(String platformId);
+ @Select("SELECT dc.* FROM platform_gb_channel pgc left join device_channel dc on dc.id = pgc.deviceChannelId WHERE dc.channelId=#{channelId} and pgc.platformId=#{platformId}")
+ List<DeviceChannel> queryChannelInParentPlatform(String platformId, String channelId);
- @Select("SELECT * FROM device_channel WHERE deviceId = (SELECT deviceId FROM platform_gb_channel WHERE " +
- "platformId='${platformId}' AND channelId='${channelId}' ) AND channelId='${channelId}'")
- DeviceChannel queryChannelInParentPlatform(String platformId, String channelId);
+ @Select("SELECT dc.* FROM platform_gb_channel pgc left join device_channel dc on dc.id = pgc.deviceChannelId WHERE pgc.platformId=#{platformId} and pgc.catalogId=#{catalogId}")
+ List<DeviceChannel> queryAllChannelInCatalog(String platformId, String catalogId);
- @Select("SELECT * FROM device WHERE deviceId = (SELECT deviceId FROM platform_gb_channel WHERE platformId='${platformId}' AND channelId='${channelId}')")
- Device queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId);
+ @Select(" select dc.channelId as id, dc.name as name, pgc.platformId as platformId, pgc.catalogId as parentId, 0 as childrenCount, 1 as type " +
+ " from device_channel dc left join platform_gb_channel pgc on dc.id = pgc.deviceChannelId " +
+ " where pgc.platformId=#{platformId} and pgc.catalogId=#{catalogId}")
+ List<PlatformCatalog> queryChannelInParentPlatformAndCatalog(String platformId, String catalogId);
+
+ @Select("select d.*\n" +
+ "from platform_gb_channel pgc\n" +
+ " left join device_channel dc on dc.id = pgc.deviceChannelId\n" +
+ " left join device d on dc.deviceId = d.deviceId\n" +
+ "where dc.channelId = #{channelId} and pgc.platformId=#{platformId}")
+ List<Device> queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId);
+
+ @Delete("<script> "+
+ "DELETE FROM platform_gb_channel WHERE catalogId=#{id}" +
+ "</script>")
+ int delByCatalogId(String id);
+
+ @Delete("<script> "+
+ "DELETE FROM platform_gb_channel WHERE catalogId=#{parentId} AND platformId=#{platformId} AND channelId=#{id}" +
+ "</script>")
+ int delByCatalogIdAndChannelIdAndPlatformId(PlatformCatalog platformCatalog);
+
+ @Select("<script> " +
+ "SELECT " +
+ "pp.* " +
+ "FROM " +
+ "parent_platform pp " +
+ "left join platform_gb_channel pgc on " +
+ "pp.serverGBId = pgc.platformId " +
+ "left join device_channel dc on " +
+ "dc.id = pgc.deviceChannelId " +
+ "WHERE " +
+ "dc.channelId = #{channelId} and pp.status = true " +
+ "AND pp.serverGBId IN" +
+ "<foreach collection='platforms' item='item' open='(' separator=',' close=')' > #{item}</foreach>" +
+ "</script> ")
+ List<ParentPlatform> queryPlatFormListForGBWithGBId(String channelId, List<String> platforms);
+
+ @Delete("<script> " +
+ "DELETE FROM platform_gb_channel WHERE platformId=#{serverGBId}" +
+ "</script>")
+ void delByPlatformId(String serverGBId);
+
+ @Delete("<script> " +
+ "DELETE FROM platform_gb_channel WHERE platformId=#{platformId} and catalogId=#{catalogId}" +
+ "</script>")
+ int delChannelForGBByCatalogId(String platformId, String catalogId);
+
+ @Select("select dc.channelId deviceId,dc.name,d.manufacturer,d.model,d.firmware\n" +
+ "from platform_gb_channel pgc\n" +
+ " left join device_channel dc on dc.id = pgc.deviceChannelId\n" +
+ " left join device d on dc.deviceId = d.deviceId\n" +
+ "where dc.channelId = #{channelId} and pgc.platformId=#{platformId}")
+ List<Device> queryDeviceInfoByPlatformIdAndChannelId(String platformId, String channelId);
+
+ @Select("SELECT pgc.platformId FROM platform_gb_channel pgc left join device_channel dc on dc.id = pgc.deviceChannelId WHERE dc.channelId='${channelId}'")
+ List<String> queryParentPlatformByChannelId(String channelId);
}
--
Gitblit v1.8.0