Explorar o código

直播增加级别限制

shen %!s(int64=4) %!d(string=hai) anos
pai
achega
f5796671f8

+ 2 - 2
go/gopath/src/fohow.com/apps/controllers/live_controller/live_controller.go

@@ -63,8 +63,8 @@ func (self *LiveController) Latest() {
 		self.ReturnError(403, apps.NoExist, "", nil)
 	}
 
-	lives := live_model.GetLatest(page, perPage, recommend, wxUser.Depart, cache)
-	count := live_model.GetLatestCount(recommend, wxUser.Depart)
+	lives := live_model.GetLatest(page, perPage, recommend, wxUser.Depart, wxUser.Rank, cache)
+	count := live_model.GetLatestCount(recommend, wxUser.Depart, wxUser.Rank)
 	timeNowUnix := time.Now().Unix()
 	for _, live := range lives {
 		//beego.BeeLogger.Warn("live_timeNowUnix: %d", timeNowUnix)

+ 7 - 6
go/gopath/src/fohow.com/apps/models/live_model/live_broad.go

@@ -71,7 +71,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 +81,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(?,rank_strs) or 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 +109,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 +118,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(?,rank_strs) or 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

+ 3 - 1
go/gopath/src/fohow.com/apps/models/user_model/wx_user.go

@@ -62,7 +62,9 @@ type WxUser struct {
 	Depart       int64   `orm:"column(depart)" json:"-"`                                // datetime
 
 	//等级
-	Rank        int64     `orm:"column(rank);null"              json:"rank"`      // int(11)
+	Rank     int64  `orm:"column(rank);null"              json:"rank"`           // int
+	RankStrs string `orm:"column(rank_strs);null"              json:"rank_strs"` // int(11)
+
 	PartnerTime int64     `orm:"column(partner_time);null"              json:"-"` // 群主时间
 	UserNo      string    `orm:"column(user_no);null"              json:"-"`      // int(11)
 	CanBind     bool      `orm:"-"     json:"can_bind"`