concentrator.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package models
  2. //zigbee集中器,数据来自web创建
  3. type DeviceConcentrator 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. Netid int `gorm:"type:int"` //网络号,zigbee灯控专用,其他类型灯控置0
  10. Channel int `gorm:"type:int"` //通道号,zigbee灯控专用,其他类型灯控置0
  11. Tenant string `gorm:"type:varchar(8)"` //租户ID
  12. State int `gorm:"type:int"` //1启用,0禁用
  13. TID int `gorm:"type:int"` //物模型ID
  14. LcModel
  15. }
  16. func (DeviceConcentrator) TableName() string {
  17. return "t_device_concentrator"
  18. }
  19. func (o DeviceConcentrator) Delete() error {
  20. return G_db.Model(&o).Updates(map[string]interface{}{"state": 0}).Error
  21. }
  22. func (o DeviceConcentrator) IsExistedByCode() (bool, error) {
  23. var count int = 0
  24. err := G_db.Model(&o).Where(" id = ? ", o.ID).Count(&count).Error
  25. return count > 0, err
  26. }
  27. func (o DeviceConcentrator) SaveFromWeb() error {
  28. return nil
  29. has, err := o.IsExistedByCode()
  30. if err != nil {
  31. return err
  32. }
  33. if has {
  34. //更新
  35. return G_db.Model(&o).Updates(map[string]interface{}{
  36. "name": o.Name, "g_id": o.GID, "brand": o.Brand, "model": o.Model, "netid": o.Netid,
  37. "channel": o.Channel, "tenant": o.Tenant, "state": o.State}).Error
  38. } else {
  39. //插入
  40. return G_db.Create(&o).Error
  41. }
  42. }
  43. func UpdateTID(code string, tid int) error {
  44. return nil
  45. /* if err := G_db.Model(&DeviceLampController{}).Updates(map[string]interface{}{"t_id": tid}).Where("concentrator = ? and t_id = 0", code).Error; err != nil {
  46. return err
  47. }
  48. if err := G_db.Model(&DeviceConcentrator{}).Updates(map[string]interface{}{"t_id": tid}).Where("id = ? and t_id = 0", code).Error; err != nil {
  49. return err
  50. }*/
  51. sql := `UPDATE t_device_lampcontroller SET t_id = ? WHERE concentrator = ? AND t_id = 0;
  52. UPDATE t_device_concentrator SET t_id = ? WHERE id = ? AND t_id = 0;`
  53. return G_db.Raw(sql, tid, code, tid, code).Error
  54. }
  55. func GetConcentratorbyID(code string) (*DeviceConcentrator, error) {
  56. var obj DeviceConcentrator
  57. err := G_db.Model(&DeviceConcentrator{}).Where("id = ? ", code).Find(&obj).Error
  58. return &obj, err
  59. }