package models import ( "time" "github.com/ouxuanserver/osmanthuswine/src/core" ) const LiveConfigTN = TableNamePrefix + "live_config" type LiveConfig struct { Id int64 `json:"id" xorm:"not null pk autoincr INT(11)"` IsDelete bool `json:"-" xorm:"not null default 0 comment('是否删除') TINYINT(1)"` CreatedAt time.Time `json:"created_at" xorm:"not null created comment('创建时间') DATETIME"` UpdatedAt time.Time `json:"updated_at" xorm:"not null updated default CURRENT_TIMESTAMP comment('更新时间') TIMESTAMP"` CusId int `json:"cus_id" xorm:"not null default 0 comment('客户id') INT(11)"` LiveSwitch int `json:"live_switch" xorm:"not null default 0 comment('直播开关0关1开') INT(11)"` ActivityId int64 `json:"activity_id" xorm:"not null default 0 comment('互动id') INT(11)"` AreaId int64 `json:"area_id" xorm:"not null default 0 comment('地域') INT(11)"` LiveRoomId string `json:"live_room_id" xorm:"not null default '' comment('直播间id') VARCHAR(128)"` AdaptationFunc []interface{} `json:"adaptation_func" xorm:"json not null default '' comment('选中的适配功能及互动已买的服务id,json格式') VARCHAR(255)"` StartTime time.Time `json:"start_time" xorm:"not null default '1970-01-01 08:00:00' comment('开播时间') DATETIME"` EndTime time.Time `json:"end_time" xorm:"not null default '1970-01-01 08:00:00' comment('直播结束时间') DATETIME"` LiveH5Url string `json:"live_h5_url" xorm:"not null default '' comment('h5直播地址') VARCHAR(255)"` AdminLiveUrl string `json:"admin_live_url" xorm:"not null default '' comment('管理员直播地址,即直播页面中管理员登录页面') VARCHAR(255)"` LiveH5Qrcode string `json:"live_h5_qrcode" xorm:"not null default '' comment('h5直播地址二维码') VARCHAR(255)"` LiveH5AdminQrcode string `json:"live_h_5_admin_qrcode" xorm:"not null default '' comment('管理员直播地址二维码') VARCHAR(255)"` UnpayOrderTime string `json:"unpay_order_time" xorm:"not null default '' comment('待支付订单直播结束延长的时间戳') VARCHAR(128)"` LiveType int `json:"live_type" xorm:"not null default 1 comment('直播方式1推流方式2app直播') INT(1)"` VideoPushUrl string `json:"video_push_url" xorm:"not null default '' comment('视频推流地址') VARCHAR(255)"` VideoPullUrlRtmp string `json:"video_pull_url_rtmp" xorm:"not null default '' comment('视频拉流地址即播放地址') VARCHAR(255)"` VideoPullUrlFlv string `json:"video_pull_url_flv" xorm:"not null default '' comment('视频拉流地址即播放地址') VARCHAR(255)"` VideoPullUrlM3u8 string `json:"video_pull_url_m3u8" xorm:"not null default '' comment('视频拉流地址即播放地址') VARCHAR(255)"` LiveStartPage string `json:"live_start_page" xorm:"not null default '' comment('直播启动页图片') VARCHAR(255)"` BeforeStartPage string `json:"before_start_page" xorm:"not null default '' comment('开播前图片') VARCHAR(255)"` ActivityDesc string `json:"activity_desc" xorm:"not null default '' comment('活动介绍页图片') VARCHAR(255)"` SharePosterImg string `json:"share_poster_img" xorm:"not null default '' comment('分享的海报图片') VARCHAR(255)"` Status int `json:"status" xorm:"not null default 1 comment('直播的状态1未开始2进行中3已结束') TINYINT(1)"` LiveMode int `json:"live_mode" xorm:"not null default 1 comment('直播方式1标准直播2快直播') TINYINT(1)"` Announcement string `json:"announcement" xorm:"not null default '' comment('公告内容') VARCHAR(255)"` WatchNum int `json:"watch_num" xorm:"not null default 0 comment('观看人数') INT(11)"` LikeNum int `json:"like_num" xorm:"not null default 0 comment('点赞数') INT(11)"` LimitType int `json:"limit_type" xorm:"not null default 0 comment('限制方式1累计人数2峰值在线人数') TINYINT(11)"` Limit int `json:"limit" xorm:"not null default 0 comment('限制人数') INT(11)"` ImGroupId string `json:"im_group_id" xorm:"not null default '' comment('腾讯im聊天群id') VARCHAR(255)"` ImGroupName string `json:"im_group_name" xorm:"not null default '' comment('聊天群名称') VARCHAR(255)"` // live adaptation Adaptation interface{} `json:"adaptation" xorm:"-"` } func (t *LiveConfig) TableName() string { return LiveConfigTN } func (t *LiveConfig) GetByActivityId(aid interface{}) (bool, error) { return core.GetXormAuto().Where("is_delete=0 and activity_id=?", aid).Get(t) } func (t *LiveConfig) Like(aid interface{}) (int64, error) { return core.GetXormAuto().Where("is_delete=0 and activity_id=?", aid).Incr("like_num").Update(t) } func (t *LiveConfig) HaveModule(module string) bool { exist, _ := core.GetXormAuto().Where("is_delete=0 and name=?", module).In("id", t.AdaptationFunc).Exist(&ModuleServiceHistory{}) return exist } func GetLiveConfigByStatus(status, _type interface{}) ([]*LiveConfig, error) { lives := make([]*LiveConfig, 0) err := core.GetXormAuto().Where("is_delete=0 and status=? and limit_type=?", status, _type).Find(&lives) return lives, err }