dev_radar.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package devices
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. "time"
  6. )
  7. type Radar struct {
  8. ID int `gorm:"primarykey" json:"ID"` //主键ID
  9. RadarName string `gorm:"type:varchar(64)" json:"radarName"` //设备名称
  10. RadarCode string `gorm:"type:varchar(64)" json:"radarCode"` //设备编码
  11. GatewayId int `gorm:"type:int" json:"gatewayId"` //所属网关
  12. RadarBrand string `gorm:"type:varchar(60)" json:"radarBrand"` //雷达品牌
  13. RadarModel string `gorm:"type:varchar(60)" json:"radarModel"` //雷达型号
  14. DetectionRange string `gorm:"type:varchar(60)" json:"detectionRange"` //探测距离
  15. IPAddress string `gorm:"type:varchar(40)" json:"ipAddress"` //IP地址
  16. InstallTime time.Time `gorm:"type:date" json:"installTime"` //安装时间
  17. Shunt int `gorm:"type:int" json:"shunt"` //所属分路 1主路,2支路
  18. ShuntDescribe string `gorm:"type:varchar(60)" json:"shuntDescribe"` //分路描述
  19. IsDeleted gorm.DeletedAt `gorm:"default:null" json:"isDeleted"` //是否删除
  20. Status int `gorm:"type:int;default:0" json:"status"` //在线状态 0=离线,1=在线
  21. GateWay GateWay `gorm:"foreignkey:GatewayId"`
  22. }
  23. func (Radar) TableName() string {
  24. return "dev_radar"
  25. }
  26. func (r Radar) UpdateRadar() error {
  27. err := global.GVA_DB.Model(&r).
  28. Select("radar_name", "radar_code", "gateway_id", "radar_brand", "radar_model", "ip_address", "install_time", "shunt", "shunt_describe", "detection_range").
  29. Where("id=?", r.ID).
  30. Updates(map[string]interface{}{
  31. "radar_name": r.RadarName,
  32. "radar_code": r.RadarCode,
  33. "gateway_id": r.GatewayId,
  34. "radar_brand": r.RadarBrand,
  35. "radar_model": r.RadarModel,
  36. "ip_address": r.IPAddress,
  37. "install_time": r.InstallTime,
  38. "shunt": r.Shunt,
  39. "shunt_describe": r.ShuntDescribe,
  40. "detection_range": r.DetectionRange,
  41. }).Error
  42. return err
  43. }
  44. func (r Radar) IsExistedByCode() error {
  45. err := global.GVA_DB.Model(&Radar{}).Where("radar_code = ?", r.RadarCode).First(&r).Error
  46. return err
  47. }
  48. func (r Radar) AddRadar() error {
  49. err := global.GVA_DB.Model(&Radar{}).Create(&r).Error
  50. return err
  51. }
  52. func (r Radar) DelRadar(id int) error {
  53. err := global.GVA_DB.Model(&r).Where("id = ?", id).Delete(&r).Error
  54. return err
  55. }
  56. func QueryRadarInfoList(limit, offset int, keyword, shunt string) (radarList []Radar, total int64, err error) {
  57. db := global.GVA_DB.Model(&Radar{})
  58. if keyword != "" {
  59. db.Where("radar_name like ? or radar_code like ?", "%"+keyword+"%", "%"+keyword+"%")
  60. }
  61. if shunt != "" {
  62. db.Where("shunt = ?", shunt)
  63. }
  64. err = db.Count(&total).Error
  65. if err != nil {
  66. return
  67. }
  68. err = db.Limit(limit).Offset(offset).Preload("GateWay").Find(&radarList).Error
  69. return
  70. }
  71. func QueryRadarToDetail(id int) (radarList []Radar, err error) {
  72. db := global.GVA_DB.Model(&Radar{})
  73. err = db.Where("gateway_id = ?", id).Find(&radarList).Error
  74. return
  75. }
  76. func UpdateRadarStatusByGatewayId(id, status int) error {
  77. var radar Radar
  78. err := global.GVA_DB.Model(&radar).
  79. Select("status").
  80. Where("gateway_id = ?", id).
  81. Updates(map[string]interface{}{
  82. "status": status,
  83. }).Error
  84. return err
  85. }