From b6e604f2449bb65dfaafb0f0741ba54ff0d2f9c2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 30 四月 2024 15:20:03 +0800
Subject: [PATCH] 修改云端录像详情页使用直接访问zlm的方式播放录像
---
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusListMsgListener.java | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusListMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusListMsgListener.java
index cb34ff5..e65ea8d 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusListMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisPushStreamStatusListMsgListener.java
@@ -2,9 +2,10 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
+import com.genersoft.iot.vmp.gb28181.bean.GbStream;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.service.IGbStreamService;
-import com.genersoft.iot.vmp.service.IMediaServerService;
+import com.genersoft.iot.vmp.media.service.IMediaServerService;
import com.genersoft.iot.vmp.service.IStreamPushService;
import com.genersoft.iot.vmp.utils.DateUtil;
import org.slf4j.Logger;
@@ -19,6 +20,7 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
@@ -57,7 +59,8 @@
try {
List<StreamPushItem> streamPushItems = JSON.parseArray(new String(msg.getBody()), StreamPushItem.class);
//鏌ヨ鍏ㄩ儴鐨刟pp+stream 鐢ㄤ簬鍒ゆ柇鏄坊鍔犺繕鏄慨鏀�
- List<String> allAppAndStream = streamPushService.getAllAppAndStream();
+ Map<String, StreamPushItem> allAppAndStream = streamPushService.getAllAppAndStreamMap();
+ Map<String, GbStream> allGBId = gbStreamService.getAllGBId();
/**
* 鐢ㄤ簬瀛樺偍鏇村叿APP+Stream杩囨护鍚庣殑鏁版嵁锛屽彲浠ョ洿鎺ュ瓨鍏tream_push琛ㄤ笌gb_stream琛�
@@ -67,35 +70,48 @@
for (StreamPushItem streamPushItem : streamPushItems) {
String app = streamPushItem.getApp();
String stream = streamPushItem.getStream();
- boolean contains = allAppAndStream.contains(app + stream);
+ boolean contains = allAppAndStream.containsKey(app + stream);
//涓嶅瓨鍦ㄥ氨娣诲姞
if (!contains) {
+ if (allGBId.containsKey(streamPushItem.getGbId())) {
+ GbStream gbStream = allGBId.get(streamPushItem.getGbId());
+ logger.warn("[REDIS娑堟伅-鎺ㄦ祦璁惧鍒楄〃鏇存柊-INSERT] 鍥芥爣缂栧彿閲嶅: {}, 宸插垎閰嶇粰{}/{}",
+ streamPushItem.getGbId(), gbStream.getApp(), gbStream.getStream());
+ continue;
+ }
streamPushItem.setStreamType("push");
streamPushItem.setCreateTime(DateUtil.getNow());
streamPushItem.setMediaServerId(mediaServerService.getDefaultMediaServer().getId());
streamPushItem.setOriginType(2);
streamPushItem.setOriginTypeStr("rtsp_push");
- streamPushItem.setTotalReaderCount("0");
+ streamPushItem.setTotalReaderCount(0);
streamPushItemForSave.add(streamPushItem);
+ allGBId.put(streamPushItem.getGbId(), streamPushItem);
} else {
+ if (allGBId.containsKey(streamPushItem.getGbId())
+ && (!allGBId.get(streamPushItem.getGbId()).getApp().equals(streamPushItem.getApp()) || !allGBId.get(streamPushItem.getGbId()).getStream().equals(streamPushItem.getStream()))) {
+ GbStream gbStream = allGBId.get(streamPushItem.getGbId());
+ logger.warn("[REDIS娑堟伅-鎺ㄦ祦璁惧鍒楄〃鏇存柊-UPDATE] 鍥芥爣缂栧彿閲嶅: {}, 宸插垎閰嶇粰{}/{}",
+ streamPushItem.getGbId(), gbStream.getApp(), gbStream.getStream());
+ continue;
+ }
//瀛樺湪灏卞彧淇敼 name鍜実bId
streamPushItemForUpdate.add(streamPushItem);
}
}
- if (streamPushItemForSave.size() > 0) {
-
+ if (!streamPushItemForSave.isEmpty()) {
logger.info("娣诲姞{}鏉�",streamPushItemForSave.size());
logger.info(JSONObject.toJSONString(streamPushItemForSave));
streamPushService.batchAdd(streamPushItemForSave);
}
- if(streamPushItemForUpdate.size()>0){
+ if(!streamPushItemForUpdate.isEmpty()){
logger.info("淇敼{}鏉�",streamPushItemForUpdate.size());
logger.info(JSONObject.toJSONString(streamPushItemForUpdate));
gbStreamService.updateGbIdOrName(streamPushItemForUpdate);
}
}catch (Exception e) {
- logger.warn("[REDIS娑堟伅-鎺ㄦ祦璁惧鍒楄〃鏇存柊] 鍙戠幇鏈鐞嗙殑寮傚父, \r\n{}", JSON.toJSONString(message));
+ logger.warn("[REDIS娑堟伅-鎺ㄦ祦璁惧鍒楄〃鏇存柊] 鍙戠幇鏈鐞嗙殑寮傚父, \r\n{}", new String(message.getBody()));
logger.error("[REDIS娑堟伅-鎺ㄦ祦璁惧鍒楄〃鏇存柊] 寮傚父鍐呭锛� ", e);
}
}
--
Gitblit v1.8.0