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.go | 92 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 87 insertions(+), 5 deletions(-) diff --git a/service/device.go b/service/device.go index f778f25..1906d99 100644 --- a/service/device.go +++ b/service/device.go @@ -2,13 +2,21 @@ import ( "apsClient/conf" + "apsClient/constvar" "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 +27,96 @@ 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(ServerID string) (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 = deviceList[0] + } else if conf.Conf.System.DeviceId != "" { + conf.Conf.CurrentDeviceID = conf.Conf.System.DeviceId + } else { + conf.Conf.CurrentDeviceID = ServerID + } + 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).UpdateByMap(map[string]interface{}{"need_set_process_params": needSetProcessParams}) +} + +func GetCurrentDevice() (device *model.Device, err error) { + if conf.Conf.CurrentDeviceID == "" { + return nil, errors.New("褰撳墠璁惧ID涓嶅瓨鍦紝璇锋鏌�") + } + device, err = model.NewDeviceSearch().SetDeviceId(conf.Conf.CurrentDeviceID).First() + if err == gorm.ErrRecordNotFound { + return nil, errors.New("璁惧涓嶅瓨鍦�") + } + return device, nil +} + +// ReportsSystemDeviceToCloud 鍒涘缓鍚屾璁惧id璁板綍 +func ReportsSystemDeviceToCloud(systemDeviceID string) { + err := model.NewReportsToCloudSearch(nil).Create(&model.ReportsToCloud{ + ReportType: constvar.ReportTypeSystemDeviceID, + Content: systemDeviceID, + }) + if err != nil { + logx.Errorf("ReportsSystemDeviceToCloud create record error:%v", err) + } } -- Gitblit v1.8.0