From e4754af417b176f5e0ab998e6594d875bc0a069c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 06 七月 2023 15:35:59 +0800
Subject: [PATCH] 修复数据错误导致无法转成JSON返回 #919
---
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java | 3 +++
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 22 +++++++++++++++++-----
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 11 +++++++++++
3 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
index 1318c59..1c7baac 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java
@@ -244,6 +244,9 @@
}
public Integer getStreamModeForParam() {
+ if (streamMode == null) {
+ return 0;
+ }
if (streamMode.equalsIgnoreCase("UDP")) {
return 0;
}else if (streamMode.equalsIgnoreCase("TCP-PASSIVE")) {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
index 6eea02f..e084f35 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
@@ -166,7 +166,18 @@
device.setGeoCoordSys("WGS84");
device.setDeviceId(deviceId);
device.setOnLine(false);
+ }else {
+ if (ObjectUtils.isEmpty(device.getStreamMode())) {
+ device.setStreamMode("UDP");
+ }
+ if (ObjectUtils.isEmpty(device.getCharset())) {
+ device.setCharset("GB2312");
+ }
+ if (ObjectUtils.isEmpty(device.getGeoCoordSys())) {
+ device.setGeoCoordSys("WGS84");
+ }
}
+
device.setIp(remoteAddressInfo.getIp());
device.setPort(remoteAddressInfo.getPort());
device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort())));
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
index c288ff4..6e748f4 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -493,8 +493,12 @@
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 (device.getSubscribeCycleForCatalog() > 0) {
@@ -525,10 +529,18 @@
removeMobilePositionSubscribe(deviceInStore);
}
}
- // 鍧愭爣绯诲彉鍖栵紝闇�瑕侀噸鏂拌绠桮CJ02鍧愭爣鍜學GS84鍧愭爣
- if (!deviceInStore.getGeoCoordSys().equals(device.getGeoCoordSys())) {
- updateDeviceChannelGeoCoordSys(device);
+ if (deviceInStore.getGeoCoordSys() != null) {
+ // 鍧愭爣绯诲彉鍖栵紝闇�瑕侀噸鏂拌绠桮CJ02鍧愭爣鍜學GS84鍧愭爣
+ if (!deviceInStore.getGeoCoordSys().equals(device.getGeoCoordSys())) {
+ updateDeviceChannelGeoCoordSys(device);
+ }
+ }else {
+ device.setGeoCoordSys("WGS84");
}
+ if (device.getCharset() == null) {
+ device.setCharset("GB2312");
+ }
+
// 鏇存柊redis
redisCatchStorage.updateDevice(device);
deviceMapper.updateCustom(device);
--
Gitblit v1.8.0