From 1de344674afd6bb35b51b165bbad76dbe6299b7e Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 28 三月 2024 18:08:33 +0800 Subject: [PATCH] 使用冒号分隔redis的key --- src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java | 105 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 89 insertions(+), 16 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 old mode 100644 new mode 100755 index db2bb77..f5ce3f0 --- 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,10 +2,13 @@ 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; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; @@ -19,34 +22,104 @@ * 鏌ヨ鍒楄〃閲屽凡缁忓叧鑱旂殑 */ @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(@Param("platformId") String platformId, @Param("channelReduces") 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); - + int addChannels(@Param("platformId") String platformId, @Param("channelReducesToAdd") 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); + int delChannelForGB(@Param("platformId") String platformId, @Param("channelReducesToDel") 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(@Param("platformId") String platformId, @Param("channelId") 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("<script> "+ + "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} " + + " <if test='catalogId != null' > and pgc.catalog_id=#{catalogId}</if>" + + "</script>") + List<DeviceChannel> queryAllChannelInCatalog(@Param("platformId") String platformId, @Param("catalogId") 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(@Param("platformId") String platformId, @Param("catalogId") 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(@Param("platformId") String platformId, @Param("channelId") String channelId); + + @Delete("<script> "+ + "DELETE from wvp_platform_gb_channel WHERE platform_id=#{platformId} and catalog_id=#{id}" + + "</script>") + int delByCatalogId(@Param("platformId") String platformId, @Param("id") 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(@Param("channelId") String channelId, @Param("platforms") 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} " + + " <if test=\"catalogId != null\" > and catalog_id=#{catalogId}</if>" + + "</script>") + int delChannelForGBByCatalogId(@Param("platformId") String platformId, @Param("catalogId") 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(@Param("platformId") String platformId, @Param("channelId") 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(@Param("channelId") String channelId); } -- Gitblit v1.8.0