From e752dbd1a7fdfbb2063c59470b41a8e5dd546c3d Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 16 三月 2022 10:12:31 +0800
Subject: [PATCH] 修复推流关联平台的bug again
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java | 3 ++-
src/main/java/com/genersoft/iot/vmp/gb28181/bean/SubscribeHolder.java | 5 +++++
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 15 +++++++++------
src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java | 13 +++++++++++++
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 2 +-
5 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SubscribeHolder.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SubscribeHolder.java
index 287c2a0..62a45d5 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SubscribeHolder.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SubscribeHolder.java
@@ -46,4 +46,9 @@
}
return platforms;
}
+
+ public void removeAllSubscribe(String platformId) {
+ mobilePositionMap.remove(platformId);
+ catalogMap.remove(platformId);
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
index a4f7815..fa4aa35 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java
@@ -128,7 +128,7 @@
if (gbStreams.size() > 0) {
for (GbStream gbStream : gbStreams) {
// 鍑虹幇浣跨敤鐩稿悓鍥芥爣Id鐨勮棰戞祦鏃讹紝浣跨敤鏂版祦鏇挎崲鏃ф祦锛�
- if (queryKey != null) {
+ if (queryKey != null && gbStream.getApp().equals(mediaItem.getApp())) {
Matcher matcherForStream = pattern.matcher(gbStream.getStream());
String queryKeyForStream = null;
if (matcherForStream.find()) { //姝ゅfind锛堬級姣忔琚皟鐢ㄥ悗锛屼細鍋忕Щ鍒颁笅涓�涓尮閰�
@@ -144,12 +144,15 @@
}
}
}
- StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream());
- if (streamProxyItem != null) {
- transform.setGbStreamId(streamProxyItem.getGbStreamId());
- transform.setPlatformId(streamProxyItem.getPlatformId());
- transform.setCatalogId(streamProxyItem.getCatalogId());
+ // StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream());
+ List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId());
+ if (gbStreamList != null && gbStreamList.size() == 1) {
+ transform.setGbStreamId(gbStreamList.get(0).getGbStreamId());
+ transform.setPlatformId(gbStreamList.get(0).getPlatformId());
+ transform.setCatalogId(gbStreamList.get(0).getCatalogId());
+ transform.setGbId(gbStreamList.get(0).getGbId());
gbStreamMapper.update(transform);
+ streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream());
}else {
transform.setCreateStamp(System.currentTimeMillis());
gbStreamMapper.add(transform);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
index b430ebb..4ed0a0c 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java
@@ -33,6 +33,19 @@
"mediaServerId=#{mediaServerId}," +
"status=${status} " +
"WHERE app=#{app} AND stream=#{stream}")
+ int updateByallAndStream(GbStream gbStream);
+
+ @Update("UPDATE gb_stream " +
+ "SET app=#{app}," +
+ "stream=#{stream}," +
+ "gbId=#{gbId}," +
+ "name=#{name}," +
+ "streamType=#{streamType}," +
+ "longitude=#{longitude}, " +
+ "latitude=#{latitude}," +
+ "mediaServerId=#{mediaServerId}," +
+ "status=${status} " +
+ "WHERE gbStreamId=#{gbStreamId}")
int update(GbStream gbStream);
@Delete("DELETE FROM gb_stream WHERE app=#{app} AND stream=#{stream}")
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 e1ccf9a..158a163 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
@@ -772,7 +772,7 @@
try {
if (streamProxyMapper.update(streamProxyItem) > 0) {
if (!StringUtils.isEmpty(streamProxyItem.getGbId())) {
- if (gbStreamMapper.update(streamProxyItem) > 0) {
+ if (gbStreamMapper.updateByallAndStream(streamProxyItem) > 0) {
//浜嬪姟鍥炴粴
dataSourceTransactionManager.rollback(transactionStatus);
return false;
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
index c3435fd..878e77c 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
@@ -305,6 +305,8 @@
// 鍋滄鍙戦�佷綅缃闃呭畾鏃朵换鍔�
String key = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetup.getServerId() + "_MobilePosition_" + parentPlatform.getServerGBId();
dynamicTask.stop(key);
+ // 鍒犻櫎缂撳瓨鐨勮闃呬俊鎭�
+ subscribeHolder.removeAllSubscribe(parentPlatform.getServerGBId());
if (deleteResult) {
return new ResponseEntity<>("success", HttpStatus.OK);
} else {
@@ -341,7 +343,6 @@
* @param platformId 涓婄骇骞冲彴ID
* @param query 鏌ヨ鍐呭
* @param online 鏄惁鍦ㄧ嚎
- * @param choosed 鏄惁宸查�変腑
* @param channelType 閫氶亾绫诲瀷
* @return
*/
--
Gitblit v1.8.0