From bea63f67e75ea6c38d946c2ee463260fcf815f87 Mon Sep 17 00:00:00 2001
From: Fang <costa11@qq.com>
Date: 星期一, 07 三月 2022 14:21:29 +0800
Subject: [PATCH] Merge branch '648540858:wvp-28181-2.0' into wvp-28181-2.0

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

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 053bf9a..737f752 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
@@ -90,8 +90,13 @@
 			AddressImpl address = (AddressImpl) fromHeader.getAddress();
 			SipUri uri = (SipUri) address.getURI();
 			String deviceId = uri.getUser();
-			Device device = redisCatchStorage.getDevice(deviceId);
-			AuthorizationHeader authorhead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME); 
+			Device deviceInRedis = redisCatchStorage.getDevice(deviceId);
+			Device device = storager.queryVideoDevice(deviceId);
+			if (deviceInRedis != null && device == null) {
+				// redis 瀛樺湪鑴忔暟鎹�
+				redisCatchStorage.clearCatchByDeviceId(deviceId);
+			}
+			AuthorizationHeader authorhead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME);
 			// 鏍¢獙瀵嗙爜鏄惁姝g‘
 			if (authorhead != null) {
 				passwordCorrect = new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request,
@@ -153,6 +158,10 @@
 						device.setCharset("gb2312");
 						device.setDeviceId(deviceId);
 						device.setFirsRegister(true);
+					}else {
+						if (device.getOnline() == 0) {
+							device.setFirsRegister(true);
+						}
 					}
 					device.setIp(received);
 					device.setPort(rPort);
@@ -182,7 +191,6 @@
 			if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
 			// 娉ㄥ唽鎴愬姛
 			// 淇濆瓨鍒皉edis
-			// 涓嬪彂catelog鏌ヨ鐩綍
 			if (registerFlag == 1 ) {
 				logger.info("[{}] 娉ㄥ唽鎴愬姛! deviceId:" + device.getDeviceId(), requestAddress);
 				publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_REGISTER);

--
Gitblit v1.8.0