Commit c547851487a8e24f93405ace3c0359d0d6790364

Authored by 648540858
1 parent abc65c63

优化zlm上线与下线过时通道的移除

src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
... ... @@ -118,7 +118,7 @@ public class StreamPushServiceImpl implements IStreamPushService {
118 118  
119 119 @Override
120 120 public List<StreamPushItem> getPushList(String mediaServerId) {
121   - return streamPushMapper.selectAllByMediaServerId(mediaServerId);
  121 + return streamPushMapper.selectAllByMediaServerIdWithOutGbID(mediaServerId);
122 122 }
123 123  
124 124 @Override
... ... @@ -204,7 +204,9 @@ public class StreamPushServiceImpl implements IStreamPushService {
204 204 Map<String, MediaItem> streamInfoPushItemMap = new HashMap<>();
205 205 if (pushList.size() > 0) {
206 206 for (StreamPushItem streamPushItem : pushList) {
207   - pushItemMap.put(streamPushItem.getApp() + streamPushItem.getStream(), streamPushItem);
  207 + if (StringUtils.isEmpty(streamPushItem.getGbId())) {
  208 + pushItemMap.put(streamPushItem.getApp() + streamPushItem.getStream(), streamPushItem);
  209 + }
208 210 }
209 211 }
210 212 if (mediaItems.size() > 0) {
... ... @@ -268,7 +270,7 @@ public class StreamPushServiceImpl implements IStreamPushService {
268 270  
269 271 @Override
270 272 public void zlmServerOffline(String mediaServerId) {
271   - List<StreamPushItem> streamPushItems = streamPushMapper.selectAllByMediaServerId(mediaServerId);
  273 + List<StreamPushItem> streamPushItems = streamPushMapper.selectAllByMediaServerIdWithOutGbID(mediaServerId);
272 274 // 移除没有GBId的推流
273 275 streamPushMapper.deleteWithoutGBId(mediaServerId);
274 276 gbStreamMapper.deleteWithoutGBId("push", mediaServerId);
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java
... ... @@ -33,6 +33,14 @@ public interface StreamPushMapper {
33 33 int del(String app, String stream);
34 34  
35 35 @Delete("<script> "+
  36 + "DELETE sp FROM stream_push sp left join gb_stream gs on sp.app = gs.app AND sp.stream = gs.stream where " +
  37 + "<foreach collection='streamPushItems' item='item' separator='or'>" +
  38 + "(sp.app=#{item.app} and sp.stream=#{item.stream} and gs.gbId is null) " +
  39 + "</foreach>" +
  40 + "</script>")
  41 + int delAllWithoutGBId(List<StreamPushItem> streamPushItems);
  42 +
  43 + @Delete("<script> "+
36 44 "DELETE FROM stream_push where " +
37 45 "<foreach collection='streamPushItems' item='item' separator='or'>" +
38 46 "(app=#{item.app} and stream=#{item.stream}) " +
... ... @@ -62,10 +70,13 @@ public interface StreamPushMapper {
62 70 @Delete("DELETE FROM stream_push")
63 71 void clear();
64 72  
65   - @Delete("DELETE FROM stream_push WHERE mediaServerId=#{mediaServerId}")
  73 + @Delete("DELETE sp FROM stream_push sp left join gb_stream gs on gs.app = sp.app and gs.stream= sp.stream WHERE sp.mediaServerId=#{mediaServerId} and gs.gbId is null ")
66 74 void deleteWithoutGBId(String mediaServerId);
67 75  
68 76 @Select("SELECT * FROM stream_push WHERE mediaServerId=#{mediaServerId}")
69 77 List<StreamPushItem> selectAllByMediaServerId(String mediaServerId);
70 78  
  79 + @Select("SELECT sp.* FROM stream_push sp left join gb_stream gs on gs.app = sp.app and gs.stream= sp.stream WHERE sp.mediaServerId=#{mediaServerId} and gs.gbId is null")
  80 + List<StreamPushItem> selectAllByMediaServerIdWithOutGbID(String mediaServerId);
  81 +
71 82 }
... ...
src/main/resources/application-dev.yml
... ... @@ -20,7 +20,7 @@ spring:
20 20 datasource:
21 21 # 使用mysql 打开23-28行注释, 删除29-36行
22 22 name: wvp
23   - url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&allowMultiQueries=true
  23 + url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&allowMultiQueries=true&useSSL=false
24 24 username:
25 25 password:
26 26 type: com.alibaba.druid.pool.DruidDataSource
... ...
src/main/resources/application-docker.yml
... ... @@ -20,7 +20,7 @@ spring:
20 20 datasource:
21 21 # 使用mysql 打开23-28行注释, 删除29-36行
22 22 name: wvp
23   - url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&allowMultiQueries=true
  23 + url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&allowMultiQueries=true&useSSL=false
24 24 username: root
25 25 password: root
26 26 type: com.alibaba.druid.pool.DruidDataSource
... ...