互动
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
5.2 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. package models
  2. import (
  3. "github.com/ouxuanserver/osmanthuswine/src/core"
  4. "time"
  5. )
  6. const LiveConfigTN = TableNamePrefix + "live_config"
  7. type LiveConfig struct {
  8. Id int64 `json:"id" xorm:"not null pk autoincr INT(11)"`
  9. IsDelete bool `json:"-" xorm:"not null default 0 comment('是否删除') TINYINT(1)"`
  10. CreatedAt time.Time `json:"created_at" xorm:"not null created comment('创建时间') DATETIME"`
  11. UpdatedAt time.Time `json:"updated_at" xorm:"not null updated default CURRENT_TIMESTAMP comment('更新时间') TIMESTAMP"`
  12. CusId int `json:"cus_id" xorm:"not null default 0 comment('客户id') INT(11)"`
  13. LiveSwitch int `json:"live_switch" xorm:"not null default 0 comment('直播开关0关1开') INT(11)"`
  14. ActivityId int64 `json:"activity_id" xorm:"not null default 0 comment('互动id') INT(11)"`
  15. AreaId int64 `json:"area_id" xorm:"not null default 0 comment('地域') INT(11)"`
  16. LiveRoomId string `json:"live_room_id" xorm:"not null default '' comment('直播间id') VARCHAR(128)"`
  17. AdaptationFunc []interface{} `json:"adaptation_func" xorm:"json not null default '' comment('选中的适配功能及互动已买的服务id,json格式') VARCHAR(255)"`
  18. StartTime time.Time `json:"start_time" xorm:"not null default '1970-01-01 08:00:00' comment('开播时间') DATETIME"`
  19. EndTime time.Time `json:"end_time" xorm:"not null default '1970-01-01 08:00:00' comment('直播结束时间') DATETIME"`
  20. LiveH5Url string `json:"live_h5_url" xorm:"not null default '' comment('h5直播地址') VARCHAR(255)"`
  21. AdminLiveUrl string `json:"admin_live_url" xorm:"not null default '' comment('管理员直播地址,即直播页面中管理员登录页面') VARCHAR(255)"`
  22. LiveH5Qrcode string `json:"live_h5_qrcode" xorm:"not null default '' comment('h5直播地址二维码') VARCHAR(255)"`
  23. LiveH5AdminQrcode string `json:"live_h_5_admin_qrcode" xorm:"not null default '' comment('管理员直播地址二维码') VARCHAR(255)"`
  24. UnpayOrderTime string `json:"unpay_order_time" xorm:"not null default '' comment('待支付订单直播结束延长的时间戳') VARCHAR(128)"`
  25. LiveType int `json:"live_type" xorm:"not null default 1 comment('直播方式1推流方式2app直播') INT(1)"`
  26. VideoPushUrl string `json:"video_push_url" xorm:"not null default '' comment('视频推流地址') VARCHAR(255)"`
  27. VideoPullUrlRtmp string `json:"video_pull_url_rtmp" xorm:"not null default '' comment('视频拉流地址即播放地址') VARCHAR(255)"`
  28. VideoPullUrlFlv string `json:"video_pull_url_flv" xorm:"not null default '' comment('视频拉流地址即播放地址') VARCHAR(255)"`
  29. VideoPullUrlM3u8 string `json:"video_pull_url_m3u8" xorm:"not null default '' comment('视频拉流地址即播放地址') VARCHAR(255)"`
  30. LiveStartPage string `json:"live_start_page" xorm:"not null default '' comment('直播启动页图片') VARCHAR(255)"`
  31. BeforeStartPage string `json:"before_start_page" xorm:"not null default '' comment('开播前图片') VARCHAR(255)"`
  32. ActivityDesc string `json:"activity_desc" xorm:"not null default '' comment('活动介绍页图片') VARCHAR(255)"`
  33. SharePosterImg string `json:"share_poster_img" xorm:"not null default '' comment('分享的海报图片') VARCHAR(255)"`
  34. Status int `json:"status" xorm:"not null default 1 comment('直播的状态1未开始2进行中3已结束') TINYINT(1)"`
  35. LiveMode int `json:"live_mode" xorm:"not null default 1 comment('直播方式1标准直播2快直播') TINYINT(1)"`
  36. Announcement string `json:"announcement" xorm:"not null default '' comment('公告内容') VARCHAR(255)"`
  37. WatchNum int `json:"watch_num" xorm:"not null default 0 comment('观看人数') INT(11)"`
  38. LikeNum int `json:"like_num" xorm:"not null default 0 comment('点赞数') INT(11)"`
  39. Limit int `json:"limit" xorm:"not null default 0 comment('限制人数') INT(11)"`
  40. ImGroupId string `json:"im_group_id" xorm:"not null default '' comment('腾讯im聊天群id') VARCHAR(255)"`
  41. ImGroupName string `json:"im_group_name" xorm:"not null default '' comment('聊天群名称') VARCHAR(255)"`
  42. // live adaptation
  43. Adaptation interface{} `json:"adaptation" xorm:"-"`
  44. }
  45. func (t *LiveConfig) TableName() string {
  46. return LiveConfigTN
  47. }
  48. func (t *LiveConfig) GetByActivityId(aid interface{}) (bool, error) {
  49. return core.GetXormAuto().Where("is_delete=0 and activity_id=?", aid).Get(t)
  50. }
  51. func (t *LiveConfig) Like(aid interface{}) (int64, error) {
  52. return core.GetXormAuto().Where("is_delete=0 and activity_id=?", aid).Incr("like_num").Update(t)
  53. }
  54. func (t *LiveConfig) HaveModule(module string) bool {
  55. exist, _ := core.GetXormAuto().Where("is_delete=0 and name=?", module).In("id", t.AdaptationFunc).Exist(&ModuleService{})
  56. return exist
  57. }
  58. func GetLiveConfigByStatus(status interface{}) ([]*LiveConfig, error) {
  59. lives := make([]*LiveConfig, 0)
  60. err := core.GetXormAuto().Where("is_delete=0 and status=?", status).Find(&lives)
  61. return lives, err
  62. }