From 8324f872ef3a4d0c978a9b1d062800c6a1701c12 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 01 十二月 2023 09:58:17 +0800
Subject: [PATCH] fix

---
 service/device_plc.go |   34 +++++++++++++++++++++++++---------
 1 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/service/device_plc.go b/service/device_plc.go
index db1fd71..a643653 100644
--- a/service/device_plc.go
+++ b/service/device_plc.go
@@ -1,13 +1,15 @@
 package service
 
 import (
+	"apsClient/conf"
 	"apsClient/model"
 	"apsClient/model/request"
 	"apsClient/pkg/ecode"
 	"apsClient/pkg/logx"
 	"apsClient/pkg/structx"
 	"encoding/json"
-	"gorm.io/gorm"
+	"errors"
+	"github.com/jinzhu/gorm"
 )
 
 type DevicePlcService struct{}
@@ -16,27 +18,42 @@
 	return DevicePlcService{}
 }
 
-func (DevicePlcService) GetDevicePlc() (*model.DevicePlc, int) {
-	DevicePlc, err := model.NewDevicePlcSearch().SetOrder("id desc").First()
+func (slf DevicePlcService) GetDevicePlc() (*model.DevicePlc, int) {
+	devicePlc, err := model.NewDevicePlcSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First()
 	if err == gorm.ErrRecordNotFound {
+		logx.Errorf("GetDevicePlc failed:%v", err)
 		return &model.DevicePlc{
-			Id:         0,
+			DeviceID:   "",
 			Brand:      "",
 			Method:     "",
 			Address:    "",
 			Port:       0,
 			BaudRate:   0,
 			SerialName: "",
+			DataBit:    0,
+			StopBit:    0,
+			Parity:     0,
 			IsOpen:     false,
-			Detail:     "",
 			Details:    make([]*model.DevicePlcAddress, 0),
 		}, ecode.OK
 	}
 	if err != nil {
+		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) {
+	device, err := model.NewDeviceSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First()
+	if err != nil {
+		return 0, errors.New("娌℃湁鎵惧埌褰撳墠璁惧")
+	}
+	return device.ExtChannelAmount + 1, nil
 }
 
 func (DevicePlcService) UpdateDevicePlc(plc *request.UpdatePlc) int {
@@ -52,11 +69,10 @@
 		return ecode.ParamsErr
 	}
 	record.Detail = string(detail)
-
-	if plc.Id == 0 {
+	if record.ID == 0 {
 		err = model.NewDevicePlcSearch().Create(&record)
 	} else {
-		err = model.NewDevicePlcSearch().SetId(plc.Id).Save(&record)
+		err = model.NewDevicePlcSearch().Save(&record)
 	}
 
 	if err != nil {

--
Gitblit v1.8.0