gateway.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package dao
  2. import (
  3. "server/global"
  4. "time"
  5. )
  6. // Gateway 网关表模型
  7. type Gateway struct {
  8. global.GVA_MODEL
  9. NickName string `json:"nickName" gorm:"column:nick_name;comment:昵称"`
  10. ProductKey string `json:"productKey" gorm:"column:product_key;comment:产品Key"`
  11. DeviceName string `json:"deviceName" gorm:"column:device_name;uniqueIndex;comment:设备名称(唯一)"`
  12. NetPwd string `json:"netPwd" gorm:"column:net_pwd;comment:网络密码"`
  13. Version string `json:"version" gorm:"column:version;comment:固件版本"`
  14. Online int `json:"online" gorm:"column:online;comment:在线状态 1=在线 0=离线"`
  15. OnlineTime *time.Time `json:"onlineTime" gorm:"column:online_time;comment:最后心跳时间"`
  16. Remark string `json:"remark" gorm:"column:remark;comment:备注"`
  17. }
  18. func (Gateway) TableName() string {
  19. return "gateway"
  20. }
  21. func QueryAllGateways() (gateways []Gateway, err error) {
  22. err = global.GVA_DB.Model(&Gateway{}).Find(&gateways).Error
  23. return
  24. }
  25. func QueryGatewayByDeviceName(deviceName string) (gateway Gateway, err error) {
  26. err = global.GVA_DB.Model(&Gateway{}).Where("device_name = ?", deviceName).First(&gateway).Error
  27. return
  28. }
  29. func QueryGatewayList(name, productKey string, limit, offset int) (gateways []Gateway, total int64, err error) {
  30. db := global.GVA_DB.Model(&Gateway{})
  31. // 如果有条件搜索 下方会自动创建搜索语句
  32. if productKey != "" {
  33. db = db.Where("product_key LIKE ?", "%"+productKey+"%")
  34. }
  35. if name != "" {
  36. db = db.Where("device_name LIKE ?", "%"+name+"%")
  37. }
  38. err = db.Count(&total).Error
  39. if err != nil {
  40. return nil, 0, err
  41. }
  42. err = db.Limit(limit).Offset(offset).Find(&gateways).Error
  43. return gateways, total, err
  44. }
  45. func (g Gateway) CreateGateway() error {
  46. return global.GVA_DB.Model(&Gateway{}).Create(&g).Error
  47. }
  48. func (g Gateway) UpdateGateway() error {
  49. return global.GVA_DB.Save(&g).Error
  50. }
  51. func DeleteGateway(id int) error {
  52. return global.GVA_DB.Unscoped().Delete(&Gateway{}, id).Error
  53. }