From 5a9e2e97e78a05209a57a75a75678d67c32c58d5 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 21 十月 2023 11:25:20 +0800
Subject: [PATCH] debug over

---
 nsq/msg_handler.go |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go
index 1ad713a..335c143 100644
--- a/nsq/msg_handler.go
+++ b/nsq/msg_handler.go
@@ -281,7 +281,7 @@
 		return err
 	}
 
-	if msg.PlcConfig.Method == "" {
+	if msg.PlcConfig == nil || msg.PlcConfig.Method == "" {
 		return nil
 	}
 
@@ -297,8 +297,16 @@
 	}
 	detail, err := json.Marshal(record.Details)
 	record.Detail = string(detail)
-	record.ID = 1
-	err = model.NewDevicePlcSearch().SetId(record.ID).Save(&record)
+	record.DeviceID = msg.ID
+	oldPlcRecord, err := model.NewDevicePlcSearch().SetDeviceId(msg.ID).First()
+	if err == gorm.ErrRecordNotFound {
+		err = model.NewDevicePlcSearch().Create(&record)
+	} else if record.Port != oldPlcRecord.Port ||
+		record.Method != oldPlcRecord.Method ||
+		record.Address != oldPlcRecord.Address ||
+		record.Detail != oldPlcRecord.Detail {
+		err = model.NewDevicePlcSearch().SetDeviceId(msg.ID).Save(&record)
+	}
 	if err != nil {
 		return err
 	}

--
Gitblit v1.8.0