|
|
@@ -30,6 +30,7 @@ type LiveBroad struct {
|
|
|
DateFomat int `orm:"-" json:"date"` // varchar(255)
|
|
|
HourFomat string `orm:"-" json:"begin_hour"` // varchar(255)
|
|
|
EndHourFomat string `orm:"-" json:"end_hour"` // varchar(255)
|
|
|
+ RankStrs string `orm:"column(rank_strs);null" json:"rank_strs"` // int(11)
|
|
|
CreatedAt time.Time `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"created_at,omitempty"` // datetime
|
|
|
UpdatedAt time.Time `orm:"column(updated_at);null;auto_now;type(datetime)" json:"updated_at,omitempty"` // datetime
|
|
|
}
|
|
|
@@ -71,7 +72,7 @@ func GetCurrentShowLive(useCache bool) *LiveBroad {
|
|
|
}
|
|
|
|
|
|
//获取最直播列表
|
|
|
-func GetLatest(page, perPage, recommend, depart int64, useCache bool) (list []*LiveBroad) {
|
|
|
+func GetLatest(page, perPage, recommend, depart, rank int64, useCache bool) (list []*LiveBroad) {
|
|
|
k := fmt.Sprintf("LiveBroad_model.GetLatest.page(%d).perPage(%d).recommend(%d).depart(%d)", page, perPage, recommend, depart)
|
|
|
if useCache {
|
|
|
if ret, ok := cache.Cache.Get(k).([]*LiveBroad); ok {
|
|
|
@@ -81,13 +82,14 @@ func GetLatest(page, perPage, recommend, depart int64, useCache bool) (list []*L
|
|
|
sql := `
|
|
|
select a.* from
|
|
|
live_broads a left join depart_records_live_broads b on a.id=b.live_broad_id
|
|
|
- where a.recommend > ? and b.depart_record_id=? order by recommend desc, created_at desc limit %d, %d ;
|
|
|
+ where a.recommend > ? and b.depart_record_id=? and (find_in_set(?,a.rank_strs) or a.rank_strs="" )
|
|
|
+ order by recommend desc, created_at desc limit %d, %d ;
|
|
|
`
|
|
|
sql = fmt.Sprintf(sql, (page-1)*perPage, perPage)
|
|
|
|
|
|
//beego.BeeLogger.Warn("sql=%s", sql)
|
|
|
|
|
|
- _, err := orm.NewOrm().Raw(sql, recommend, depart).QueryRows(&list)
|
|
|
+ _, err := orm.NewOrm().Raw(sql, recommend, depart, rank).QueryRows(&list)
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Warn("live_model.GetLatest(%d) err=%s", depart, err)
|
|
|
return nil
|
|
|
@@ -108,7 +110,7 @@ func GetLatest(page, perPage, recommend, depart int64, useCache bool) (list []*L
|
|
|
}
|
|
|
|
|
|
//获取部门直播间总数
|
|
|
-func GetLatestCount(recommend, depart int64) int64 {
|
|
|
+func GetLatestCount(recommend, depart, rank int64) int64 {
|
|
|
type Ret struct {
|
|
|
Count int64 `json:"count"` //人数
|
|
|
}
|
|
|
@@ -117,9 +119,9 @@ func GetLatestCount(recommend, depart int64) int64 {
|
|
|
sql := `
|
|
|
select count(DISTINCT a.id) as count from
|
|
|
live_broads a left join depart_records_live_broads b on a.id=b.live_broad_id
|
|
|
- where a.recommend > ? and b.depart_record_id=? ;
|
|
|
+ where a.recommend > ? and b.depart_record_id=? and (find_in_set(?,a.rank_strs) or a.rank_strs="" ) ;
|
|
|
`
|
|
|
- err := o.Raw(sql, recommend, depart).QueryRow(ret)
|
|
|
+ err := o.Raw(sql, recommend, depart, rank).QueryRow(ret)
|
|
|
if err != nil {
|
|
|
beego.BeeLogger.Error("GetLatestCount, depart:%d, err=[%s]", depart, err)
|
|
|
return 0
|