From 9aee7d42e3f7f1c28bddf765b1078048d982ae30 Mon Sep 17 00:00:00 2001
From: 648540858 <456panlinlin>
Date: 星期五, 25 三月 2022 18:05:05 +0800
Subject: [PATCH] 兼容海康 媒体通知 消息from字段不是设备ID的问题
---
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 38 ++++++++++++++++++++++++++++++++++++--
1 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 6ad654e..4840446 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -166,8 +166,42 @@
@Override
public boolean startDownload(StreamInfo stream, String callId) {
- return redis.set(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.DOWNLOAD_PREFIX,
- userSetup.getServerId(), stream.getDeviceID(), stream.getChannelId(), stream.getStream(), callId), stream);
+ boolean result;
+ if (stream.getProgress() == 1) {
+ result = redis.set(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.DOWNLOAD_PREFIX,
+ userSetup.getServerId(), stream.getDeviceID(), stream.getChannelId(), stream.getStream(), callId), stream);
+ }else {
+ result = redis.set(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.DOWNLOAD_PREFIX,
+ userSetup.getServerId(), stream.getDeviceID(), stream.getChannelId(), stream.getStream(), callId), stream, 60*60);
+ }
+ return result;
+ }
+ @Override
+ public boolean stopDownload(String deviceId, String channelId, String stream, String callId) {
+ DeviceChannel deviceChannel = deviceChannelMapper.queryChannel(deviceId, channelId);
+ if (deviceChannel != null) {
+ deviceChannel.setStreamId(null);
+ deviceChannel.setDeviceId(deviceId);
+ deviceChannelMapper.update(deviceChannel);
+ }
+ if (deviceId == null) deviceId = "*";
+ if (channelId == null) channelId = "*";
+ if (stream == null) stream = "*";
+ if (callId == null) callId = "*";
+ String key = String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.DOWNLOAD_PREFIX,
+ userSetup.getServerId(),
+ deviceId,
+ channelId,
+ stream,
+ callId
+ );
+ List<Object> scan = redis.scan(key);
+ if (scan.size() > 0) {
+ for (Object keyObj : scan) {
+ redis.del((String) keyObj);
+ }
+ }
+ return true;
}
@Override
--
Gitblit v1.8.0