gateway.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package models
  2. type Gateway struct {
  3. ID string `gorm:"column:gateway_sn;type:varchar(32)"`
  4. Name string `gorm:"column:gateway_name;type:varchar(32)"`
  5. Brand int `gorm:"column:brand_id;type:int"` //品牌
  6. Model int `gorm:"column:model_id;type:int"` //型号
  7. Sn string `gorm:"-"`
  8. Upgrade bool `gorm:"-"`
  9. MqttEdgeServer string `gorm:"-"`
  10. MqttEdgeUser string `gorm:"-"`
  11. MqttEdgePassword string `gorm:"-"`
  12. MqttCloudServer string `gorm:"-"`
  13. MqttCloudUser string `gorm:"-"`
  14. MqttCloudPassword string `gorm:"-"`
  15. Tenant string `gorm:"column:tenant_id;type:varchar(8)"` //租户ID
  16. State int `-` //1启用,0禁用
  17. //LcModel
  18. }
  19. func (Gateway) TableName() string {
  20. //return "t_gateway"
  21. return "device_garbage"
  22. }
  23. func (o Gateway) Delete() error {
  24. return G_db.Model(&o).Where("id = ?", o.ID).Updates(map[string]interface{}{"state": 0}).Error
  25. }
  26. func (o *Gateway) Get() error {
  27. return G_db.Model(&o).Where("id = ?", o.ID).Find(&o).Error
  28. }
  29. func (o Gateway) IsExistedByCode() (bool, error) {
  30. var count int = 0
  31. err := G_db.Model(&o).Where(" id = ? ", o.ID).Count(&count).Error
  32. return count > 0, err
  33. }
  34. func (o Gateway) SaveFromWeb() error {
  35. has, err := o.IsExistedByCode()
  36. if err != nil {
  37. return err
  38. }
  39. if has {
  40. //更新
  41. return G_db.Model(&o).Updates(map[string]interface{}{
  42. "name": o.Name, "tenant": o.Tenant,
  43. "brand": o.Brand, "model": o.Model, "state": o.State}).Error
  44. } else {
  45. //插入
  46. return G_db.Create(&o).Error
  47. }
  48. }
  49. func (o Gateway) SaveFromGateway() error {
  50. has, err := o.IsExistedByCode()
  51. if err != nil {
  52. return err
  53. }
  54. if has {
  55. //更新
  56. return G_db.Model(&o).Updates(map[string]interface{}{"name": o.Name, "tenant": o.Tenant, "sn": o.Sn,
  57. "upgrade": o.Upgrade, "mqtt_edge_server": o.MqttEdgeServer, "mqtt_edge_user": o.MqttEdgeUser,
  58. "mqtt_edge_password": o.MqttEdgePassword, "mqtt_cloud_server": o.MqttCloudServer,
  59. "mqtt_cloud_user": o.MqttCloudUser, "mqtt_cloud_password": o.MqttCloudPassword}).Error
  60. } else {
  61. //插入
  62. return G_db.Create(&o).Error
  63. }
  64. }