package service import ( "apsClient/conf" "apsClient/model" "apsClient/pkg/logx" "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 } deviceIds = make([]string, 0, len(devices)) for _, device := range devices { deviceIds = append(deviceIds, device.DeviceID) } return deviceIds, 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 { logx.Errorf("无法写入设备ID到文件: %v\n", err) } else { logx.Infof("设备ID已写入文件") } } func ReadDeviceIDFromFile() string { data, err := os.ReadFile(deviceIDFile) if err != nil { logx.Errorf("无法读取设备ID文件: %v\n", err) return "" } deviceId := string(data) deviceId = strings.TrimSpace(deviceId) deviceId = strings.Trim(deviceId, "\n") return deviceId }