From 95642d0bb83759603a837ac9935db63439719898 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 13 五月 2022 21:10:02 +0800
Subject: [PATCH] 优化录像结束发送BYE判断
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 50 ++++++++++++--------------------------------------
1 files changed, 12 insertions(+), 38 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index b72671a..1f35911 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -28,6 +28,7 @@
import org.springframework.util.StringUtils;
import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
/**
* 瑙嗛璁惧鏁版嵁瀛樺偍-jdbc瀹炵幇
@@ -100,43 +101,6 @@
@Override
public boolean exists(String deviceId) {
return deviceMapper.getDeviceByDeviceId(deviceId) != null;
- }
-
- /**
- * 瑙嗛璁惧鍒涘缓
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氬垱寤烘垚鍔� false锛氬垱寤哄け璐�
- */
- @Override
- public synchronized boolean create(Device device) {
- redisCatchStorage.updateDevice(device);
- return deviceMapper.add(device) > 0;
- }
-
-
-
- /**
- * 瑙嗛璁惧鏇存柊
- *
- * @param device 璁惧瀵硅薄
- * @return true锛氭洿鏂版垚鍔� false锛氭洿鏂板け璐�
- */
- @Override
- public synchronized boolean updateDevice(Device device) {
- String now = DateUtil.getNow();
- device.setUpdateTime(now);
- Device deviceByDeviceId = deviceMapper.getDeviceByDeviceId(device.getDeviceId());
- device.setCharset(device.getCharset().toUpperCase());
- if (deviceByDeviceId == null) {
- device.setCreateTime(now);
- redisCatchStorage.updateDevice(device);
- return deviceMapper.add(device) > 0;
- }else {
- redisCatchStorage.updateDevice(device);
-
- return deviceMapper.update(device) > 0;
- }
}
@Override
@@ -234,17 +198,27 @@
if (deviceChannelList == null) {
return false;
}
+ List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay();
+ Map<String,DeviceChannel> allChannelMapInPlay = new ConcurrentHashMap<>();
+ if (allChannelInPlay.size() > 0) {
+ for (DeviceChannel deviceChannel : allChannelInPlay) {
+ allChannelMapInPlay.put(deviceChannel.getChannelId(), deviceChannel);
+ }
+ }
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
// 鏁版嵁鍘婚噸
List<DeviceChannel> channels = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
Map<String, Integer> subContMap = new HashMap<>();
- if (deviceChannelList != null && deviceChannelList.size() > 1) {
+ if (deviceChannelList.size() > 1) {
// 鏁版嵁鍘婚噸
Set<String> gbIdSet = new HashSet<>();
for (DeviceChannel deviceChannel : deviceChannelList) {
if (!gbIdSet.contains(deviceChannel.getChannelId())) {
gbIdSet.add(deviceChannel.getChannelId());
+ if (allChannelMapInPlay.containsKey(deviceChannel.getChannelId())) {
+ deviceChannel.setStreamId(allChannelMapInPlay.get(deviceChannel.getChannelId()).getStreamId());
+ }
channels.add(deviceChannel);
if (!StringUtils.isEmpty(deviceChannel.getParentId())) {
if (subContMap.get(deviceChannel.getParentId()) == null) {
--
Gitblit v1.8.0