From 02a84fb6fb2a39bfe7fc5cf6c0137bbf231b17fe Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 09 十一月 2023 14:14:17 +0800
Subject: [PATCH] 设备列表返回是否设置工艺参数字段

---
 service/device.go |   67 +++++++++++++++++++++++++++++++--
 1 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/service/device.go b/service/device.go
index f778f25..f09559e 100644
--- a/service/device.go
+++ b/service/device.go
@@ -3,12 +3,19 @@
 import (
 	"apsClient/conf"
 	"apsClient/model"
-	"fmt"
+	"apsClient/model/response"
+	"apsClient/pkg/logx"
+	"errors"
+	"github.com/jinzhu/gorm"
 	"os"
+	"strings"
 )
 
 func GetDeviceIDList() (deviceIds []string, err error) {
 	devices, err := model.NewDeviceSearch().SetDeviceMac(conf.Conf.System.DeviceId).FindNotTotal()
+	if err == gorm.ErrRecordNotFound {
+		return nil, nil
+	}
 	if err != nil {
 		return nil, err
 	}
@@ -19,22 +26,72 @@
 	return deviceIds, nil
 }
 
+func GetDeviceList() (deviceList []*response.Device, err error) {
+	devices, err := model.NewDeviceSearch().SetDeviceMac(conf.Conf.System.DeviceId).FindNotTotal()
+	if err == gorm.ErrRecordNotFound {
+		return nil, nil
+	}
+	if err != nil {
+		return nil, err
+	}
+	deviceList = make([]*response.Device, 0, len(devices))
+	for _, device := range devices {
+		deviceList = append(deviceList, &response.Device{
+			DeviceID:             device.DeviceID,
+			DeviceName:           device.DeviceName,
+			NeedSetProcessParams: device.NeedSetProcessParams,
+		})
+	}
+	return deviceList, nil
+}
+
+func InitCurrentDeviceID() (err error) {
+	currentDeviceID := ReadDeviceIDFromFile()
+	if currentDeviceID != "" {
+		conf.Conf.CurrentDeviceID = currentDeviceID
+		return
+	}
+	deviceList, err := GetDeviceIDList()
+	if err != nil {
+		return err
+	}
+	if len(deviceList) == 0 {
+		conf.Conf.CurrentDeviceID = conf.Conf.System.DeviceId
+	} else {
+		conf.Conf.CurrentDeviceID = deviceList[0]
+	}
+	SetDeviceIDToFile(conf.Conf.CurrentDeviceID)
+	return nil
+}
+
 const deviceIDFile = "currentDeviceID.txt"
 
 func SetDeviceIDToFile(deviceID string) {
 	err := os.WriteFile(deviceIDFile, []byte(deviceID), 0644)
 	if err != nil {
-		fmt.Printf("鏃犳硶鍐欏叆璁惧ID鍒版枃浠�: %v\n", err)
+		logx.Errorf("鏃犳硶鍐欏叆璁惧ID鍒版枃浠�: %v\n", err)
 	} else {
-		fmt.Println("璁惧ID宸插啓鍏ユ枃浠�")
+		logx.Infof("璁惧ID宸插啓鍏ユ枃浠�")
 	}
 }
 
 func ReadDeviceIDFromFile() string {
 	data, err := os.ReadFile(deviceIDFile)
 	if err != nil {
-		fmt.Printf("鏃犳硶璇诲彇璁惧ID鏂囦欢: %v\n", err)
+		logx.Errorf("鏃犳硶璇诲彇璁惧ID鏂囦欢: %v\n", err)
 		return ""
 	}
-	return string(data)
+	deviceId := string(data)
+	deviceId = strings.TrimSpace(deviceId)
+	deviceId = strings.Trim(deviceId, "\n")
+	return deviceId
+}
+
+func UpdateDevice(deviceId string, needSetProcessParams bool) (err error) {
+	device, err := model.NewDeviceSearch().SetDeviceId(deviceId).First()
+	if err == gorm.ErrRecordNotFound {
+		return errors.New("璁惧涓嶅瓨鍦�")
+	}
+	device.NeedSetProcessParams = needSetProcessParams
+	return model.NewDeviceSearch().SetID(device.ID).Save(device)
 }

--
Gitblit v1.8.0