publishLibrariesDao.go 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package dao
  2. import (
  3. "fmt"
  4. "iot_manager_service/util/common"
  5. "time"
  6. )
  7. type PublishLibraries struct {
  8. ID int64 `gorm:"column:id;type:int(10) unsigned;primary_key;AUTO_INCREMENT;comment:编号" json:"id"`
  9. Name string `gorm:"column:name;type:varchar(64);comment:名称" json:"name"` // 名称
  10. Resolution int `gorm:"column:resolution;type:int(11);comment:分辨率" json:"resolution"` // 分辨率
  11. Duration int64 `gorm:"column:duration;type:bigint(20);default:0;comment:统计文件时长" json:"duration"` // 统计文件时长
  12. FileSize int64 `gorm:"column:file_size;type:bigint(20);default:0;comment:统计文件大小" json:"fileSize"` // 统计文件大小
  13. InfoId string `gorm:"column:info_id;type:varchar(4000);comment:信息屏ID 组合" json:"infoId"` // 信息屏ID 组合
  14. ImgDuration int `gorm:"column:img_duration;type:int(11);default:0;comment:图片播放时长(毫秒)" json:"imgDuration"` // 图片播放时长(毫秒)
  15. StartTime common.Time `gorm:"column:start_time;type:date;comment:播放开始时间" json:"startTime"` // 播放开始时间
  16. EndTime common.Time `gorm:"column:end_time;type:date;comment:播放结束时间" json:"endTime"` // 播放结束时间
  17. NotificationType string `gorm:"column:notification_type;type:varchar(60);comment:通知类型 组合1短信2邮件3电话4微信" json:"notificationType"` // 通知类型 组合1短信2邮件3电话4微信
  18. CreateTime time.Time `gorm:"column:create_time;type:datetime;comment:新增时间" json:"createTime"` // 新增时间
  19. CreateUser int64 `gorm:"column:create_user;type:varchar(60);comment:增记录操作用户ID" json:"createUser"` // 新增记录操作用户ID
  20. CreateName string `gorm:"column:create_name;type:varchar(64);comment:新增用户姓名" json:"createName"` // 新增用户姓名
  21. UpdateTime time.Time `gorm:"column:update_time;type:datetime;comment:修改时间" json:"updateTime"` // 修改时间
  22. UpdateUser string `gorm:"column:update_user;type:varchar(60);comment:修改用户" json:"updateUser"` // 修改用户
  23. IsDeleted int `gorm:"column:is_deleted;type:int(11);default:0;comment:是否删除 0=未删除,1=删除" json:"isDeleted"` // 是否删除 0=未删除,1=删除
  24. Status int `gorm:"column:status;type:int(11);comment:状态 0审核1播放2暂停3取消4过期5审核不通过" json:"status"` // 状态 0审核1播放2暂停3取消4过期5审核不通过
  25. TenantId string `gorm:"column:tenant_id;type:varchar(12);comment:租户ID" json:"tenantTd"` // 租户ID
  26. Remarks string `gorm:"column:remarks;type:varchar(4000);comment:系统类型:0-多媒体系统,1-广播系统" json:"remarks"` // 备注
  27. SysType int `gorm:"column:sys_type;type:int(11);default:0;comment:编号" json:"sysStype"` // 系统类型:0-多媒体系统,1-广播系统
  28. KsTime string `gorm:"column:ks_time;type:varchar(50);comment:播放开始时间" json:"ksTime"` // 播放开始时间
  29. JsTime string `gorm:"column:js_time;type:varchar(50);comment:播放结束时间" json:"jsTime"` // 播放结束时间
  30. Ptype int `gorm:"-" json:"ptype"` // 1mp3 2文字
  31. FileId int `gorm:"column:file_id;type:int(11);comment:文件ID,系统类型为广播系统时使用" json:"fileId"` // 文件ID,系统类型为广播系统时使用
  32. TaskId int `gorm:"column:task_id;type:int(11);comment:任务ID,发布后才有用于控制启动与停止" json:"taskId"` // 任务ID,发布后才有用于控制启动与停止
  33. PlayTime int `gorm:"column:play_time;type:int(11);default:1;comment:播放次数(1-100)" json:"playTime"` // 播放次数(1-100)
  34. PlayInterval int `gorm:"column:play_interval;type:int(11);default:0;comment: 播放间隔(0-360秒)" json:"playInterval"` // 播放间隔(0-360秒)
  35. PlayPeriod string `gorm:"-" json:"playPeriod"` //播放期间
  36. ResolutionName string `gorm:"-" json:"resolutionName"` //分辨率
  37. CountDeviceNum int `gorm:"-;default:0" json:"countDeviceNum"` //关联设备数量
  38. }
  39. func (PublishLibraries) TableName() string {
  40. return "media_publish_libraries"
  41. }
  42. func (c *PublishLibraries) GetList(offset int, limit int) ([]PublishLibraries, int64, error) {
  43. var list []PublishLibraries
  44. var count int64
  45. db := Db.Debug().Model(&c).Where("tenant_id = ? and sys_type=? and is_deleted = 0", c.TenantId, c.SysType)
  46. db.Count(&count)
  47. err := db.Offset(offset).Limit(limit).Order("id desc").Find(&list).Error
  48. return list, count, err
  49. }
  50. func (c *PublishLibraries) Create() error {
  51. fmt.Printf("c = %v", c)
  52. return Db.Debug().Model(&c).Save(c).Error
  53. }
  54. func (c *PublishLibraries) Update() error {
  55. return Db.Debug().Model(&c).Where(" id = ? ", c.ID).Updates(&c).Error
  56. }
  57. func (c *PublishLibraries) GetProgram() (int, error) {
  58. var librarie PublishLibraries
  59. err := Db.Debug().Model(&c).Where("id = ?", c.ID).First(&librarie).Error
  60. return librarie.FileId, err
  61. }
  62. // GetProgramByLedId 取led信息屏当前播放的节目 ID
  63. func (c *PublishLibraries) GetProgramByLedId(ledId int) (PublishLibraries, error) {
  64. var librarie PublishLibraries
  65. err := Db.Debug().Model(&c).Where("find_in_set ( ?,info_id ) and is_deleted = 0 and status = 1 and sys_type = 0 and start_time <= CURDATE() AND end_time >= CURDATE()", ledId).Order("id desc").First(&librarie).Error
  66. return librarie, err
  67. }
  68. func (c PublishLibraries) Delete() error {
  69. return Db.Debug().Model(&c).Where("id = ?", c.ID).Updates(map[string]interface{}{"update_time": c.UpdateTime,
  70. "update_user": c.UpdateUser, "is_deleted": c.IsDeleted}).Error
  71. }
  72. func (c PublishLibraries) GetProgramByIpCastId(id int) ([]PublishLibraries, interface{}) {
  73. var libraries []PublishLibraries
  74. err := Db.Debug().Model(&c).Where("find_in_set ( ?,info_id ) AND is_deleted = 0 AND status = 1 AND sys_type = 1 AND start_time <= CURDATE() AND end_time >= CURDATE() and ks_time <= date_format(now(),'%H:%i')", id).Order("id desc").Find(&libraries).Error
  75. return libraries, err
  76. }