radardevice.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package models
  2. //雷达
  3. type RadarDevice struct {
  4. ID string `gorm:"type:varchar(32);primary_key"` //设备ID,DID
  5. Name string `gorm:"type:varchar(64)"` //设备名称
  6. GID string `gorm:"type:varchar(32);key"` //网关ID
  7. Brand int `gorm:"type:int"` //设备品牌
  8. Model int `gorm:"type:int"` //设备型号
  9. DevType int `gorm:"type:int"` //6,雷达
  10. IP string `gorm:"type:varchar(256);key"` //IP地址
  11. Port uint16 `gorm:"type:int"` //端口
  12. SuggestSpeed int `gorm:"type:int"` //建议速度,提示限速
  13. Tenant string `gorm:"type:varchar(8)"` //租户ID
  14. State int `gorm:"type:int"` //1启用,0禁用
  15. LcModel
  16. }
  17. func (RadarDevice) TableName() string {
  18. return "t_device_radar"
  19. }
  20. func (r RadarDevice) Delete() error {
  21. return G_db.Model(&r).Updates(map[string]interface{}{"state": 0}).Error
  22. }
  23. func (r RadarDevice) IsExistedByCode() (bool, error) {
  24. var count = 0
  25. err := G_db.Model(&r).Where(" id = ? ", r.ID).Count(&count).Error
  26. return count > 0, err
  27. }
  28. func (r RadarDevice) SaveFromWeb() error {
  29. has, err := r.IsExistedByCode()
  30. if err != nil {
  31. return err
  32. }
  33. if has { //更新
  34. return G_db.Model(&r).Updates(map[string]interface{}{"name": r.Name, "tenant": r.Tenant, "state": r.State}).Error
  35. } else { //插入
  36. return G_db.Create(&r).Error
  37. }
  38. }
  39. func (r RadarDevice) SaveFromGateway() error {
  40. has, err := r.IsExistedByCode()
  41. if err != nil {
  42. return err
  43. }
  44. if has { //更新
  45. return G_db.Model(&r).Updates(map[string]interface{}{"g_id": r.GID,
  46. "brand": r.Brand, "model": r.Model, "dev_type": r.DevType,
  47. "ip": r.IP, "port": r.Port, "suggest_speed": r.SuggestSpeed}).Error
  48. } else { //插入
  49. return G_db.Create(&r).Error
  50. }
  51. }