Commit 9e397ba9f6a967e147d7c994a0ab82c8fc58e9be

Authored by 648540858
1 parent 7f5a18d6

移除共享所有直播流功能

sql/mysql.sql
... ... @@ -328,7 +328,6 @@ CREATE TABLE `parent_platform` (
328 328 `ptz` int DEFAULT NULL,
329 329 `rtcp` int DEFAULT NULL,
330 330 `status` bit(1) DEFAULT NULL,
331   - `shareAllLiveStream` int DEFAULT NULL,
332 331 `startOfflinePush` int DEFAULT '0',
333 332 `administrativeDivision` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
334 333 `catalogGroup` int DEFAULT '1',
... ...
sql/update.sql
... ... @@ -56,6 +56,8 @@ alter table stream_push
56 56 alter table stream_push
57 57 add updateTime varchar(50) default null;
58 58 alter table stream_push
  59 + add pushIng int DEFAULT NULL;
  60 +alter table stream_push
59 61 change createStamp createTime varchar(50) default null;
60 62  
61 63 alter table gb_stream
... ... @@ -68,6 +70,7 @@ update user set pushKey='453df297a57a5a7438934sda801fc3' where id=1;
68 70 alter table parent_platform
69 71 add treeType varchar(50) not null;
70 72 update parent_platform set parent_platform.treeType='BusinessGroup';
  73 +alter table parent_platform drop shareAllLiveStream;
71 74  
72 75 alter table platform_catalog
73 76 add civilCode varchar(50) default null;
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
... ... @@ -105,11 +105,6 @@ public class ParentPlatform {
105 105 private int channelCount;
106 106  
107 107 /**
108   - * 共享所有的直播流
109   - */
110   - private boolean shareAllLiveStream;
111   -
112   - /**
113 108 * 默认目录Id,自动添加的通道多放在这个目录下
114 109 */
115 110 private String catalogId;
... ... @@ -319,15 +314,6 @@ public class ParentPlatform {
319 314 this.channelCount = channelCount;
320 315 }
321 316  
322   -
323   - public boolean isShareAllLiveStream() {
324   - return shareAllLiveStream;
325   - }
326   -
327   - public void setShareAllLiveStream(boolean shareAllLiveStream) {
328   - this.shareAllLiveStream = shareAllLiveStream;
329   - }
330   -
331 317 public String getCatalogId() {
332 318 return catalogId;
333 319 }
... ...
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
... ... @@ -116,6 +116,7 @@ public class ZLMMediaListManager {
116 116 // 查找此直播流是否存在redis预设gbId
117 117 StreamPushItem transform = streamPushService.transform(mediaItem);
118 118 StreamPushItem pushInDb = streamPushService.getPush(mediaItem.getApp(), mediaItem.getStream());
  119 + transform.setPushIng(true);
119 120 transform.setUpdateTime(DateUtil.getNow());
120 121 transform.setPushTime(DateUtil.getNow());
121 122 if (pushInDb == null) {
... ... @@ -123,34 +124,7 @@ public class ZLMMediaListManager {
123 124 streamPushMapper.add(transform);
124 125 }else {
125 126 streamPushMapper.update(transform);
126   -
127   -
128   -// if (!StringUtils.isEmpty(pushInDb.getGbId())) {
129   -// List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId());
130   -// if (gbStreamList != null && gbStreamList.size() == 1) {
131   -// transform.setGbStreamId(gbStreamList.get(0).getGbStreamId());
132   -// transform.setPlatformId(gbStreamList.get(0).getPlatformId());
133   -// transform.setCatalogId(gbStreamList.get(0).getCatalogId());
134   -// transform.setGbId(gbStreamList.get(0).getGbId());
135   -// gbStreamMapper.update(transform);
136   -// streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream());
137   -// }else {
138   -// transform.setCreateTime(DateUtil.getNow());
139   -// transform.setUpdateTime(DateUtil.getNow());
140   -// gbStreamMapper.add(transform);
141   -// }
142   - // 通知通道上线
143   -// if (transform != null) {
144   -// if (channelOnlineEvents.get(transform.getGbId()) != null) {
145   -// channelOnlineEvents.get(transform.getGbId()).run(transform.getApp(), transform.getStream(), transform.getServerId());
146   -// channelOnlineEvents.remove(transform.getGbId());
147   -// }
148   -// }
149   -// }
150 127 }
151   -
152   -
153   -
154 128 return transform;
155 129 }
156 130  
... ...
src/main/java/com/genersoft/iot/vmp/media/zlm/dto/StreamPushItem.java
... ... @@ -103,6 +103,11 @@ public class StreamPushItem extends GbStream implements Comparable&lt;StreamPushIte
103 103 */
104 104 private String createTime;
105 105  
  106 + /**
  107 + * 是否正在推流
  108 + */
  109 + private boolean pushIng;
  110 +
106 111 public String getVhost() {
107 112 return vhost;
108 113 }
... ... @@ -277,5 +282,13 @@ public class StreamPushItem extends GbStream implements Comparable&lt;StreamPushIte
277 282 public void setCreateTime(String createTime) {
278 283 this.createTime = createTime;
279 284 }
  285 +
  286 + public boolean isPushIng() {
  287 + return pushIng;
  288 + }
  289 +
  290 + public void setPushIng(boolean pushIng) {
  291 + this.pushIng = pushIng;
  292 + }
280 293 }
281 294  
... ...
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
... ... @@ -156,24 +156,6 @@ public class StreamProxyServiceImpl implements IStreamProxyService {
156 156 result.append(", 关联国标平台[ " + param.getPlatformGbId() + " ]失败");
157 157 }
158 158 }
159   - if (!StringUtils.isEmpty(param.getGbId())) {
160   - // 查找开启了全部直播流共享的上级平台
161   - List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
162   - if (parentPlatforms.size() > 0) {
163   - for (ParentPlatform parentPlatform : parentPlatforms) {
164   - param.setPlatformId(parentPlatform.getServerGBId());
165   - param.setCatalogId(parentPlatform.getCatalogId());
166   -
167   - String stream = param.getStream();
168   - StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(param.getApp(), stream, parentPlatform.getServerGBId());
169   - if (streamProxyItems == null) {
170   - platformGbStreamMapper.add(param);
171   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), param, CatalogEvent.ADD);
172   - }
173   - }
174   - }
175   - }
176   -
177 159 wvpResult.setMsg(result.toString());
178 160 return wvpResult;
179 161 }
... ...
src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java
... ... @@ -134,29 +134,6 @@ public class StreamPushServiceImpl implements IStreamPushService {
134 134 stream.setStatus(true);
135 135 stream.setCreateTime(DateUtil.getNow());
136 136 int add = gbStreamMapper.add(stream);
137   -
138   - // 查找开启了全部直播流共享的上级平台
139   - List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
140   - if (parentPlatforms.size() > 0) {
141   - for (ParentPlatform parentPlatform : parentPlatforms) {
142   - stream.setCatalogId(parentPlatform.getCatalogId());
143   - stream.setPlatformId(parentPlatform.getServerGBId());
144   - String streamId = stream.getStream();
145   - StreamProxyItem streamProxyItem = platformGbStreamMapper.selectOne(stream.getApp(), streamId, parentPlatform.getServerGBId());
146   - if (streamProxyItem == null) {
147   - platformGbStreamMapper.add(stream);
148   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), stream, CatalogEvent.ADD);
149   - }else {
150   - if (!streamProxyItem.getGbId().equals(stream.getGbId())) {
151   - // 此流使用另一个国标Id已经与该平台关联,移除此记录
152   - platformGbStreamMapper.delByAppAndStreamAndPlatform(stream.getApp(), streamId, parentPlatform.getServerGBId());
153   - platformGbStreamMapper.add(stream);
154   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), stream, CatalogEvent.ADD);
155   - }
156   - }
157   - }
158   - }
159   -
160 137 return add > 0;
161 138 }
162 139  
... ... @@ -345,31 +322,6 @@ public class StreamPushServiceImpl implements IStreamPushService {
345 322 public void batchAdd(List<StreamPushItem> streamPushItems) {
346 323 streamPushMapper.addAll(streamPushItems);
347 324 gbStreamMapper.batchAdd(streamPushItems);
348   - // 查找开启了全部直播流共享的上级平台
349   - List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
350   - if (parentPlatforms.size() > 0) {
351   - for (StreamPushItem stream : streamPushItems) {
352   - for (ParentPlatform parentPlatform : parentPlatforms) {
353   - stream.setCatalogId(parentPlatform.getCatalogId());
354   - stream.setPlatformId(parentPlatform.getServerGBId());
355   - String streamId = stream.getStream();
356   - StreamProxyItem streamProxyItem = platformGbStreamMapper.selectOne(stream.getApp(), streamId, parentPlatform.getServerGBId());
357   - if (streamProxyItem == null) {
358   - platformGbStreamMapper.add(stream);
359   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), stream, CatalogEvent.ADD);
360   - }else {
361   - if (!streamProxyItem.getGbId().equals(stream.getGbId())) {
362   - // 此流使用另一个国标Id已经与该平台关联,移除此记录
363   - platformGbStreamMapper.delByAppAndStreamAndPlatform(stream.getApp(), streamId, parentPlatform.getServerGBId());
364   - platformGbStreamMapper.add(stream);
365   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), stream, CatalogEvent.ADD);
366   - stream.setGbId(streamProxyItem.getGbId());
367   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), stream, CatalogEvent.DEL);
368   - }
369   - }
370   - }
371   - }
372   - }
373 325 }
374 326  
375 327 @Override
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
... ... @@ -16,10 +16,10 @@ public interface ParentPlatformMapper {
16 16  
17 17 @Insert("INSERT INTO parent_platform (enable, name, serverGBId, serverGBDomain, serverIP, serverPort, deviceGBId, deviceIp, " +
18 18 " devicePort, username, password, expires, keepTimeout, transport, characterSet, ptz, rtcp, " +
19   - " status, shareAllLiveStream, startOfflinePush, catalogId, administrativeDivision, catalogGroup, createTime, updateTime, treeType) " +
  19 + " status, startOfflinePush, catalogId, administrativeDivision, catalogGroup, createTime, updateTime, treeType) " +
20 20 " VALUES (${enable}, '${name}', '${serverGBId}', '${serverGBDomain}', '${serverIP}', ${serverPort}, '${deviceGBId}', '${deviceIp}', " +
21 21 " '${devicePort}', '${username}', '${password}', '${expires}', '${keepTimeout}', '${transport}', '${characterSet}', ${ptz}, ${rtcp}, " +
22   - " ${status}, ${shareAllLiveStream}, ${startOfflinePush}, #{catalogId}, #{administrativeDivision}, #{catalogGroup}, #{createTime}, #{updateTime}, #{treeType})")
  22 + " ${status}, ${startOfflinePush}, #{catalogId}, #{administrativeDivision}, #{catalogGroup}, #{createTime}, #{updateTime}, #{treeType})")
