package dao import ( "fmt" "gorm.io/gorm" ) type Device struct { gorm.Model AuthID int `gorm:"column:auth_id"` DeviceName string `gorm:"column:device_name"` DeviceType string `gorm:"column:device_type"` DeviceStatus string `gorm:"column:device_status"` DeviceLocation string `gorm:"column:device_location"` DeviceIP string `gorm:"column:device_ip"` DeviceInfo string `gorm:"column:device_info"` } func CreateDevice(authID int, deviceName, deviceType string, deviceStatus, deviceLocation, deviceIP, deviceInfo string) uint { device := Device{AuthID: authID, DeviceName: deviceName, DeviceType: deviceType, DeviceStatus: deviceStatus, DeviceLocation: deviceLocation, DeviceIP: deviceIP, DeviceInfo: deviceInfo} result := DB.Create(&device) if result.Error != nil { fmt.Println("CreateDevice failed", result.Error) return 0 } return device.ID } func DeleteDeviceByID(id, user int) bool { res := DB.Model(&Device{}).Where("id = ? and auth_id = ?", id, user).Delete(&Device{}) if res.Error != nil { return false } return true } func FindDeviceByID(id, auth_id int) Device { var device Device DB.Where("id = ? and auth_id = ?", id, auth_id).First(&device) return device } func FindDeviceByAuthID(auth_id int) []Device { var devices []Device DB.Where("auth_id = ?", auth_id).Find(&devices) return devices } func SetDeviceStatus(status string, id, auth_id int) bool { result := DB.Model(&Device{}).Where("id = ? and auth_id = ?", id, auth_id).Updates(Device{DeviceStatus: status}) if result.Error != nil { return false } return true } func UpdateDeviceByID(id, auth_id int, deviceName, deviceType, deviceStatus, deviceLocation, deviceIP, deviceInfo string) bool { pd := FindDeviceByID(id, auth_id) if pd.ID == 0 { return false } else { if deviceName == "" { deviceName = pd.DeviceName } if deviceType == "" { deviceType = pd.DeviceType } if deviceStatus == "" { deviceStatus = pd.DeviceStatus } if deviceLocation == "" { deviceLocation = pd.DeviceLocation } if deviceIP == "" { deviceIP = pd.DeviceIP } if deviceInfo == "" { deviceInfo = pd.DeviceInfo } } res := DB.Model(&Device{}).Where("id = ? and auth_id = ?", id, auth_id).Updates(Device{DeviceName: deviceName, DeviceType: deviceType, DeviceStatus: deviceStatus, DeviceLocation: deviceLocation, DeviceIP: deviceIP, DeviceInfo: deviceInfo}) if res.Error != nil { return false } return true }