Browse Source

修复数据错误导致无法转成JSON返回 #919

648540858 2 years ago
parent
commit
e4754af417

+ 3 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java

@@ -244,6 +244,9 @@ public class Device {
 	}
 
 	public Integer getStreamModeForParam() {
+		if (streamMode == null) {
+			return 0;
+		}
 		if (streamMode.equalsIgnoreCase("UDP")) {
 			return 0;
 		}else if (streamMode.equalsIgnoreCase("TCP-PASSIVE")) {

+ 11 - 0
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java

@@ -166,7 +166,18 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
                 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())));

+ 17 - 5
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java

@@ -493,8 +493,12 @@ public class DeviceServiceImpl implements IDeviceService {
         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 @@ public class DeviceServiceImpl implements IDeviceService {
                 removeMobilePositionSubscribe(deviceInStore);
             }
         }
-        // 坐标系变化,需要重新计算GCJ02坐标和WGS84坐标
-        if (!deviceInStore.getGeoCoordSys().equals(device.getGeoCoordSys())) {
-            updateDeviceChannelGeoCoordSys(device);
+        if (deviceInStore.getGeoCoordSys() != null) {
+            // 坐标系变化,需要重新计算GCJ02坐标和WGS84坐标
+            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);