From 81f69eb6f47b69cd89da7621889629f4f456dce1 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 12 七月 2022 17:33:17 +0800 Subject: [PATCH] 支持从redis消息更新推流设备状态 --- src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 42 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java index 6c1e72d..bcf57a6 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java @@ -2,6 +2,7 @@ import com.genersoft.iot.vmp.gb28181.bean.GbStream; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; +import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis; import org.apache.ibatis.annotations.*; // import org.omg.PortableInterceptor.INACTIVE; import org.springframework.stereotype.Repository; @@ -117,4 +118,45 @@ "SET status=#{status} " + "WHERE mediaServerId=#{mediaServerId}") void updateStatusByMediaServerId(String mediaServerId, boolean status); + + + @Select("<script> "+ + "SELECT gs.* FROM stream_push sp left join gb_stream gs on sp.app = gs.app AND sp.stream = gs.stream " + + "where sp.status = 1 and (gs.app, gs.stream) in" + + "<foreach collection='offlineStreams' item='item' separator=','>" + + "(#{item.app}, {item.stream}) " + + "</foreach>" + + "</script>") + List<GbStream> getOnlinePusherForGbInList(List<StreamPushItemFromRedis> offlineStreams); + + @Update("<script> "+ + "UPDATE stream_push SET status=0 where (app, stream) in" + + "<foreach collection='offlineStreams' item='item' separator=','>" + + "(#{item.app}, {item.stream}) " + + "</foreach>" + + "</script>") + void offline(List<StreamPushItemFromRedis> offlineStreams); + + @Select("<script> "+ + "SELECT * FROM stream_push sp left join gb_stream gs on sp.app = gs.app AND sp.stream = gs.stream " + + "where sp.status = 0 and (gs.app, gs.stream) in" + + "<foreach collection='offlineStreams' item='item' separator=','>" + + "(#{item.app}, {item.stream}) " + + "</foreach>" + + "</script>") + List<GbStream> getOfflinePusherForGbInList(List<StreamPushItemFromRedis> onlineStreams); + + @Update("<script> "+ + "UPDATE stream_push SET status=1 where (app, stream) in" + + "<foreach collection='offlineStreams' item='item' separator=','>" + + "(#{item.app}, {item.stream}) " + + "</foreach>" + + "</script>") + void online(List<StreamPushItemFromRedis> onlineStreams); + + @Select("SELECT gs.* FROM stream_push sp left join gb_stream gs on sp.app = gs.app AND sp.stream = gs.stream") + List<GbStream> getOnlinePusherForGb(); + + @Update("UPDATE stream_push SET status=0") + void allStreamOffline(); } -- Gitblit v1.8.0