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