|
|
@@ -71,19 +71,29 @@ func GetCurrentShowLive(useCache bool) *LiveBroad {
|
|
|
}
|
|
|
|
|
|
//获取最直播列表
|
|
|
-func GetLatest(page, perPage, recommend int64, useCache bool) (LiveBroads []*LiveBroad) {
|
|
|
- k := fmt.Sprintf("LiveBroad_model.GetLatest.page(%d).perPage(%d).recommend(%d)", page, perPage, recommend)
|
|
|
+func GetLatest(page, perPage, recommend, depart 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 {
|
|
|
return ret
|
|
|
}
|
|
|
}
|
|
|
- o := orm.NewOrm()
|
|
|
- _, err := o.QueryTable(new(LiveBroad)).Filter("recommend__gt", recommend).OrderBy("-recommend", "-created_at").Limit(perPage, (page-1)*perPage).All(&LiveBroads)
|
|
|
+ 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=? limit %d, %d order by recommend desc, created_at desc ;
|
|
|
+ `
|
|
|
+ sql = fmt.Sprintf(sql, page, perPage)
|
|
|
+
|
|
|
+ beego.BeeLogger.Warn("sql=%s", sql)
|
|
|
+
|
|
|
+ _, err := orm.NewOrm().Raw(sql, recommend, depart).QueryRows(&list)
|
|
|
if err != nil {
|
|
|
- beego.BeeLogger.Debug("GetLatest err=%s", err)
|
|
|
+ beego.BeeLogger.Warn("live_model.GetLatest(%d) err=%s", depart, err)
|
|
|
+ return nil
|
|
|
}
|
|
|
- for _, pd := range LiveBroads {
|
|
|
+
|
|
|
+ for _, pd := range list {
|
|
|
pd.Cover = GetCdnFullImgUrl(pd.Cover)
|
|
|
pd.BeginTimeFomat = pd.BeginDate.Format("1-02 15:04")
|
|
|
pd.EndTimeFomat = pd.EndDate.Format("1-02 15:04")
|
|
|
@@ -93,21 +103,29 @@ func GetLatest(page, perPage, recommend int64, useCache bool) (LiveBroads []*Liv
|
|
|
pd.EndHourFomat = pd.EndDate.Format("15:04")
|
|
|
|
|
|
}
|
|
|
- cache.Cache.Put(k, LiveBroads, 10*time.Minute)
|
|
|
- return LiveBroads
|
|
|
+ cache.Cache.Put(k, list, 10*time.Minute)
|
|
|
+ return list
|
|
|
}
|
|
|
|
|
|
-func GetLatestCount(recommend int64, ptype string, useCache bool) int64 {
|
|
|
- k := fmt.Sprintf("LiveBroad_model.GetLatestCount.recommend(%d)", recommend)
|
|
|
- if useCache {
|
|
|
- if ret, ok := cache.Cache.Get(k).(int64); ok {
|
|
|
- return ret
|
|
|
- }
|
|
|
+//获取部门直播间总数
|
|
|
+func GetLatestCount(recommend, depart int64) int64 {
|
|
|
+ type Ret struct {
|
|
|
+ Count int64 `json:"count"` //人数
|
|
|
}
|
|
|
- item := new(LiveBroad)
|
|
|
+ ret := &Ret{}
|
|
|
o := orm.NewOrm()
|
|
|
- count, _ := o.QueryTable(item).Filter("recommend__gt", recommend).Count()
|
|
|
-
|
|
|
- cache.Cache.Put(k, count, 10*time.Minute)
|
|
|
- return count
|
|
|
+ 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=? ;
|
|
|
+ `
|
|
|
+ err := o.Raw(sql, recommend, depart).QueryRow(ret)
|
|
|
+ if err != nil {
|
|
|
+ beego.BeeLogger.Error("GetLatestCount, depart:%d, err=[%s]", depart, err)
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ if ret.Count < 0 {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+ return ret.Count
|
|
|
}
|