libraryDao.go 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package dao
  2. import (
  3. "time"
  4. )
  5. type Library struct {
  6. ID int `gorm:"primary_key" json:"id"` //编号
  7. MaterialAddress string `gorm:"type:varchar(10000)" json:"materialAddress"` //素材地址
  8. LibName string `gorm:"type:varchar(64)" json:"libName"` //素材名称
  9. LibExplain string `gorm:"type:varchar(255)" json:"libExplain"` //素材说明
  10. LibType int `gorm:"type:int" json:"libType"` //素材类型:1-视频,2-图片,3-文字,4-音频
  11. Resolution string `gorm:"type:varchar(64)" json:"resolution"` //分辨率
  12. FileSize int64 `gorm:"type:bigint" json:"fileSize"` //文件大小
  13. LibDuration int `gorm:"type:int;default 0" json:"libDuration"` //获取视频时长
  14. FileId string `gorm:"type:varchar(255)" json:"fileId"` //文件ID,系统类型为广播系统时使用
  15. TalkSpeed int `gorm:"type:int;default 0" json:"talkSpeed"` //语速(用于文字广播):0-正常,1-快一些,2-很快
  16. SysType int `gorm:"type:int" json:"sysType"` //系统类型:0-信息发布系统,1-广播系统
  17. TenantId int `gorm:"type:int" json:"tenantId"` //租户ID
  18. CreateTime time.Time `gorm:"type:datetime" json:"createTime"` //新增时间
  19. CreateUser int64 `gorm:"type:bigint" json:"createUser"` //新增记录操作用户ID
  20. UpdateTime time.Time `gorm:"type:datetime" json:"updateTime"` //修改时间
  21. UpdateUser int64 `gorm:"type:bigint" json:"updateUser"` //修改用户
  22. IsDeleted int `gorm:"type:int;default 0" json:"isDeleted"` //是否删除 0=未删除,1=删除
  23. }
  24. func (Library) TableName() string {
  25. return "media_library"
  26. }
  27. func (c *Library) Create() error {
  28. return Db.Debug().Model(&c).Save(c).Error
  29. }
  30. func (c *Library) GetLibraries(offset, limit int) ([]Library, error) {
  31. var libraries []Library
  32. db := Db.Debug().Model(&c)
  33. if c.LibName != "" {
  34. db = db.Where("lib_name like ?", "%"+c.LibName+"%")
  35. }
  36. if c.SysType == 0 || c.SysType == 1 {
  37. db = db.Where("sys_type = ?", c.SysType)
  38. }
  39. err := db.Where("is_deleted = 0 and tenant_id = ?", c.TenantId).Offset(offset).Limit(limit).Find(&libraries).Error
  40. return libraries, err
  41. }
  42. func (c *Library) Get() error {
  43. return Db.Debug().Model(&c).Where("is_deleted = 0 and id = ?", c.ID).Find(&c).Error
  44. }
  45. func (c *Library) Delete() error {
  46. return Db.Debug().Model(&c).Where("id = ?", c.ID).Updates(map[string]interface{}{"update_time": c.UpdateTime,
  47. "update_user": c.UpdateUser, "is_deleted": c.IsDeleted}).Error
  48. }
  49. func (c *Library) GetAll() ([]Library, error) {
  50. var libraries []Library
  51. db := Db.Debug().Model(&c).Where("tenant_id = ?", c.TenantId)
  52. if c.LibName != "" {
  53. db = db.Where("lib_name like ?", "%"+c.LibName+"%")
  54. }
  55. if c.LibType > 0 {
  56. db = db.Where("lib_type = ?", c.LibType)
  57. }
  58. if c.SysType == 0 || c.SysType == 1 {
  59. db = db.Where("sys_type = ?", c.SysType)
  60. }
  61. err := db.Find(&libraries).Order("create_time").Error
  62. return libraries, err
  63. }
  64. func (c *Library) Update() error {
  65. return Db.Debug().Model(&c).Where(" id = ? ", c.ID).Update(&c).Error
  66. }
  67. func (c *Library) GetLibrariesByIds(ids []int) ([]Library, error) {
  68. var libraries []Library
  69. err := Db.Debug().Model(&c).Where("is_deleted = 0 and tenant_id = ? and id in (?)",
  70. c.TenantId, ids).Find(&libraries).Error
  71. return libraries, err
  72. }