itsdevice.go 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package models
  2. // 抓拍单元
  3. type ItsDevice 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 string `gorm:"type:varchar(24)"` //设备品牌
  8. Model string `gorm:"type:varchar(32)"` //设备型号
  9. DevType int `gorm:"type:int"` //5,抓拍单元
  10. User string `gorm:"type:varchar(32)"` //用户名
  11. Password string `gorm:"type:varchar(64)"` //密码
  12. IP string `gorm:"type:varchar(256)"` //IP地址
  13. Port uint16 `gorm:"type:int"` //端口
  14. HttpAddr string `gorm:"type:varchar(128)"` //web服务地址
  15. SuggestSpeed int `gorm:"type:int"` //建议速度,提示限速
  16. Duration int `gorm:"type:int"` //led屏车速归零时间间隔,单位秒
  17. EnvID string `gorm:"type:varchar(128)"` //关联环境传感器,用于联动显示气象环境信息
  18. TollgateID string `gorm:"type:varchar(32)"` //卡口编号:产生该信息的卡口代码
  19. Tenant string `gorm:"type:varchar(8)"` //租户ID
  20. State int `gorm:"type:int"` //1启用,0禁用
  21. LcModel
  22. }
  23. func (ItsDevice) TableName() string {
  24. //从视图里取
  25. return "t_device_its"
  26. }
  27. func (o ItsDevice) Delete() error {
  28. return G_db.Model(&o).Updates(map[string]interface{}{"state": 0}).Error
  29. }
  30. func (o ItsDevice) IsExistedByCode() (bool, error) {
  31. var count int = 0
  32. err := G_db.Model(&o).Where(" id = ? ", o.ID).Count(&count).Error
  33. return count > 0, err
  34. }
  35. func (o ItsDevice) SaveFromWeb() error {
  36. has, err := o.IsExistedByCode()
  37. if err != nil {
  38. return err
  39. }
  40. if has { //更新
  41. return G_db.Model(&o).Updates(map[string]interface{}{"name": o.Name, "tenant": o.Tenant, "state": o.State}).Error
  42. } else { //插入
  43. return G_db.Create(&o).Error
  44. }
  45. }
  46. func (o ItsDevice) SaveFromGateway() error {
  47. return nil
  48. has, err := o.IsExistedByCode()
  49. if err != nil {
  50. return err
  51. }
  52. if has { //更新
  53. return G_db.Model(&o).Updates(map[string]interface{}{"g_id": o.GID,
  54. "brand": o.Brand, "model": o.Model, "dev_type": o.DevType, "user": o.User, "password": o.Password,
  55. "ip": o.IP, "port": o.Port, "http_addr": o.HttpAddr, "suggest_speed": o.SuggestSpeed, "duration": o.Duration, "env_id": o.EnvID, "tollgate_id": o.TollgateID}).Error
  56. } else { //插入
  57. return G_db.Create(&o).Error
  58. }
  59. }