From 468e2b2ffbbb4e15dea11d1f9c7451a8097a3ab8 Mon Sep 17 00:00:00 2001 From: xiaoQQya <xiaoQQya@126.com> Date: 星期日, 09 七月 2023 20:22:40 +0800 Subject: [PATCH] fix(play): 修复作为上级平台点播截取快照问题 --- 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..3aeb0e0 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 device_channel_id from wvp_platform_gb_channel WHERE platform_id=#{platformId} AND device_channel_id 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 wvp_platform_gb_channel (platform_id, device_channel_id, catalog_id) 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 wvp_platform_gb_channel WHERE platform_id=#{platformId} AND device_channel_id 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 wvp_platform_gb_channel WHERE device_channel_id in " + + "( select temp.device_channel_id from " + + "(select pgc.device_channel_id from wvp_platform_gb_channel pgc " + + "left join wvp_device_channel dc on dc.id = pgc.device_channel_id where dc.device_id =#{deviceId} " + + ") temp)" + + "</script>") + int delChannelForDeviceId(String deviceId); + + @Delete("<script> "+ + "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId}" + "</script>") int cleanChannelForGB(String platformId); + @Select("SELECT dc.* from wvp_platform_gb_channel pgc left join wvp_device_channel dc on dc.id = pgc.device_channel_id WHERE dc.channel_id=#{channelId} and pgc.platform_id=#{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 wvp_platform_gb_channel pgc left join wvp_device_channel dc on dc.id = pgc.device_channel_id WHERE pgc.platform_id=#{platformId} and pgc.catalog_id=#{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.channel_id as id, dc.name as name, pgc.platform_id as platform_id, pgc.catalog_id as parent_id, 0 as children_count, 1 as type " + + " from wvp_device_channel dc left join wvp_platform_gb_channel pgc on dc.id = pgc.device_channel_id " + + " where pgc.platform_id=#{platformId} and pgc.catalog_id=#{catalogId}") + List<PlatformCatalog> queryChannelInParentPlatformAndCatalog(String platformId, String catalogId); + + @Select("select d.*\n" + + "from wvp_platform_gb_channel pgc\n" + + " left join wvp_device_channel dc on dc.id = pgc.device_channel_id\n" + + " left join wvp_device d on dc.device_id = d.device_id\n" + + "where dc.channel_id = #{channelId} and pgc.platform_id=#{platformId}") + List<Device> queryVideoDeviceByPlatformIdAndChannelId(String platformId, String channelId); + + @Delete("<script> "+ + "DELETE from wvp_platform_gb_channel WHERE catalog_id=#{id}" + + "</script>") + int delByCatalogId(String id); + + @Delete("<script> "+ + "DELETE from wvp_platform_gb_channel WHERE catalog_id=#{parentId} AND platform_id=#{platformId} AND channel_id=#{id}" + + "</script>") + int delByCatalogIdAndChannelIdAndPlatformId(PlatformCatalog platformCatalog); + + @Select("<script> " + + "SELECT " + + "pp.* " + + "FROM " + + "wvp_platform pp " + + "left join wvp_platform_gb_channel pgc on " + + "pp.server_gb_id = pgc.platform_id " + + "left join wvp_device_channel dc on " + + "dc.id = pgc.device_channel_id " + + "WHERE " + + "dc.channel_id = #{channelId} and pp.status = true " + + "AND pp.server_gb_id IN" + + "<foreach collection='platforms' item='item' open='(' separator=',' close=')' > #{item}</foreach>" + + "</script> ") + List<ParentPlatform> queryPlatFormListForGBWithGBId(String channelId, List<String> platforms); + + @Delete("<script> " + + "DELETE from wvp_platform_gb_channel WHERE platform_id=#{serverGBId}" + + "</script>") + void delByPlatformId(String serverGBId); + + @Delete("<script> " + + "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId} and catalog_id=#{catalogId}" + + "</script>") + int delChannelForGBByCatalogId(String platformId, String catalogId); + + @Select("select dc.channel_id dc.device_id,dc.name,d.manufacturer,d.model,d.firmware\n" + + "from wvp_platform_gb_channel pgc\n" + + " left join wvp_device_channel dc on dc.id = pgc.device_channel_id\n" + + " left join wvp_device d on dc.device_id = d.device_id\n" + + "where dc.channel_id = #{channelId} and pgc.platform_id=#{platformId}") + List<Device> queryDeviceInfoByPlatformIdAndChannelId(String platformId, String channelId); + + @Select("SELECT pgc.platform_id from wvp_platform_gb_channel pgc left join wvp_device_channel dc on dc.id = pgc.device_channel_id WHERE dc.channel_id='${channelId}'") + List<String> queryParentPlatformByChannelId(String channelId); } -- Gitblit v1.8.0