From a0cdc7c59d37aedc2538bfb6db8559286e4969b5 Mon Sep 17 00:00:00 2001
From: wangyimeng <421132955@qq.com>
Date: 星期五, 03 三月 2023 21:01:43 +0800
Subject: [PATCH] 修复查询历史录像无记录时报错问题
---
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 70 ++++++++++++++++++++++++----------
1 files changed, 49 insertions(+), 21 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 393fbf1..4f229d7 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
@@ -17,6 +17,7 @@
import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper;
import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo;
import com.genersoft.iot.vmp.utils.DateUtil;
+import com.genersoft.iot.vmp.utils.JsonUtil;
import com.genersoft.iot.vmp.utils.SystemInfoUtils;
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import org.slf4j.Logger;
@@ -75,7 +76,7 @@
@Override
public void resetAllSN() {
String scanKey = VideoManagerConstants.SIP_SN_PREFIX + userSetting.getServerId() + "_*";
- List<Object> keys = RedisUtil.scan(scanKey, null);
+ List<Object> keys = RedisUtil.scan(scanKey);
for (Object o : keys) {
String key = (String) o;
RedisUtil.set(key, 1);
@@ -129,7 +130,7 @@
}
@Override
public StreamInfo queryPlayByStreamId(String streamId) {
- List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), streamId), 1);
+ List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), streamId));
if (playLeys == null || playLeys.size() == 0) {
return null;
}
@@ -141,7 +142,7 @@
List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_*_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
userSetting.getServerId(),
deviceId,
- channelId), 1);
+ channelId));
if (playLeys == null || playLeys.size() == 0) {
return null;
}
@@ -157,7 +158,10 @@
}
for (Object player : players) {
String key = (String) player;
- StreamInfo streamInfo = (StreamInfo) RedisUtil.get(key);
+ StreamInfo streamInfo = JsonUtil.redisJsonToObject(key, StreamInfo.class);
+ if (Objects.isNull(streamInfo)) {
+ continue;
+ }
streamInfos.put(streamInfo.getDeviceID() + "_" + streamInfo.getChannelId(), streamInfo);
}
return streamInfos;
@@ -278,7 +282,7 @@
stream,
callId
);
- List<Object> streamInfoScan = RedisUtil.scan(key, 1);
+ List<Object> streamInfoScan = RedisUtil.scan(key);
if (streamInfoScan.size() > 0) {
return (StreamInfo) RedisUtil.get((String) streamInfoScan.get(0));
}else {
@@ -310,7 +314,7 @@
stream,
callId
);
- List<Object> streamInfoScan = RedisUtil.scan(key, 1);
+ List<Object> streamInfoScan = RedisUtil.scan(key);
return (String) streamInfoScan.get(0);
}
@@ -399,7 +403,7 @@
+ channelId + "_"
+ streamId + "_"
+ callId;
- List<Object> scan = RedisUtil.scan(key, 1);
+ List<Object> scan = RedisUtil.scan(key);
if (scan.size() > 0) {
return (SendRtpItem)RedisUtil.get((String)scan.get(0));
}else {
@@ -521,7 +525,7 @@
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*_*_"
+ channelId + "*_" + "*_";
- List<Object> RtpStreams = RedisUtil.scan(key, 1);
+ List<Object> RtpStreams = RedisUtil.scan(key);
if (RtpStreams.size() > 0) {
return true;
} else {
@@ -613,7 +617,7 @@
stream,
callId
);
- List<Object> streamInfoScan = RedisUtil.scan(key, 1);
+ List<Object> streamInfoScan = RedisUtil.scan(key);
if (streamInfoScan.size() > 0) {
return (StreamInfo) RedisUtil.get((String) streamInfoScan.get(0));
}else {
@@ -624,8 +628,7 @@
@Override
public ThirdPartyGB queryMemberNoGBId(String queryKey) {
String key = VideoManagerConstants.WVP_STREAM_GB_ID_PREFIX + queryKey;
- JSONObject jsonObject = (JSONObject)RedisUtil.get(key);
- return jsonObject.to(ThirdPartyGB.class);
+ return JsonUtil.redisJsonToObject(key, ThirdPartyGB.class);
}
@Override
@@ -662,9 +665,34 @@
}
@Override
+ public void removeAllDevice() {
+ String scanKey = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_*";
+ List<Object> keys = RedisUtil.scan(scanKey);
+ for (Object key : keys) {
+ RedisUtil.del((String) key);
+ }
+ }
+
+ @Override
+ public List<Device> getAllDevices() {
+ String scanKey = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_*";
+ List<Device> result = new ArrayList<>();
+ List<Object> keys = RedisUtil.scan(scanKey);
+ for (Object o : keys) {
+ String key = (String) o;
+ Device device = JsonUtil.redisJsonToObject(key, Device.class);
+ if (Objects.nonNull(device)) { // 鍙彇娌℃湁瀛樿繃寰�
+ result.add(JsonUtil.redisJsonToObject(key, Device.class));
+ }
+ }
+
+ return result;
+ }
+
+ @Override
public Device getDevice(String deviceId) {
String key = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_" + deviceId;
- return (Device)RedisUtil.get(key);
+ return JsonUtil.redisJsonToObject(key, Device.class);
}
@Override
@@ -676,7 +704,7 @@
@Override
public GPSMsgInfo getGpsMsgInfo(String gbId) {
String key = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetting.getServerId() + "_" + gbId;
- return (GPSMsgInfo)RedisUtil.get(key);
+ return JsonUtil.redisJsonToObject(key, GPSMsgInfo.class);
}
@Override
@@ -686,9 +714,9 @@
List<Object> keys = RedisUtil.scan(scanKey);
for (Object o : keys) {
String key = (String) o;
- GPSMsgInfo gpsMsgInfo = (GPSMsgInfo) RedisUtil.get(key);
- if (!gpsMsgInfo.isStored()) { // 鍙彇娌℃湁瀛樿繃寰�
- result.add((GPSMsgInfo) RedisUtil.get(key));
+ GPSMsgInfo gpsMsgInfo = JsonUtil.redisJsonToObject(key, GPSMsgInfo.class);
+ if (Objects.nonNull(gpsMsgInfo) && !gpsMsgInfo.isStored()) { // 鍙彇娌℃湁瀛樿繃寰�
+ result.add(JsonUtil.redisJsonToObject(key, GPSMsgInfo.class));
}
}
@@ -710,7 +738,7 @@
@Override
public StreamAuthorityInfo getStreamAuthorityInfo(String app, String stream) {
String key = VideoManagerConstants.MEDIA_STREAM_AUTHORITY + userSetting.getServerId() + "_" + app+ "_" + stream ;
- return (StreamAuthorityInfo) RedisUtil.get(key);
+ return JsonUtil.redisJsonToObject(key, StreamAuthorityInfo.class);
}
@@ -721,7 +749,7 @@
List<Object> keys = RedisUtil.scan(scanKey);
for (Object o : keys) {
String key = (String) o;
- result.add((StreamAuthorityInfo) RedisUtil.get(key));
+ result.add(JsonUtil.redisJsonToObject(key, StreamAuthorityInfo.class));
}
return result;
}
@@ -732,10 +760,10 @@
String scanKey = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerId;
OnStreamChangedHookParam result = null;
- List<Object> keys = RedisUtil.scan(scanKey, 1);
+ List<Object> keys = RedisUtil.scan(scanKey);
if (keys.size() > 0) {
String key = (String) keys.get(0);
- result = (OnStreamChangedHookParam)RedisUtil.get(key);
+ result = JsonUtil.redisJsonToObject(key, OnStreamChangedHookParam.class);
}
return result;
@@ -827,7 +855,7 @@
@Override
public void sendAlarmMsg(AlarmChannelMessage msg) {
- String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_ALARM;
+ String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_ALARM_RECEIVE;
logger.info("[redis鍙戦�侀�氱煡] 鎶ヨ{}: {}", key, JSON.toJSON(msg));
RedisUtil.convertAndSend(key, (JSONObject)JSON.toJSON(msg));
}
--
Gitblit v1.8.0