From 28b5cc39d0a2d9939f70b4c980a31d9b27fc1e4c Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 19 七月 2022 14:27:30 +0800 Subject: [PATCH] 修复更新推流状态sql错误 --- src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 44 insertions(+), 2 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..4f2fbe2 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; @@ -87,10 +88,10 @@ @Insert("<script>" + "Insert IGNORE INTO stream_push (app, stream, totalReaderCount, originType, originTypeStr, " + - "createTime, aliveSecond, mediaServerId) " + + "createTime, aliveSecond, mediaServerId, status) " + "VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" + "( '${item.app}', '${item.stream}', '${item.totalReaderCount}', #{item.originType}, " + - "'${item.originTypeStr}',#{item.createTime}, #{item.aliveSecond}, '${item.mediaServerId}' )" + + "'${item.originTypeStr}',#{item.createTime}, #{item.aliveSecond}, '${item.mediaServerId}', ${item.status} )" + " </foreach>" + "</script>") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") @@ -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='onlineStreams' 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='onlineStreams' 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 where sp.status = 1") + List<GbStream> getOnlinePusherForGb(); + + @Update("UPDATE stream_push SET status=0") + void setAllStreamOffline(); } -- Gitblit v1.8.0