From ec90519c90925accf157434130bcf4ac7958c17d Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 08 三月 2023 16:57:07 +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