648540858
2022-07-12 81f69eb6f47b69cd89da7621889629f4f456dce1
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();
}