From 6bb8f45e270681dbcb70aed663b406e7d905e091 Mon Sep 17 00:00:00 2001
From: xiaoxie <hotcoffie@163.com>
Date: 星期一, 18 四月 2022 15:04:22 +0800
Subject: [PATCH] 优化摄像头注册流程

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
index f1919da..45b7e56 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
@@ -4,6 +4,7 @@
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.bean.RecordInfo;
 import com.genersoft.iot.vmp.gb28181.bean.RecordItem;
+import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.CheckForAllRecordsThread;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
 import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
@@ -49,6 +50,9 @@
     @Autowired
     private DeferredResultHolder deferredResultHolder;
 
+    @Autowired
+    private EventPublisher eventPublisher;
+
     @Override
     public void afterPropertiesSet() throws Exception {
         responseMessageHandler.addHandler(cmdType, this);
@@ -64,21 +68,20 @@
             rootElement = getRootElement(evt, device.getCharset());
             String uuid = UUID.randomUUID().toString().replace("-", "");
             RecordInfo recordInfo = new RecordInfo();
-            Element deviceIdElement = rootElement.element("DeviceID");
-            String channelId = deviceIdElement.getText();
-            String key = DeferredResultHolder.CALLBACK_CMD_RECORDINFO + device.getDeviceId() + channelId;
+            String sn = getText(rootElement, "SN");
+            String key = DeferredResultHolder.CALLBACK_CMD_RECORDINFO + device.getDeviceId() + sn;
             recordInfo.setDeviceId(device.getDeviceId());
-            recordInfo.setChannelId(channelId);
+            recordInfo.setSn(sn);
             recordInfo.setName(getText(rootElement, "Name"));
             if (getText(rootElement, "SumNum") == null || getText(rootElement, "SumNum") == "") {
                 recordInfo.setSumNum(0);
             } else {
                 recordInfo.setSumNum(Integer.parseInt(getText(rootElement, "SumNum")));
             }
-            String sn = getText(rootElement, "SN");
             Element recordListElement = rootElement.element("RecordList");
             if (recordListElement == null || recordInfo.getSumNum() == 0) {
                 logger.info("鏃犲綍鍍忔暟鎹�");
+                eventPublisher.recordEndEventPush(recordInfo);
                 RequestMessage msg = new RequestMessage();
                 msg.setKey(key);
                 msg.setData(recordInfo);
@@ -101,6 +104,7 @@
                         record.setDeviceId(getText(itemRecord, "DeviceID"));
                         record.setName(getText(itemRecord, "Name"));
                         record.setFilePath(getText(itemRecord, "FilePath"));
+                        record.setFileSize(getText(itemRecord, "FileSize"));
                         record.setAddress(getText(itemRecord, "Address"));
                         record.setStartTime(
                                 DateUtil.ISO8601Toyyyy_MM_dd_HH_mm_ss(getText(itemRecord, "StartTime")));
@@ -114,7 +118,7 @@
                     }
                     recordInfo.setRecordList(recordList);
                 }
-
+                eventPublisher.recordEndEventPush(recordInfo);
                 // 鏀圭敤鍗曠嫭绾跨▼缁熻宸茶幏鍙栧綍鍍忔枃浠舵暟閲忥紝閬垮厤澶氬寘骞惰鍒嗗埆缁熻涓嶅畬鏁寸殑闂
                 String cacheKey = CACHE_RECORDINFO_KEY + device.getDeviceId() + sn;
                 redis.set(cacheKey + "_" + uuid, recordList, 90);

--
Gitblit v1.8.0