From e9f6bf26943f3cc974d02a083cdac22af57e8cb4 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 03 十一月 2023 15:46:57 +0800
Subject: [PATCH] 去掉换行
---
nsq/msg_handler.go | 69 +++++++++++++++++++++++++++++-----
1 files changed, 59 insertions(+), 10 deletions(-)
diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go
index 15cbf29..e791fff 100644
--- a/nsq/msg_handler.go
+++ b/nsq/msg_handler.go
@@ -251,33 +251,77 @@
func (slf *DeviceUpdate) HandleMessage(data []byte) (err error) {
logx.Infof("get a device update message :%s", data)
- var device common.Device
- err = json.Unmarshal(data, &device)
+ var msg common.DeviceMsg
+ err = json.Unmarshal(data, &msg)
if err != nil {
logx.Infof("unmarshal device update msg err :%s", err)
return err
}
- procedures := make([]string, 0, len(device.DeviceProcedureAttr))
- for _, attr := range device.DeviceProcedureAttr {
+ procedures := make([]string, 0, len(msg.DeviceProcedureAttr))
+ for _, attr := range msg.DeviceProcedureAttr {
procedures = append(procedures, attr.ProcedureName)
}
deviceRecord := &model.Device{
- DeviceID: device.ID,
+ DeviceID: msg.ID,
Procedures: strings.Join(procedures, ","),
- ExtChannelAmount: device.ExtChannelAmount,
+ ExtChannelAmount: msg.ExtChannelAmount,
+ DeviceMac: msg.DeviceMac,
}
- oldRecord, err := model.NewDeviceSearch().SetDeviceId(device.ID).First()
+ oldRecord, err := model.NewDeviceSearch().SetDeviceId(msg.ID).First()
if err == gorm.ErrRecordNotFound {
err = model.NewDeviceSearch().Create(deviceRecord)
- } else {
- err = model.NewDeviceSearch().SetID(oldRecord.ID).Save(deviceRecord)
+ } else if oldRecord.ExtChannelAmount != deviceRecord.ExtChannelAmount ||
+ oldRecord.Procedures != deviceRecord.Procedures ||
+ oldRecord.DeviceMac != deviceRecord.DeviceMac {
+ err = model.NewDeviceSearch().SetDeviceId(msg.ID).Save(deviceRecord)
}
if err != nil {
logx.Infof("save device record err :%s", err)
+ return err
+ }
+
+ if msg.PlcConfig == nil || msg.PlcConfig.Method == "" {
+ return nil
+ }
+
+ msg.PlcConfig.Method.ConvertToEnglish()
+ var record model.DevicePlc
+ err = mapstructure.Decode(msg.PlcConfig, &record)
+ if err != nil {
+ logx.Infof("decode from PlcAddressList to DevicePlc Details err:%v", err)
+ }
+ detail, err := json.Marshal(record.Details)
+ record.Detail = string(detail)
+ 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 ||
+ record.BaudRate != oldPlcRecord.BaudRate ||
+ record.SerialName != oldPlcRecord.SerialName ||
+ record.DataBit != oldPlcRecord.DataBit ||
+ record.StopBit != oldPlcRecord.StopBit ||
+ record.Parity != oldPlcRecord.Parity {
+
+ oldPlcRecord.Method = record.Method
+ oldPlcRecord.Address = record.Address
+ oldPlcRecord.Port = record.Port
+ oldPlcRecord.Detail = record.Detail
+ oldPlcRecord.BaudRate = record.BaudRate
+ oldPlcRecord.SerialName = record.SerialName
+ oldPlcRecord.DataBit = record.DataBit
+ oldPlcRecord.StopBit = record.StopBit
+ oldPlcRecord.Parity = record.Parity
+
+ err = model.NewDevicePlcSearch().Save(oldPlcRecord)
+ }
+ if err != nil {
return err
}
@@ -299,7 +343,8 @@
switch pullDataResponse.DataType {
case common.PullDataTypeProcessModel:
err = slf.DealProcessModelData(pullDataResponse.Data)
-
+ case common.PullDataTypeDevice:
+ err = slf.DealDeviceData(pullDataResponse.Data)
}
if err != nil {
logx.Infof("process pull data err :%s", err)
@@ -346,3 +391,7 @@
}
return nil
}
+
+func (slf *PullDataResponse) DealDeviceData(data interface{}) error {
+ return nil
+}
--
Gitblit v1.8.0