From 381b3d15caa30e99c75f58a366b3b75cbbf01450 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 07 十二月 2021 11:40:17 +0800 Subject: [PATCH] 修复未结束的推流无法下载 --- src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java index 0e24942..a5a4be7 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; +import com.genersoft.iot.vmp.service.IGbStreamService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.storager.dao.*; @@ -19,6 +20,7 @@ import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -69,6 +71,16 @@ @Autowired private GbStreamMapper gbStreamMapper; +; + + @Autowired + private PlatformGbStreamMapper platformGbStreamMapper; + + @Autowired + private IGbStreamService gbStreamService; + + @Autowired + private ParentPlatformMapper parentPlatformMapper; @Autowired private VideoStreamSessionManager streamSession; @@ -356,6 +368,15 @@ // 鏇存柊缂撳瓨 parentPlatformCatch.setParentPlatform(parentPlatform); redisCatchStorage.updatePlatformCatchInfo(parentPlatformCatch); + // 鍏变韩鎵�鏈夎棰戞祦锛岄渶瑕佸皢鐜版湁瑙嗛娴佹坊鍔犲埌姝ゅ钩鍙� + List<GbStream> gbStreams = gbStreamMapper.selectAll(); + if (gbStreams.size() > 0) { + if (parentPlatform.isShareAllLiveStream()) { + gbStreamService.addPlatformInfo(gbStreams, parentPlatform.getServerGBId()); + }else { + gbStreamService.delPlatformInfo(gbStreams); + } + } return result > 0; } @@ -493,6 +514,8 @@ logger.error("鍚戞暟鎹簱娣诲姞娴佷唬鐞嗗け璐ワ細", e); dataSourceTransactionManager.rollback(transactionStatus); } + + return result; } @@ -561,7 +584,7 @@ * @return */ @Override - public GbStream queryStreamInParentPlatform(String platformId, String gbId) { + public List<GbStream> queryStreamInParentPlatform(String platformId, String gbId) { return gbStreamMapper.queryStreamInPlatform(platformId, gbId); } @@ -602,11 +625,27 @@ streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream()); streamPushMapper.add(streamPushItem); gbStreamMapper.setStatus(streamPushItem.getApp(), streamPushItem.getStream(), true); + if(!StringUtils.isEmpty(streamPushItem.getGbId() )){ + // 鏌ユ壘寮�鍚簡鍏ㄩ儴鐩存挱娴佸叡浜殑涓婄骇骞冲彴 + List<ParentPlatform> parentPlatforms = parentPlatformMapper.selectAllAhareAllLiveStream(); + if (parentPlatforms.size() > 0) { + for (ParentPlatform parentPlatform : parentPlatforms) { + streamPushItem.setPlatformId(parentPlatform.getServerGBId()); + String stream = streamPushItem.getStream(); + StreamProxyItem streamProxyItems = platformGbStreamMapper.selectOne(streamPushItem.getApp(), stream, parentPlatform.getServerGBId()); + if (streamProxyItems == null) { + platformGbStreamMapper.add(streamPushItem); + } + + } + } + } + } @Override - public void removeMedia(String app, String stream) { - streamPushMapper.del(app, stream); + public int removeMedia(String app, String stream) { + return streamPushMapper.del(app, stream); } @Override @@ -615,8 +654,8 @@ } @Override - public void mediaOutline(String app, String streamId) { - gbStreamMapper.setStatus(app, streamId, false); + public int mediaOutline(String app, String streamId) { + return gbStreamMapper.setStatus(app, streamId, false); } @Override @@ -651,4 +690,9 @@ } return result; } + + @Override + public StreamProxyItem getStreamProxyByAppAndStream(String app, String streamId) { + return streamProxyMapper.selectOne(app, streamId); + } } -- Gitblit v1.8.0