23 23 int addParentPlatform(ParentPlatform parentPlatform);
24 24  
25 25 @Update("UPDATE parent_platform " +
... ... @@ -41,7 +41,6 @@ public interface ParentPlatformMapper {
41 41 "ptz=#{ptz}, " +
42 42 "rtcp=#{rtcp}, " +
43 43 "status=#{status}, " +
44   - "shareAllLiveStream=#{shareAllLiveStream}, " +
45 44 "startOfflinePush=${startOfflinePush}, " +
46 45 "catalogGroup=#{catalogGroup}, " +
47 46 "administrativeDivision=#{administrativeDivision}, " +
... ... @@ -84,9 +83,6 @@ public interface ParentPlatformMapper {
84 83 @Update("UPDATE parent_platform SET status=#{online} WHERE serverGBId=#{platformGbID}" )
85 84 int updateParentPlatformStatus(String platformGbID, boolean online);
86 85  
87   - @Select("SELECT * FROM parent_platform WHERE shareAllLiveStream=true")
88   - List<ParentPlatform> selectAllAhareAllLiveStream();
89   -
90 86 @Update(value = {" <script>" +
91 87 "UPDATE parent_platform " +
92 88 "SET catalogId=#{catalogId}, updateTime=#{updateTime}" +
... ...
src/main/java/com/genersoft/iot/vmp/storager/dao/StreamPushMapper.java
... ... @@ -15,9 +15,9 @@ import java.util.List;
15 15 public interface StreamPushMapper {
16 16  
17 17 @Insert("INSERT INTO stream_push (app, stream, totalReaderCount, originType, originTypeStr, " +
18   - "pushTime, aliveSecond, mediaServerId, serverId, updateTime, createTime) VALUES" +
  18 + "pushTime, aliveSecond, mediaServerId, serverId, updateTime, createTime, pushIng) VALUES" +
19 19 "('${app}', '${stream}', '${totalReaderCount}', '${originType}', '${originTypeStr}', " +
20   - "'${pushTime}', '${aliveSecond}', '${mediaServerId}' , '${serverId}' , '${updateTime}' , '${createTime}' )")
  20 + "'${pushTime}', '${aliveSecond}', '${mediaServerId}' , '${serverId}' , '${updateTime}' , '${createTime}', ${pushIng} )")
21 21 int add(StreamPushItem streamPushItem);
22 22  
23 23  
... ... @@ -30,6 +30,7 @@ public interface StreamPushMapper {
30 30 "<if test=\"originTypeStr != null\">, originTypeStr='${originTypeStr}'</if>" +
31 31 "<if test=\"pushTime != null\">, pushTime='${pushTime}'</if>" +
32 32 "<if test=\"aliveSecond != null\">, aliveSecond='${aliveSecond}'</if>" +
  33 + "<if test=\"pushIng != null\">, pushIng=${pushIng}</if>" +
33 34 "WHERE app=#{app} AND stream=#{stream}"+
34 35 " </script>"})
35 36 int update(StreamPushItem streamPushItem);
... ... @@ -88,10 +89,11 @@ public interface StreamPushMapper {
88 89  
89 90 @Insert("<script>" +
90 91 "Insert IGNORE INTO stream_push (app, stream, totalReaderCount, originType, originTypeStr, " +
91   - "createTime, aliveSecond, mediaServerId, status) " +
  92 + "createTime, aliveSecond, mediaServerId, status, pushIng) " +
92 93 "VALUES <foreach collection='streamPushItems' item='item' index='index' separator=','>" +
93 94 "( '${item.app}', '${item.stream}', '${item.totalReaderCount}', #{item.originType}, " +
94   - "'${item.originTypeStr}',#{item.createTime}, #{item.aliveSecond}, '${item.mediaServerId}', ${item.status} )" +
  95 + "'${item.originTypeStr}',#{item.createTime}, #{item.aliveSecond}, '${item.mediaServerId}', ${item.status} ," +
  96 + " ${item.pushIng} )" +
95 97 " </foreach>" +
96 98 "</script>")
97 99 @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
... ... @@ -115,6 +117,11 @@ public interface StreamPushMapper {
115 117 int updateStatus(String app, String stream, boolean status);
116 118  
117 119 @Update("UPDATE stream_push " +
  120 + "SET pushIng=${pushIng} " +
  121 + "WHERE app=#{app} AND stream=#{stream}")
  122 + int updatePushStatus(String app, String stream, boolean status);
  123 +
  124 + @Update("UPDATE stream_push " +
118 125 "SET status=#{status} " +
119 126 "WHERE mediaServerId=#{mediaServerId}")
120 127 void updateStatusByMediaServerId(String mediaServerId, boolean status);
... ...
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
... ... @@ -443,20 +443,6 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
443 443 // 更新缓存
444 444 parentPlatformCatch.setParentPlatform(parentPlatform);
445 445 redisCatchStorage.updatePlatformCatchInfo(parentPlatformCatch);
446   - if (parentPlatform.isEnable()) {
447   - // 共享所有视频流,需要将现有视频流添加到此平台
448   - List<GbStream> gbStreams = gbStreamMapper.queryStreamNotInPlatform();
449   - if (gbStreams.size() > 0) {
450   - for (GbStream gbStream : gbStreams) {
451   - gbStream.setCatalogId(parentPlatform.getCatalogId());
452   - }
453   - if (parentPlatform.isShareAllLiveStream()) {
454   - gbStreamService.addPlatformInfo(gbStreams, parentPlatform.getServerGBId(), parentPlatform.getCatalogId());
455   - }else {
456   - gbStreamService.delPlatformInfo(parentPlatform.getServerGBId(), gbStreams);
457   - }
458   - }
459   - }
460 446  
461 447 return result > 0;
462 448 }
... ... @@ -673,24 +659,6 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
673 659 streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream());
674 660 streamPushMapper.add(streamPushItem);
675 661 mediaOffline(streamPushItem.getApp(), streamPushItem.getStream());
676   -
677   - if(!StringUtils.isEmpty(streamPushItem.getGbId() )){
678   - // 查找开启了全部直播流共享的上级平台
679   - List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream();
680   - if (parentPlatforms.size() > 0) {
681   - for (ParentPlatform parentPlatform : parentPlatforms) {
682   - StreamProxyItem streamProxyItem = platformGbStreamMapper.selectOne(streamPushItem.getApp(), streamPushItem.getStream(),
683   - parentPlatform.getServerGBId());
684   - if (streamProxyItem == null) {
685   - streamPushItem.setCatalogId(parentPlatform.getCatalogId());
686   - streamPushItem.setPlatformId(parentPlatform.getServerGBId());
687   - platformGbStreamMapper.add(streamPushItem);
688   - eventPublisher.catalogEventPublishForStream(parentPlatform.getServerGBId(), streamPushItem, CatalogEvent.ADD);
689   - }
690   - }
691   - }
692   - }
693   -
694 662 }
695 663  
696 664 @Override
... ...
web_src/src/components/PushVideoList.vue
... ... @@ -62,7 +62,12 @@
62 62 </el-table-column>
63 63 <el-table-column label="正在推流" min-width="100">
64 64 <template slot-scope="scope">
65   - {{scope.row.status ? '是' : '否' }}
  65 + {{scope.row.pushIng ? '是' : '否' }}
  66 + </template>
  67 + </el-table-column>
  68 + <el-table-column label="本平台推流" min-width="100">
  69 + <template slot-scope="scope">
  70 + {{scope.row.pushIng && !!!scope.row.serverId ? '是' : '否' }}
66 71 </template>
67 72 </el-table-column>
68 73  
... ...
web_src/src/components/dialog/platformEdit.vue
... ... @@ -97,7 +97,6 @@
97 97 <el-form-item label="其他选项">
98 98 <el-checkbox label="启用" v-model="platform.enable" @change="checkExpires"></el-checkbox>
99 99 <el-checkbox label="云台控制" v-model="platform.ptz"></el-checkbox>
100   - <el-checkbox label="共享所有直播流" v-model="platform.shareAllLiveStream"></el-checkbox>
101 100 <el-checkbox label="拉起离线推流" v-model="platform.startOfflinePush"></el-checkbox>
102 101 </el-form-item>
103 102 <el-form-item>
... ... @@ -159,7 +158,6 @@ export default {
159 158 keepTimeout: 60,
160 159 transport: "UDP",
161 160 characterSet: "GB2312",
162   - shareAllLiveStream: false,
163 161 startOfflinePush: false,
164 162 catalogGroup: 1,
165 163 administrativeDivision: null,
... ... @@ -225,7 +223,6 @@ export default {
225 223 this.platform.keepTimeout = platform.keepTimeout;
226 224 this.platform.transport = platform.transport;
227 225 this.platform.characterSet = platform.characterSet;
228   - this.platform.shareAllLiveStream = platform.shareAllLiveStream;
229 226 this.platform.catalogId = platform.catalogId;
230 227 this.platform.startOfflinePush = platform.startOfflinePush;
231 228 this.platform.catalogGroup = platform.catalogGroup;
... ... @@ -320,7 +317,6 @@ export default {
320 317 transport: "UDP",
321 318 characterSet: "GB2312",
322 319 treeType: "BusinessGroup",
323   - shareAllLiveStream: false,
324 320 startOfflinePush: false,
325 321 catalogGroup: 1,
326 322 }
... ...