From fc77b3f819b3143387b90a4d631725e7c6513ecd Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 01 十二月 2023 15:49:18 +0800
Subject: [PATCH] 支持重新接入zlm的时候检查拉流代理数据是否异常,异常数据自动移除
---
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 73 ++++++++++++++++++++++++++++--------
1 files changed, 56 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
old mode 100644
new mode 100755
index fe98d06..79f2039
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -1,6 +1,5 @@
package com.genersoft.iot.vmp.service.impl;
-import com.genersoft.iot.vmp.common.InviteSessionType;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.conf.DynamicTask;
import com.genersoft.iot.vmp.conf.UserSetting;
@@ -109,6 +108,7 @@
inviteStreamService.clearInviteInfo(device.getDeviceId());
}
device.setUpdateTime(now);
+ device.setKeepaliveTime(now);
if (device.getKeepaliveIntervalTime() == 0) {
// 榛樿蹇冭烦闂撮殧60
device.setKeepaliveIntervalTime(60);
@@ -183,6 +183,17 @@
// 鍙戦�乺edis娑堟伅
redisCatchStorage.sendDeviceOrChannelStatus(device.getDeviceId(), null, true);
}
+
+//
+// try {
+// cmder.alarmSubscribe(device, 600, "0", "4", "0", "2023-7-27T00:00:00", "2023-7-28T00:00:00");
+// } catch (InvalidArgumentException e) {
+// throw new RuntimeException(e);
+// } catch (SipException e) {
+// throw new RuntimeException(e);
+// } catch (ParseException e) {
+// throw new RuntimeException(e);
+// }
}
@@ -390,8 +401,8 @@
if (device == null) {
return null;
}
- if (ObjectUtils.isEmpty(parentId) || parentId.equals(deviceId)) {
- parentId = null;
+ if (ObjectUtils.isEmpty(parentId) ) {
+ parentId = deviceId;
}
List<DeviceChannel> rootNodes = deviceChannelMapper.getSubChannelsByDeviceId(deviceId, parentId, onlyCatalog);
return transportChannelsToTree(rootNodes, "");
@@ -494,20 +505,33 @@
if (!ObjectUtils.isEmpty(device.getMediaServerId())) {
deviceInStore.setMediaServerId(device.getMediaServerId());
}
- deviceInStore.setSdpIp(device.getSdpIp());
- deviceInStore.setCharset(device.getCharset());
+ if (!ObjectUtils.isEmpty(device.getCharset())) {
+ deviceInStore.setCharset(device.getCharset());
+ }
+ if (!ObjectUtils.isEmpty(device.getSdpIp())) {
+ deviceInStore.setSdpIp(device.getSdpIp());
+ }
+ if (!ObjectUtils.isEmpty(device.getPassword())) {
+ deviceInStore.setPassword(device.getPassword());
+ }
+ if (!ObjectUtils.isEmpty(device.getStreamMode())) {
+ deviceInStore.setStreamMode(device.getStreamMode());
+ }
+
// 鐩綍璁㈤槄鐩稿叧鐨勪俊鎭�
- if (device.getSubscribeCycleForCatalog() > 0) {
- if (deviceInStore.getSubscribeCycleForCatalog() == 0 || deviceInStore.getSubscribeCycleForCatalog() != device.getSubscribeCycleForCatalog()) {
- deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog());
+ if (deviceInStore.getSubscribeCycleForCatalog() != device.getSubscribeCycleForCatalog()) {
+ if (device.getSubscribeCycleForCatalog() > 0) {
+ // 鑻ュ凡寮�鍚闃咃紝浣嗚闃呭懆鏈熶笉鍚岋紝鍒欏厛鍙栨秷
+ if (deviceInStore.getSubscribeCycleForCatalog() != 0) {
+ removeCatalogSubscribe(deviceInStore);
+ }
// 寮�鍚闃�
- addCatalogSubscribe(deviceInStore);
- }
- }else if (device.getSubscribeCycleForCatalog() == 0) {
- if (deviceInStore.getSubscribeCycleForCatalog() != 0) {
deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog());
+ addCatalogSubscribe(deviceInStore);
+ }else if (device.getSubscribeCycleForCatalog() == 0) {
// 鍙栨秷璁㈤槄
+ deviceInStore.setSubscribeCycleForCatalog(device.getSubscribeCycleForCatalog());
removeCatalogSubscribe(deviceInStore);
}
}
@@ -522,17 +546,32 @@
}
}else if (device.getSubscribeCycleForMobilePosition() == 0) {
if (deviceInStore.getSubscribeCycleForMobilePosition() != 0) {
+ deviceInStore.setMobilePositionSubmissionInterval(device.getMobilePositionSubmissionInterval());
+ deviceInStore.setSubscribeCycleForMobilePosition(device.getSubscribeCycleForMobilePosition());
// 鍙栨秷璁㈤槄
removeMobilePositionSubscribe(deviceInStore);
}
}
- // 鍧愭爣绯诲彉鍖栵紝闇�瑕侀噸鏂拌绠桮CJ02鍧愭爣鍜學GS84鍧愭爣
- if (!deviceInStore.getGeoCoordSys().equals(device.getGeoCoordSys())) {
- updateDeviceChannelGeoCoordSys(device);
+ if (deviceInStore.getGeoCoordSys() != null) {
+ // 鍧愭爣绯诲彉鍖栵紝闇�瑕侀噸鏂拌绠桮CJ02鍧愭爣鍜學GS84鍧愭爣
+ if (!deviceInStore.getGeoCoordSys().equals(device.getGeoCoordSys())) {
+ deviceInStore.setGeoCoordSys(device.getGeoCoordSys());
+ updateDeviceChannelGeoCoordSys(deviceInStore);
+ }
+ }else {
+ deviceInStore.setGeoCoordSys("WGS84");
}
+ if (device.getCharset() == null) {
+ deviceInStore.setCharset("GB2312");
+ }
+ //SSRC鏍¢獙
+ deviceInStore.setSsrcCheck(device.isSsrcCheck());
+ //浣滀负娑堟伅閫氶亾
+ deviceInStore.setAsMessageChannel(device.isAsMessageChannel());
+
// 鏇存柊redis
- redisCatchStorage.updateDevice(device);
- deviceMapper.updateCustom(device);
+ deviceMapper.updateCustom(deviceInStore);
+ redisCatchStorage.removeDevice(deviceInStore.getDeviceId());
}
@Override
--
Gitblit v1.8.0