From 07956b48df476002e3cfd9b01be9e9fb92590ca9 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 01 七月 2022 18:26:35 +0800
Subject: [PATCH] 添加界面优化接口

---
 src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java
index dec96c0..d3ddf52 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/AudioBroadcastManager.java
@@ -1,13 +1,14 @@
 package com.genersoft.iot.vmp.gb28181.session;
 
+import com.genersoft.iot.vmp.conf.SipConfig;
 import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatch;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 璇煶骞挎挱娑堟伅绠$悊绫�
@@ -15,6 +16,9 @@
  */
 @Component
 public class AudioBroadcastManager {
+
+    @Autowired
+    private SipConfig config;
 
     public static Map<String, AudioBroadcastCatch> data = new ConcurrentHashMap<>();
 
@@ -54,6 +58,16 @@
     }
 
     public AudioBroadcastCatch get(String deviceId, String channelId) {
-        return data.get(deviceId + channelId);
+        AudioBroadcastCatch audioBroadcastCatch = data.get(deviceId + channelId);
+        if (audioBroadcastCatch == null) {
+            Stream<AudioBroadcastCatch> allAudioBroadcastCatchStreamForDevice = data.values().stream().filter(
+                    audioBroadcastCatchItem -> Objects.equals(audioBroadcastCatchItem.getDeviceId(), deviceId));
+            List<AudioBroadcastCatch> audioBroadcastCatchList = allAudioBroadcastCatchStreamForDevice.collect(Collectors.toList());
+            if (audioBroadcastCatchList.size() == 1 && Objects.equals(config.getId(), channelId)) {
+                audioBroadcastCatch = audioBroadcastCatchList.get(0);
+            }
+        }
+
+        return audioBroadcastCatch;
     }
 }

--
Gitblit v1.8.0