dev_screens.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package dao
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. "time"
  6. )
  7. type Screens struct {
  8. ID uint `gorm:"primarykey" json:"ID"` //主键ID
  9. ScreensName string `gorm:"type:varchar(64)" json:"screensName"` //设备名称
  10. Sn string `gorm:"type:varchar(64)" json:"sn"` //设备sn
  11. ProjectId uint `gorm:"type:int" json:"projectId"` //所属项目
  12. IPAddress string `gorm:"type:varchar(40)" json:"ipAddress"` //IP地址
  13. Remark string `gorm:"type:varchar(60)" json:"Remark"` //备注
  14. IsDeleted gorm.DeletedAt `gorm:"default:null" json:"isDeleted"` //是否删除
  15. OnTime time.Time `gorm:"default:null" json:"onTime"` // 在线时间
  16. Status int `gorm:"type:int;default:0" json:"status"` //在线状态 0=离线,1=在线
  17. Project Project `gorm:"foreignkey:ProjectId"`
  18. ProgramId int `gorm:"type:int" json:"programId"` // 节目id
  19. Program Program `gorm:"foreignkey:ProgramId"`
  20. SoundPeriodId int `gorm:"type:int" json:"soundPeriodId"`
  21. SoundPeriod SoundPeriod `gorm:"foreignkey:SoundPeriodId"`
  22. VoiceId int `gorm:"type:int" json:"voiceId"`
  23. Voice Voice `gorm:"foreignkey:VoiceId"`
  24. CameraId int `gorm:"type:int" json:"cameraId"`
  25. Camera Camera `gorm:"foreignkey:CameraId"`
  26. }
  27. func (Screens) TableName() string {
  28. return "dev_screens"
  29. }
  30. func (s Screens) AddScreens() error {
  31. return global.GVA_DB.Debug().Model(&Screens{}).Create(&s).Error
  32. }
  33. func (s Screens) DelScreens(id int) error {
  34. err := global.GVA_DB.Debug().Model(&s).Where("id = ?", id).Delete(&s).Error
  35. return err
  36. }
  37. func (s Screens) GetScreensList(limit, offset, projectId int, sn string, uid uint) (screensList []Screens, total int64, err error) {
  38. db := global.GVA_DB.Model(&Screens{})
  39. if sn != "" {
  40. db.Where("sn like ?", "%"+sn+"%")
  41. }
  42. if projectId != 0 {
  43. db.Where("project_id = ?", projectId)
  44. } else {
  45. var projectIds []uint
  46. list, _ := GetProjectListByUserIDNoPage(uid)
  47. for _, project := range list {
  48. projectIds = append(projectIds, project.ID)
  49. }
  50. db.Where("project_id in (?)", projectIds).Order("id DESC ")
  51. }
  52. err = db.Count(&total).Error
  53. if err != nil {
  54. return
  55. }
  56. err = db.Limit(limit).Offset(offset).Preload("Camera").Preload("Voice").Preload("SoundPeriod").Preload("Program").Preload("Project").Find(&screensList).Error
  57. return
  58. }
  59. func (s Screens) UpdateScreens() error {
  60. return global.GVA_DB.Debug().Model(&Screens{}).Where("id = ?", s.ID).Updates(map[string]interface{}{
  61. "screens_name": s.ScreensName,
  62. "sn": s.Sn,
  63. "project_id": s.ProjectId,
  64. "ip_address": s.IPAddress,
  65. "remark": s.Remark,
  66. }).Error
  67. }
  68. func QueryScreensToDetail(id uint) (screensList []Screens, err error) {
  69. db := global.GVA_DB.Debug().Model(&Screens{})
  70. err = db.Where("project_id = ?", id).Find(&screensList).Error
  71. return
  72. }
  73. func QueryAllScreens() (screensList []Screens, err error) {
  74. err = global.GVA_DB.Debug().Model(&Screens{}).Find(&screensList).Error
  75. return
  76. }
  77. func QueryScreensBySn(sn string) (screen Screens, err error) {
  78. err = global.GVA_DB.Debug().Model(&Screens{}).Where("sn = ?", sn).Find(&screen).Error
  79. return
  80. }
  81. func UpdateScreensStatusBySn(sn, onTime string, status int) (err error) {
  82. err = global.GVA_DB.Debug().Model(&Screens{}).Where("sn = ?", sn).Update("status", status).Update("on_time", onTime).Error
  83. return
  84. }