dev_screens.go 3.1 KB

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