Quellcode durchsuchen

add current live show

abiao vor 5 Jahren
Ursprung
Commit
aa1cf4e03a

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

@@ -0,0 +1,36 @@
+package live_controller
+
+import (
+	// "math/rand"
+	// "strings"
+
+	"fohow.com/apps/models/live_model"
+	"github.com/astaxie/beego/context"
+
+	// "api.com/apps/models/zt_model"
+
+	"fohow.com/apps"
+)
+
+var (
+	//以下Action无需登录校验,exceptCheckUserLoginAction = []string{"*"} *代表全部不需要
+	exceptCheckUserLoginAction   = []string{"GetCurrentLiveShow"}
+	exceptCheckWxUserLoginAction = []string{"GetCurrentLiveShow"}
+)
+
+type LiveController struct {
+	apps.BaseController
+}
+
+func (self *LiveController) Init(ctx *context.Context, controllerName, actionName string, app interface{}) {
+	self.BaseController.Init(ctx, controllerName, actionName, app)
+	self.ExceptCheckUserLoginAction = exceptCheckUserLoginAction
+	self.ExceptCheckWxUserLoginAction = exceptCheckWxUserLoginAction
+}
+
+//根据广告位id,获取广告图
+func (self *LiveController) GetCurrentLiveShow() {
+	live := live_model.GetCurrentShowLive(true)
+	self.Data["json"] = live
+	self.ServeJSON()
+}

+ 9 - 0
go/gopath/src/fohow.com/apps/models/live_model/init.go

@@ -0,0 +1,9 @@
+package live_model
+
+import "github.com/astaxie/beego/orm"
+
+func init() {
+	orm.RegisterModel(
+		new(LiveBroad),
+	)
+}

+ 63 - 0
go/gopath/src/fohow.com/apps/models/live_model/live_broad.go

@@ -0,0 +1,63 @@
+package live_model
+
+import (
+	"fmt"
+	"fohow.com/cache"
+	"github.com/astaxie/beego"
+	"github.com/astaxie/beego/orm"
+	"time"
+)
+
+const (
+	live_broads_tablename = "live_broads"
+)
+
+type LiveBroad struct {
+	Id int64 `orm:"column(id);pk"                                        json:"id"` // int(11)
+
+	Title     string    `orm:"column(title)"                                         json:"title"`
+	RoomId    int64     `orm:"column(room_id)"                                       json:"room_id"` // int(11)
+	Cover     string    `orm:"column(cover)"                                         json:"cover"`
+	BeginDate time.Time `orm:"column(begin_time);null;type(datetime)"                json:"begin_time"` // datetime
+	EndDate   time.Time `orm:"column(end_time);null;type(datetime)"                  json:"end_time"`   // datetime
+	Show      bool      `orm:"column(show);null"                         json:"show"`                   // tinyint(1)
+	Remark    string    `orm:"column(remark)"                                         json:"cover"`
+	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
+}
+
+func (self *LiveBroad) TableName() string {
+	return live_broads_tablename
+}
+
+func (self *LiveBroad) Save() error {
+	if _, err := orm.NewOrm().Update(self); err != nil {
+		beego.BeeLogger.Error("Save LiveBroad id=[%d] .err=[%s]", self.Id, err)
+		return err
+	}
+	return nil
+}
+
+//获取当前直播间
+func GetCurrentShowLive(useCache bool) *LiveBroad {
+
+	k := fmt.Sprintf("live_model.GetCurrentShowLive")
+	if useCache {
+		if s, ok := cache.Cache.Get(k).(*LiveBroad); ok {
+			return s
+		}
+	}
+
+	item := new(LiveBroad)
+	o := orm.NewOrm()
+	err := o.QueryTable(item).Filter("show", true).OrderBy("-id").Limit(1).One(item)
+	if err != nil {
+		beego.BeeLogger.Info("live_model.GetCurrentShowLive. err[%s]", err)
+		return nil
+	}
+
+	if item != nil {
+		cache.Cache.Put(k, item, 5*time.Minute)
+	}
+	return item
+}

+ 5 - 0
go/gopath/src/fohow.com/routers/routes.go

@@ -2,6 +2,7 @@ package routers
 
 import (
 	"fohow.com/apps/controllers/cent_controller"
+	"fohow.com/apps/controllers/live_controller"
 	"fohow.com/apps/controllers/test_controller"
 	// "fohow.com/apps"
 	"github.com/astaxie/beego"
@@ -304,4 +305,8 @@ func init() {
 	//老会员绑定
 	beego.Router("/v1/sys_user/:wx_uid/bind", &user_controller.UserController{}, "put:SysUserBind")
 
+	//----------------直播管理-------------------
+	//获取当前直播内容
+	beego.Router("/v1/live_broad/current", &live_controller.LiveController{}, "get:GetCurrentLiveShow")
+
 }