dev_screens.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package devices
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. "time"
  6. )
  7. type Screens struct {
  8. ID int `gorm:"primarykey" json:"ID"` //主键ID
  9. ScreensName string `gorm:"type:varchar(64)" json:"screensName"` //设备名称
  10. ScreensCode string `gorm:"type:varchar(64)" json:"screensCode"` //设备编码
  11. GatewayId int `gorm:"type:int" json:"gatewayId"` //所属网关
  12. ScreensBrand string `gorm:"type:varchar(60)" json:"screensBrand"` //屏幕品牌
  13. ScreensModel string `gorm:"type:varchar(60)" json:"screensModel"` //屏幕型号
  14. IPAddress string `gorm:"type:varchar(40)" json:"ipAddress"` //IP地址
  15. InstallTime time.Time `gorm:"type:date" json:"installTime"` //安装时间
  16. Shunt int `gorm:"type:int" json:"shunt"` //所属分路 1主路,2支路
  17. ShuntDescribe string `gorm:"type:varchar(60)" json:"shuntDescribe"` //分路描述
  18. ResolutionId int `gorm:"type:int" json:"resolutionId"` //分辨率
  19. ScreensSizeId int `gorm:"type:int" json:"screensSizeId"` //信息屏尺寸
  20. IsDeleted gorm.DeletedAt `gorm:"default:null" json:"isDeleted"` //是否删除
  21. Status int `gorm:"type:int;default:1" json:"status"` //在线状态 0=在线,1=离线
  22. GateWay GateWay `gorm:"foreignkey:GatewayId"`
  23. Resolution Resolution `gorm:"foreignkey:ResolutionId"`
  24. ScreensSize ScreensSize `gorm:"foreignkey:ScreensSizeId"`
  25. }
  26. func (Screens) TableName() string {
  27. return "dev_screens"
  28. }
  29. func (s Screens) DelScreens(id int) error {
  30. err := global.GVA_DB.Model(&s).Where("id = ?", id).Delete(&s).Error
  31. return err
  32. }
  33. func (s Screens) IsExistedByCode() error {
  34. err := global.GVA_DB.Model(&Screens{}).Where("screens_code = ?", s.ScreensCode).First(&s).Error
  35. return err
  36. }
  37. func (s Screens) AddScreens() error {
  38. err := global.GVA_DB.Model(&Screens{}).Create(&s).Error
  39. return err
  40. }
  41. func (s Screens) UpdateScreens() error {
  42. err := global.GVA_DB.Model(&s).
  43. Select("screens_name", "screens_code", "gateway_id", "screens_brand", "screens_model", "ip_address", "install_time", "shunt", "shunt_describe", "resolution_id", "screens_size_id").
  44. Where("id=?", s.ID).
  45. Updates(map[string]interface{}{
  46. "screens_name": s.ScreensName,
  47. "screens_code": s.ScreensCode,
  48. "gateway_id": s.GatewayId,
  49. "screens_brand": s.ScreensBrand,
  50. "screens_model": s.ScreensModel,
  51. "ip_address": s.IPAddress,
  52. "install_time": s.InstallTime,
  53. "shunt": s.Shunt,
  54. "shunt_describe": s.ShuntDescribe,
  55. "resolution_id": s.ResolutionId,
  56. "screens_size_id": s.ScreensSizeId,
  57. }).Error
  58. return err
  59. }
  60. func QueryScreensInfoList(limit, offset int, keyword, shunt string) (screensList []Screens, total int64, err error) {
  61. db := global.GVA_DB.Model(&Screens{})
  62. if keyword != "" {
  63. db.Where("screens_name like ? or screens_code like ?", "%"+keyword+"%", "%"+keyword+"%")
  64. }
  65. if shunt != "" {
  66. db.Where("shunt = ?", shunt)
  67. }
  68. err = db.Count(&total).Error
  69. if err != nil {
  70. return
  71. }
  72. err = db.Limit(limit).Offset(offset).Preload("GateWay").Preload("Resolution").Preload("ScreensSize").Find(&screensList).Error
  73. return
  74. }
  75. func QueryScreensToDetail(id int) (screensList []Screens, err error) {
  76. db := global.GVA_DB.Model(&Screens{})
  77. err = db.Where("gateway_id = ?", id).Find(&screensList).Error
  78. return
  79. }