From cb7e30bb64945dfbd8288a20156f09c97a052075 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 25 十一月 2023 17:45:18 +0800
Subject: [PATCH] fix

---
 model/device_plc.go   |   13 ++++++++-----
 service/device_plc.go |    7 +++++--
 pkg/ecode/code.go     |    1 +
 api/v1/task.go        |    2 +-
 pkg/ecode/msg.go      |    9 +++++----
 5 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index d65ab6c..afe8397 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -285,7 +285,7 @@
 
 	var processModelNumber string
 	plcConfig, code := service.NewDevicePlcService().GetDevicePlc()
-	if code == ecode.OK && plcConfig.ID != 0 {
+	if code == ecode.OK && plcConfig.ID != 0 && len(plcConfig.Details) > 0 {
 		plcConfig.MaxTryTimes = 2
 		device, err := service.GetCurrentDevice()
 		if err != nil {
diff --git a/model/device_plc.go b/model/device_plc.go
index a098e81..a6e7331 100644
--- a/model/device_plc.go
+++ b/model/device_plc.go
@@ -57,12 +57,15 @@
 }
 
 func (slf *DevicePlc) AfterFind(tx *gorm.DB) error {
-	details := make([]*DevicePlcAddress, 0)
-	err := json.Unmarshal([]byte(slf.Detail), &details)
-	if err != nil {
-		return err
+	if slf.Detail != "" {
+		details := make([]*DevicePlcAddress, 0)
+		err := json.Unmarshal([]byte(slf.Detail), &details)
+		if err != nil {
+			return err
+		}
+		slf.Details = details
 	}
-	slf.Details = details
+
 	return nil
 }
 
diff --git a/pkg/ecode/code.go b/pkg/ecode/code.go
index bfc6b58..0d971c8 100644
--- a/pkg/ecode/code.go
+++ b/pkg/ecode/code.go
@@ -8,4 +8,5 @@
 	RedisErr         = 2003 // redis閿欒
 	ParamsErr        = 2004 // 璇锋眰鍙傛暟閿欒
 	NeedConfirmedErr = 2005 // 闇�瑕佸脊绐楃‘璁ょ殑閿欒
+	PlcAddressError  = 2006 //缂哄け鍔犲伐鏁板拰鐩爣鏁板湴鍧�閰嶇疆
 )
diff --git a/pkg/ecode/msg.go b/pkg/ecode/msg.go
index 92759ba..d850fb4 100644
--- a/pkg/ecode/msg.go
+++ b/pkg/ecode/msg.go
@@ -1,10 +1,11 @@
 package ecode
 
 var MsgFlags = map[int]string{
-	UnknownErr: "鏈煡閿欒",
-	DBErr:      "鏁版嵁搴撹繛鎺ュけ璐ワ紝璇锋鏌ユ暟鎹簱閰嶇疆锛�",
-	RedisErr:   "redis閿欒",
-	ParamsErr:  "璇锋眰鍙傛暟閿欒",
+	UnknownErr:      "鏈煡閿欒",
+	DBErr:           "鏁版嵁搴撹繛鎺ュけ璐ワ紝璇锋鏌ユ暟鎹簱閰嶇疆锛�",
+	RedisErr:        "redis閿欒",
+	ParamsErr:       "璇锋眰鍙傛暟閿欒",
+	PlcAddressError: "缂哄け鍔犲伐鏁板拰鐩爣鏁板湴鍧�閰嶇疆",
 }
 
 func GetMsg(errCode int) (errMsg string) {
diff --git a/service/device_plc.go b/service/device_plc.go
index c8124a4..a643653 100644
--- a/service/device_plc.go
+++ b/service/device_plc.go
@@ -19,7 +19,7 @@
 }
 
 func (slf DevicePlcService) GetDevicePlc() (*model.DevicePlc, int) {
-	DevicePlc, err := model.NewDevicePlcSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First()
+	devicePlc, err := model.NewDevicePlcSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First()
 	if err == gorm.ErrRecordNotFound {
 		logx.Errorf("GetDevicePlc failed:%v", err)
 		return &model.DevicePlc{
@@ -41,8 +41,11 @@
 		logx.Errorf("GetDevicePlc failed:%v", err)
 		return nil, ecode.DBErr
 	}
+	if len(devicePlc.Details) == 0 {
+		return nil, ecode.PlcAddressError
+	}
 
-	return DevicePlc, ecode.OK
+	return devicePlc, ecode.OK
 }
 
 func (slf DevicePlcService) GetDeviceChannelAmount() (int, error) {

--
Gitblit v1.8.0