videoplayer/dao/device.go

87 lines
2.4 KiB
Go

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
}