dev_screens.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package dao
  2. import (
  3. "gorm.io/gorm"
  4. "server/global"
  5. "server/model/devices"
  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. Status int `gorm:"type:int;default:0" json:"status"` //在线状态 0=离线,1=在线
  16. Project Project `gorm:"foreignkey:ProjectId"`
  17. }
  18. func (Screens) TableName() string {
  19. return "dev_screens"
  20. }
  21. func (s Screens) AddScreens() error {
  22. return global.GVA_DB.Model(&Screens{}).Create(&s).Error
  23. }
  24. func (s Screens) DelScreens(id int) error {
  25. err := global.GVA_DB.Model(&s).Where("id = ?", id).Delete(&s).Error
  26. return err
  27. }
  28. func (s Screens) GetScreensList(info devices.SearchInfo, uid uint) (screensList []Screens, total int64, err error) {
  29. limit := info.PageSize
  30. offset := info.PageSize * (info.Page - 1)
  31. db := global.GVA_DB.Model(&Screens{})
  32. if info.Sn != "" {
  33. db.Where("sn like ?", "%"+info.Sn+"%")
  34. }
  35. if info.ProjectId != 0 {
  36. db.Where("project_id = ?", info.ProjectId)
  37. } else {
  38. var projectIds []uint
  39. list, _ := GetProjectListByUserIDNoPage(uid)
  40. for _, project := range list {
  41. projectIds = append(projectIds, project.ID)
  42. }
  43. db.Where("project_id in (?)", projectIds).Order("id DESC ")
  44. }
  45. err = db.Count(&total).Error
  46. if err != nil {
  47. return
  48. }
  49. err = db.Limit(limit).Offset(offset).Preload("Project").Find(&screensList).Error
  50. return
  51. }
  52. func (s Screens) UpdateScreens() error {
  53. return global.GVA_DB.Model(&Screens{}).Where("id = ?", s.ID).Updates(map[string]interface{}{
  54. "screens_name": s.ScreensName,
  55. "sn": s.Sn,
  56. "project_id": s.ProjectId,
  57. "ip_address": s.IPAddress,
  58. "remark": s.Remark,
  59. }).Error
  60. }
  61. func QueryScreensToDetail(id uint) (screensList []Screens, err error) {
  62. db := global.GVA_DB.Model(&Screens{})
  63. err = db.Where("project_id = ?", id).Find(&screensList).Error
  64. return
  65. }
  66. func QueryAllScreens() (screensList []Screens, err error) {
  67. err = global.GVA_DB.Model(&Screens{}).Find(&screensList).Error
  68. return
  69. }
  70. func QueryScreensBySn(sn string) (screen Screens, err error) {
  71. err = global.GVA_DB.Model(&Screens{}).Where("sn = ?", sn).Find(&screen).Error
  72. return
  73. }
  74. func UpdateScreensStatusBySn(sn string, status int) (err error) {
  75. err = global.GVA_DB.Model(&Screens{}).Where("sn = ?", sn).Update("status", status).Error
  76. return
  77. }