From e5a9dd24efe3e852445daf1aa8bffd9598985b3a Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 12 一月 2024 14:17:01 +0800 Subject: [PATCH] Merge branch '2.6.9' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java old mode 100644 new mode 100755 index ffbcb42..25be513 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java @@ -20,7 +20,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.dao.*; import com.genersoft.iot.vmp.utils.DateUtil; -import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo; +import com.genersoft.iot.vmp.vmanager.bean.ResourceBaseInfo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; @@ -183,8 +183,11 @@ @Override public boolean stop(String app, String streamId) { + logger.info("[鎺ㄦ祦 ] 鍋滄娴侊細 {}/{}", app, streamId); StreamPushItem streamPushItem = streamPushMapper.selectOne(app, streamId); - gbStreamService.sendCatalogMsg(streamPushItem, CatalogEvent.DEL); + if (streamPushItem != null) { + gbStreamService.sendCatalogMsg(streamPushItem, CatalogEvent.DEL); + } platformGbStreamMapper.delByAppAndStream(app, streamId); gbStreamMapper.del(app, streamId); @@ -221,6 +224,12 @@ streamInfoPushItemMap.put(onStreamChangedHookParam.getApp() + onStreamChangedHookParam.getStream(), onStreamChangedHookParam); } } + // 鑾峰彇鎵�鏈夋帹娴侀壌鏉冧俊鎭紝娓呯悊杩囨湡鐨� + List<StreamAuthorityInfo> allStreamAuthorityInfo = redisCatchStorage.getAllStreamAuthorityInfo(); + Map<String, StreamAuthorityInfo> streamAuthorityInfoInfoMap = new HashMap<>(); + for (StreamAuthorityInfo streamAuthorityInfo : allStreamAuthorityInfo) { + streamAuthorityInfoInfoMap.put(streamAuthorityInfo.getApp() + streamAuthorityInfo.getStream(), streamAuthorityInfo); + } zlmresTfulUtils.getMediaList(mediaServerItem, (mediaList ->{ if (mediaList == null) { return; @@ -239,6 +248,7 @@ for (StreamPushItem streamPushItem : streamPushItems) { pushItemMap.remove(streamPushItem.getApp() + streamPushItem.getStream()); streamInfoPushItemMap.remove(streamPushItem.getApp() + streamPushItem.getStream()); + streamAuthorityInfoInfoMap.remove(streamPushItem.getApp() + streamPushItem.getStream()); } } List<StreamPushItem> offlinePushItems = new ArrayList<>(pushItemMap.values()); @@ -272,6 +282,16 @@ redisCatchStorage.sendStreamChangeMsg(type, jsonObject); // 绉婚櫎redis鍐呮祦鐨勪俊鎭� redisCatchStorage.removeStream(mediaServerItem.getId(), "PUSH", offlineOnStreamChangedHookParam.getApp(), offlineOnStreamChangedHookParam.getStream()); + // 鍐椾綑鏁版嵁锛岃嚜宸辩郴缁熶腑鑷敤 + redisCatchStorage.removePushListItem(offlineOnStreamChangedHookParam.getApp(), offlineOnStreamChangedHookParam.getStream(), mediaServerItem.getId()); + } + } + + Collection<StreamAuthorityInfo> streamAuthorityInfos = streamAuthorityInfoInfoMap.values(); + if (streamAuthorityInfos.size() > 0) { + for (StreamAuthorityInfo streamAuthorityInfo : streamAuthorityInfos) { + // 绉婚櫎redis鍐呮祦鐨勪俊鎭� + redisCatchStorage.removeStreamAuthorityInfo(streamAuthorityInfo.getApp(), streamAuthorityInfo.getStream()); } } })); @@ -301,6 +321,9 @@ jsonObject.put("register", false); jsonObject.put("mediaServerId", mediaServerId); redisCatchStorage.sendStreamChangeMsg(type, jsonObject); + + // 鍐椾綑鏁版嵁锛岃嚜宸辩郴缁熶腑鑷敤 + redisCatchStorage.removePushListItem(onStreamChangedHookParam.getApp(), onStreamChangedHookParam.getStream(), mediaServerId); } } } @@ -349,7 +372,7 @@ // 瀛樺偍鏁版嵁鍒皊tream_push琛� streamPushMapper.addAll(streamPushItems); List<StreamPushItem> streamPushItemForGbStream = streamPushItems.stream() - .filter(streamPushItem-> streamPushItem.getId() != null) + .filter(streamPushItem-> streamPushItem.getGbId() != null) .collect(Collectors.toList()); // 瀛樺偍鏁版嵁鍒癵b_stream琛紝 id浼氳繑鍥炲埌streamPushItemForGbStream閲� if (streamPushItemForGbStream.size() > 0) { @@ -422,7 +445,7 @@ } } - if (streamPushItemListFroPlatform.size() > 0) { + if (!streamPushItemListFroPlatform.isEmpty()) { platformGbStreamMapper.batchAdd(streamPushItemListFroPlatform); // 鍙戦�侀�氱煡 for (String platformId : platformForEvent.keySet()) { @@ -488,6 +511,9 @@ stream.setUpdateTime(DateUtil.getNow()); stream.setCreateTime(DateUtil.getNow()); stream.setServerId(userSetting.getServerId()); + stream.setMediaServerId(mediaConfig.getId()); + stream.setSelf(true); + stream.setPushIng(true); // 鏀惧湪浜嬪姟鍐呮墽琛� boolean result = false; @@ -514,7 +540,10 @@ } @Override - public ResourceBaceInfo getOverview() { - return streamPushMapper.getOverview(userSetting.isUsePushingAsStatus()); + public ResourceBaseInfo getOverview() { + int total = streamPushMapper.getAllCount(); + int online = streamPushMapper.getAllOnline(userSetting.isUsePushingAsStatus()); + + return new ResourceBaseInfo(total, online); } } -- Gitblit v1.8.0