dev_screens.go 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package devices
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. "server/model/common/request"
  6. "time"
  7. )
  8. type Screens struct {
  9. ID int `gorm:"primarykey" json:"ID"` //主键ID
  10. ScreensName string `gorm:"type:varchar(64)" json:"screensName"` //设备名称
  11. ScreensCode string `gorm:"type:varchar(64)" json:"screensCode"` //设备编码
  12. Sn string `gorm:"type:varchar(64)" json:"sn"` //设备sn
  13. GatewayId int `gorm:"type:int" json:"gatewayId"` //所属网关
  14. ScreensBrand string `gorm:"type:varchar(60)" json:"screensBrand"` //屏幕品牌
  15. ScreensModel string `gorm:"type:varchar(60)" json:"screensModel"` //屏幕型号
  16. IPAddress string `gorm:"type:varchar(40)" json:"ipAddress"` //IP地址
  17. InstallTime time.Time `gorm:"type:date" json:"installTime"` //安装时间
  18. Shunt int `gorm:"type:int" json:"shunt"` //所属分路 1主路,2支路
  19. ShuntDescribe string `gorm:"type:varchar(60)" json:"shuntDescribe"` //分路描述
  20. ResolutionId int `gorm:"type:int" json:"resolutionId"` //分辨率
  21. ScreensSizeId int `gorm:"type:int" json:"screensSizeId"` //信息屏尺寸
  22. IsDeleted gorm.DeletedAt `gorm:"default:null" json:"isDeleted"` //是否删除
  23. Status int `gorm:"type:int;default:0" json:"status"` //在线状态 0=离线,1=在线
  24. PlayStatus int `gorm:"type:int;default:0" json:"playStatus"` //播放状态
  25. DisplayStatus int `gorm:"type:int;default:0" json:"displayStatus"` //显示模板状态
  26. SourceStatus int `gorm:"type:int;default:0" json:"sourceStatus"` //素材状态
  27. GateWay GateWay `gorm:"foreignkey:GatewayId"`
  28. Resolution Resolution `gorm:"foreignkey:ResolutionId"`
  29. ScreensSize ScreensSize `gorm:"foreignkey:ScreensSizeId"`
  30. }
  31. func (Screens) TableName() string {
  32. return "dev_screens"
  33. }
  34. func (s Screens) DelScreens(id int) error {
  35. err := global.GVA_DB.Model(&s).Where("id = ?", id).Delete(&s).Error
  36. return err
  37. }
  38. func (s Screens) IsExistedByCode() error {
  39. err := global.GVA_DB.Model(&Screens{}).Where("screens_code = ?", s.ScreensCode).First(&s).Error
  40. return err
  41. }
  42. func (s Screens) AddScreens() error {
  43. err := global.GVA_DB.Model(&Screens{}).Create(&s).Error
  44. return err
  45. }
  46. func (s Screens) UpdateScreens() error {
  47. err := global.GVA_DB.Model(&s).
  48. Select("screens_name", "screens_code", "sn", "gateway_id", "screens_brand", "screens_model", "ip_address", "install_time", "shunt", "shunt_describe", "resolution_id", "screens_size_id").
  49. Where("id=?", s.ID).
  50. Updates(map[string]interface{}{
  51. "screens_name": s.ScreensName,
  52. "screens_code": s.ScreensCode,
  53. "sn": s.Sn,
  54. "gateway_id": s.GatewayId,
  55. "screens_brand": s.ScreensBrand,
  56. "screens_model": s.ScreensModel,
  57. "ip_address": s.IPAddress,
  58. "install_time": s.InstallTime,
  59. "shunt": s.Shunt,
  60. "shunt_describe": s.ShuntDescribe,
  61. "resolution_id": s.ResolutionId,
  62. "screens_size_id": s.ScreensSizeId,
  63. }).Error
  64. return err
  65. }
  66. func QueryScreensInfoList(limit, offset int, keyword, shunt string) (screensList []Screens, total int64, err error) {
  67. db := global.GVA_DB.Model(&Screens{})
  68. if keyword != "" {
  69. db.Where("screens_name like ? or screens_code like ?", "%"+keyword+"%", "%"+keyword+"%")
  70. }
  71. if shunt != "" {
  72. db.Where("shunt = ?", shunt)
  73. }
  74. err = db.Count(&total).Error
  75. if err != nil {
  76. return
  77. }
  78. err = db.Limit(limit).Offset(offset).Preload("GateWay").Preload("Resolution").Preload("ScreensSize").Find(&screensList).Error
  79. return
  80. }
  81. func QueryScreensToDetail(id int) (screensList []Screens, err error) {
  82. db := global.GVA_DB.Model(&Screens{})
  83. err = db.Where("gateway_id = ?", id).Find(&screensList).Error
  84. return
  85. }
  86. func UpdateScreensStatusByGatewayId(id, status int) error {
  87. var screens Screens
  88. err := global.GVA_DB.Model(&screens).
  89. Select("status", "play_status", "display_status", "source_status").
  90. Where("gateway_id = ?", id).
  91. Updates(map[string]interface{}{
  92. "status": status,
  93. "play_status": status,
  94. "display_status": status,
  95. "source_status": status,
  96. }).Error
  97. return err
  98. }
  99. func UpdateScreensStatus(code string, sta request.DeviceStatus) error {
  100. var screens Screens
  101. //err := global.GVA_DB.Model(&screens).
  102. // Select("status").
  103. // Where("screens_code = ?", code).
  104. // Updates(map[string]interface{}{
  105. // "status": status,
  106. // }).Error
  107. //return err
  108. return global.GVA_DB.Model(&screens).Where("screens_code = ?", code).Updates(Screens{
  109. Status: sta.Status,
  110. PlayStatus: sta.PlayStatus,
  111. DisplayStatus: sta.DisplayStatus,
  112. SourceStatus: sta.SourceStatus,
  113. }).Error
  114. }
  115. func QueryAllScreens() (screensList []Screens) {
  116. _ = global.GVA_DB.Model(&Screens{}).Find(&screensList)
  117. return screensList
  118. }