From c23a52929641484ed0b4ca728630f6d74872da8b Mon Sep 17 00:00:00 2001
From: mk1990 <153958232@qq.com>
Date: 星期一, 28 三月 2022 14:36:13 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0' of https://github.91chi.fun/https://github.com/648540858/wvp-GB28181-pro into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java | 38 +++++++++++++++++++++++++++++++++-----
1 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
index 13277c2..3e82e8d 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamProxyServiceImpl.java
@@ -59,6 +59,9 @@
private IRedisCatchStorage redisCatchStorage;
@Autowired
+ private IVideoManagerStorager storager;
+
+ @Autowired
private UserSetup userSetup;
@Autowired
@@ -88,7 +91,7 @@
MediaServerItem mediaInfo;
WVPResult<StreamInfo> wvpResult = new WVPResult<>();
wvpResult.setCode(0);
- if ("auto".equals(param.getMediaServerId())){
+ if (param.getMediaServerId() == null || "auto".equals(param.getMediaServerId())){
mediaInfo = mediaServerService.getMediaServerForMinimumLoad();
}else {
mediaInfo = mediaServerService.getOne(param.getMediaServerId());
@@ -129,7 +132,7 @@
}else {
streamLive = true;
StreamInfo streamInfo = mediaService.getStreamInfoByAppAndStream(
- mediaInfo, param.getApp(), param.getStream(), null);
+ mediaInfo, param.getApp(), param.getStream(), null, null);
wvpResult.setData(streamInfo);
}
@@ -278,7 +281,27 @@
@Override
public void zlmServerOnline(String mediaServerId) {
- zlmServerOffline(mediaServerId);
+ // 绉婚櫎寮�鍚簡鏃犱汉瑙傜湅鑷姩绉婚櫎鐨勬祦
+ List<StreamProxyItem> streamProxyItemList = streamProxyMapper.selecAutoRemoveItemByMediaServerId(mediaServerId);
+ if (streamProxyItemList.size() > 0) {
+ gbStreamMapper.batchDel(streamProxyItemList);
+ }
+ streamProxyMapper.deleteAutoRemoveItemByMediaServerId(mediaServerId);
+
+ // 鎭㈠娴佷唬鐞�, 鍙煡鎵捐繖涓繖涓祦濯掍綋
+ List<StreamProxyItem> streamProxyListForEnable = storager.getStreamProxyListForEnableInMediaServer(
+ mediaServerId, true, false);
+ for (StreamProxyItem streamProxyDto : streamProxyListForEnable) {
+ logger.info("鎭㈠娴佷唬鐞嗭紝" + streamProxyDto.getApp() + "/" + streamProxyDto.getStream());
+ JSONObject jsonObject = addStreamProxyToZlm(streamProxyDto);
+ if (jsonObject == null) {
+ // 璁剧疆涓虹绾�
+ logger.info("鎭㈠娴佷唬鐞嗗け璐�" + streamProxyDto.getApp() + "/" + streamProxyDto.getStream());
+ updateStatus(false, streamProxyDto.getApp(), streamProxyDto.getStream());
+ }else {
+ updateStatus(true, streamProxyDto.getApp(), streamProxyDto.getStream());
+ }
+ }
}
@Override
@@ -289,8 +312,8 @@
gbStreamMapper.batchDel(streamProxyItemList);
}
streamProxyMapper.deleteAutoRemoveItemByMediaServerId(mediaServerId);
- // 鍏朵粬鐨勬祦璁剧疆鏈惎鐢�
- streamProxyMapper.updateStatus(false, mediaServerId);
+ // 鍏朵粬鐨勬祦璁剧疆绂荤嚎
+ streamProxyMapper.updateStatusByMediaServerId(false, mediaServerId);
String type = "PULL";
// 鍙戦�乺edis娑堟伅
@@ -314,4 +337,9 @@
public void clean() {
}
+
+ @Override
+ public int updateStatus(boolean status, String app, String stream) {
+ return streamProxyMapper.updateStatus(status, app, stream);
+ }
}
--
Gitblit v1.8.0