sensor.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package models
  2. //传感器设备,数据来自web
  3. type DeviceSensor 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)"` //网关ID
  7. Brand int `gorm:"type:int"` //品牌
  8. Model int `gorm:"type:int"` //型号
  9. Height float32 `gorm:"type:float(10,2)"` //安装高度,单位米
  10. Tenant string `gorm:"type:varchar(8)"` //租户ID
  11. State int `gorm:"type:int"` //1启用,0禁用
  12. TID int `gorm:"type:int"` //物模型ID
  13. LcModel
  14. }
  15. func (DeviceSensor) TableName() string {
  16. return "t_device_sensor"
  17. }
  18. func (o DeviceSensor) Delete() error {
  19. return G_db.Model(&o).Updates(map[string]interface{}{"state": 0}).Error
  20. }
  21. func (o DeviceSensor) IsExistedByCode() (bool, error) {
  22. var count int = 0
  23. err := G_db.Model(&o).Where(" id = ? ", o.ID).Count(&count).Error
  24. return count > 0, err
  25. }
  26. func (o DeviceSensor) SaveFromWeb() error {
  27. has, err := o.IsExistedByCode()
  28. if err != nil {
  29. return err
  30. }
  31. if has { //更新
  32. return G_db.Model(&o).Updates(map[string]interface{}{
  33. "name": o.Name, "g_id": o.GID, "brand": o.Brand, "model": o.Model, "height": o.Height,
  34. "tenant": o.Tenant, "state": o.State}).Error
  35. } else { //插入
  36. return G_db.Create(&o).Error
  37. }
  38. }
  39. func UpdateDeviceSensorTID(code string, tid int) error {
  40. return nil
  41. sql := `UPDATE t_device_sensor SET t_id = ? WHERE id = ?;`
  42. return G_db.Raw(sql, tid, code).Error
  43. }