From 2ea23e2364f742f528fb8b97657212c174d1bbd7 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 21 十月 2023 14:06:59 +0800
Subject: [PATCH] 增加切换serf状态接口(调试用)

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

diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go
index 1ad713a..63a0e9d 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,21 @@
 	}
 	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 {
+
+		oldPlcRecord.Port = record.Port
+		oldPlcRecord.Method = record.Method
+		oldPlcRecord.Address = record.Address
+		oldPlcRecord.Detail = record.Detail
+		err = model.NewDevicePlcSearch().Save(oldPlcRecord)
+	}
 	if err != nil {
 		return err
 	}

--
Gitblit v1.8.0