Browse Source

live

master
黄梓健 5 years ago
parent
commit
8b61267b29
  1. 7
      controllers/author.go
  2. 2
      controllers/base.go
  3. 24
      controllers/client/live.go
  4. 17
      controllers/client/login.go
  5. 8
      libs/jwt/jwt_go.go
  6. 1
      main.go
  7. 43
      models/live_config.go
  8. 96
      utils/code/code.go

7
controllers/author.go

@ -2,13 +2,14 @@ package controllers
import (
"hudongzhuanjia/libs/jwt"
"hudongzhuanjia/utils/code"
"hudongzhuanjia/utils/define"
)
//执行路由方法前校验登陆态,并且解析page、pageSize
type AuthorCtl struct {
BaseCtl
claims *jwt.JwtClaims
claims *jwt.Claims
}
func (t *AuthorCtl) Prepare() {
@ -29,7 +30,9 @@ func (t *AuthorCtl) Prepare() {
}
}
claims, err := jwt.ParseAccessToken(token)
t.CheckErr(err)
if err != nil {
t.ERROR("token 失效", code.MSG_ERR_Authority)
}
t.claims = claims
// 最后多地区:子账号的area_id = area_id, 但是主账号的area_id 需要通过activity_id 进行获取
}

2
controllers/base.go

@ -167,7 +167,7 @@ func (t *BaseCtl) DefaultFloat(key string, def float32) float32 {
return def
}
func (t *BaseCtl) JSON(m map[string]interface{}) {
func (t *BaseCtl) JSON(m interface{}) {
t.DisplayByData(m)
}

24
controllers/client/live.go

@ -0,0 +1,24 @@
package client
import (
"hudongzhuanjia/controllers"
"hudongzhuanjia/models"
"hudongzhuanjia/utils/code"
)
type LiveCtl struct {
controllers.BaseCtl
}
// 详情
func (t *LiveCtl) Detail() {
activityId := t.MustGetInt64("activity_id")
live := new(models.LiveConfig)
exist, err := live.GetByActivityId(activityId)
t.CheckErr(err)
t.Assert(exist, code.MSG_ACTIVITY_NOT_EXIST, "直播活动不存在")
live.AdminLiveUrl = ""
t.JSON(live)
}

17
controllers/client/login.go

@ -87,8 +87,6 @@ func (t *UserCtl) WxLogin() {
info, err := wx.GetUserInfo(token.AccessToken, token.Openid)
t.CheckErr(err)
user := new(models.User)
exist, err = user.GetUserByOpenid(info.Openid)
t.CheckErr(err)
user.Nickname = info.Nickname
user.Openid = info.Openid
user.Gender = func() string {
@ -107,18 +105,22 @@ func (t *UserCtl) WxLogin() {
user.Country = info.Country
user.CreatedAt = time.Now()
user.UpdatedAt = time.Now()
exist, err = user.GetUserByOpenid(info.Openid)
t.CheckErr(err)
if exist {
core.GetXormAuto().Id(user.Id).AllCols().Update(user)
_, err = core.GetXormAuto().Id(user.Id).AllCols().Update(user)
} else {
core.GetXormAuto().InsertOne(user)
_, err = core.GetXormAuto().InsertOne(user)
}
t.CheckErr(err)
signIn := "未签到"
history := new(models.SignHistory)
exist, err = history.GetByUserId(activityId, user.Id, activity.RehearsalId, area.Id)
signExist, err := history.GetByUserId(activityId, user.Id, activity.RehearsalId, area.Id)
t.CheckErr(err)
if exist { // 存在数据
var signIn = "未签到"
if signExist { // 存在数据
signIn = "已签到"
}
sign := new(models.SignUp)
@ -138,6 +140,7 @@ func (t *UserCtl) WxLogin() {
"token": jwtToken,
"activity": activity,
"sign_in": signIn,
"sign": signExist,
"real_sign": realSignExist,
"real_sign_form": sign.RealSignJsonForm,
"tag": "activity",

8
libs/jwt/jwt_go.go

@ -9,7 +9,7 @@ import (
"github.com/ouxuanserver/osmanthuswine/src/helper"
)
type JwtClaims struct {
type Claims struct {
AccountType string
AccountId int64
CustomerId int64
@ -21,7 +21,7 @@ type JwtClaims struct {
}
func GenJwtToken(accountType string, accountId, customerId, customerPid, areaId, activityId int64, username string) (string, error) {
claims := JwtClaims{
claims := Claims{
accountType,
accountId,
customerId,
@ -47,8 +47,8 @@ const Issuer = "osmanthuswine-issuer-ox"
const Subject = "osmanthuswine-subject-ox"
const Audience = "osmanthuswine-audience-ox"
func ParseAccessToken(accessToken string) (*JwtClaims, error) {
var claims = &JwtClaims{}
func ParseAccessToken(accessToken string) (*Claims, error) {
var claims = &Claims{}
token, err := jwt.ParseWithClaims(accessToken, claims, func(token *jwt.Token) (i interface{}, e error) {
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])

1
main.go

@ -45,6 +45,7 @@ func main() {
core.GetInstanceRouterManage().Registered(new(client.OrderEntryCtl)) // 订单
core.GetInstanceRouterManage().Registered(new(client.LotteryCtl)) // 奖品
core.GetInstanceRouterManage().Registered(new(client.CalorieCtl)) // 卡路里
core.GetInstanceRouterManage().Registered(new(client.LiveCtl)) // 直播
// common
core.GetInstanceRouterManage().Registered(new(common.AnnexCtl))

43
models/live_config.go

@ -0,0 +1,43 @@
package models
import (
"github.com/ouxuanserver/osmanthuswine/src/core"
"time"
)
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 '' comment('是否删除')"`
CreatedAt time.Time `json:"created_at" xorm:"not null comment('创建时间') DATETIME"`
UpdatedAt time.Time `json:"updated_at" xorm:"not null default CURRENT_TIMESTAMP comment('更新时间') TIMESTAMP"`
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)"`
LiveRoomId string `json:"live_room_id" xorm:"not null default '' comment('直播间id') VARCHAR(128)"`
AdaptationFunc string `json:"adaptation_func" xorm:"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)"`
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已结束') VARCHAR(255)"`
}
func (t *LiveConfig) TableName() string {
return LiveConfigTN
}
func (t *LiveConfig) GetByActivityId(id interface{}) (bool, error) {
return core.GetXormAuto().Where("is_delete=0 and activity_id=?", id).Get(t)
}

96
utils/code/code.go

@ -1,57 +1,47 @@
package code
const (
MSG_NOT_LOGIN = -1
MSG_LOGIN = 0
MSG_LOGIN_SIGNIN = 1
MSG_SUCCESS = 200 // 成功
MSG_DATA_NOT_EXIST = 404
MSG_ERR_Authority = 501
MSG_ERR_Param = 503
MSG_ERR = 504
MSG_ERR_SERVER = 505
MSG_USER_NOT_EXIST = 600
MSG_WX_UNIFIEDORDER_ERR = 601
MSG_USER_ORDER_NOT_EXIST = 602
MSG_USER_DATA_ERROR = 603
MSG_CUSTOMER_NOT_EXIST = 700
MSG_AREASTORE_NOT_EXIST = 800
MSG_ENTRYPEOPLE_NOT_EXIST = 900
MSG_ACTIVITY_NOT_EXIST = 1000 // 互动不存在
MSG_MODULE_NOT_EXIST = 1001 // 模块活动不存在
MSG_MODULE_STATUS_END = 1002 // 该模块活动已结束
MSG_MODULE_STATUS_NOT_RUNNING = 1003 // 该模块活动不在进行中
MSG_MODULE_STATUS_NOT_BEGIN = 1004 // 该模块获取未开始
MSG_MODULE_STATUS_ERROR = 1005 // 状态出差
MSG_TUGWAR_NOT_EXIST = 2000 // 拔河不存在
MSG_TUGWAR_TEAM_OVER_LIMIT = 2001 // 拔河队伍满人
MSG_TUGWAR_MEMBER_NOT_EXIST = 2002 // 拔河队伍不存在人员
MSG_TUGWAR_TEAM_NOT_EXIST = 2003 // 拔河队伍不存在
MSG_INVITE_LETTER_NOT_EXIST = 3000 // 邀请函不存在
MSG_INVITE_LETTER_EXIST = 3001 // 邀请函存在
MSG_INVITE_SETTING_NOT_EXIST = 3002 // 邀请函设置不存在
MSG_INVITE_ORDER_SETTING_NOT_EXIST = 3003 // 订单设置不存在
MSG_LOTTERY_PRIZE_NOT_ENOUGH = 4001 // 奖品不足
MSG_LOTTERY_PEOPLE_NOT_ENOUGH = 4002 // 抽奖人数不足
MSG_LOTTERY_RULE_NOT_EXIST = 4003 // 抽奖规则不存在
MSG_ORDER_RULE_NOT_EXIST = 4005 // 订单抽奖规则不存在
MSG_ORDER_LADDER_NOT_EXIST = 4006 // 订单抽奖阶梯不存在
MSG_LOTTERY_LADDER_NOT_EXIST = 4007 // 抽奖等级不存在
MSG_SIGN_UP_NOT_EXIST = 5000 // 签到规则不存在
MSG_SIGN_HISTORY_EXIST = 5001 // 签到存在
MSG_SIGN_UP_REHEARSAL_LIMIT = 5002 // 签到彩排人数限制
MSG_SIGN_REAL_EXIST = 5003 // 实名签到存在
MSG_SIGN_REAL_NOT_EXIST = 5004 // 实名签到json_list 不存在
MSG_SIGN_REAL_DATA_NOT_EXIST = 5005 // 实名签到json_list 不存在
MSG_BULLY_SCREEN_SERVER_NOT_EXIST = 6000 // 霸屏 不存在
MSG_BARRAGE_SERVER_NOT_EXIST = 6001 // 弹幕 不存在
MSG_REWARD_NOT_EXIST = 6002 // 打赏不存
MSG_VOTE_HISTORY_EXIST = 7001 // 投票历史存在
MSG_VOTE_LADDER_NOT_EXIST = 7002 // 投票人不存在
MSG_SHAKERB_NOT_EXIST = 8000 // 摇红包不存在
MSG_SHAKERB_RECORD_NOT_EXIST = 8001 // 摇红包不存在
MSG_SHAKERB_RULE_NOT_EXIST = 8002 // 红包规则不存在
MSG_AUCTION_NOT_EXIST = 9000 // 竞拍不存在
MSG_AUCTION_PLAYER_NOT_EXIST = 9001 // 竞拍人不存在
MSG_CALORIE_NOT_EXIST = 10001 // 卡路里轮次不存在
MSG_SUCCESS = 0
MSG_DATA_NOT_EXIST = 404
MSG_ERR_Authority = 501
MSG_ERR_Param = 503
MSG_ERR = 504
MSG_USER_NOT_EXIST = 600
MSG_USER_ORDER_NOT_EXIST = 602
MSG_USER_DATA_ERROR = 603
MSG_CUSTOMER_NOT_EXIST = 700
MSG_AREASTORE_NOT_EXIST = 800
MSG_ENTRYPEOPLE_NOT_EXIST = 900
MSG_ACTIVITY_NOT_EXIST = 1000 // 互动不存在
MSG_MODULE_NOT_EXIST = 1001 // 模块活动不存在
MSG_MODULE_STATUS_END = 1002 // 该模块活动已结束
MSG_MODULE_STATUS_NOT_RUNNING = 1003 // 该模块活动不在进行中
MSG_MODULE_STATUS_ERROR = 1005 // 状态出差
MSG_TUGWAR_NOT_EXIST = 2000 // 拔河不存在
MSG_TUGWAR_TEAM_OVER_LIMIT = 2001 // 拔河队伍满人
MSG_TUGWAR_MEMBER_NOT_EXIST = 2002 // 拔河队伍不存在人员
MSG_TUGWAR_TEAM_NOT_EXIST = 2003 // 拔河队伍不存在
MSG_INVITE_LETTER_NOT_EXIST = 3000 // 邀请函不存在
MSG_INVITE_LETTER_EXIST = 3001 // 邀请函存在
MSG_INVITE_SETTING_NOT_EXIST = 3002 // 邀请函设置不存在
MSG_LOTTERY_PRIZE_NOT_ENOUGH = 4001 // 奖品不足
MSG_LOTTERY_PEOPLE_NOT_ENOUGH = 4002 // 抽奖人数不足
MSG_LOTTERY_RULE_NOT_EXIST = 4003 // 抽奖规则不存在
MSG_ORDER_RULE_NOT_EXIST = 4005 // 订单抽奖规则不存在
MSG_ORDER_LADDER_NOT_EXIST = 4006 // 订单抽奖阶梯不存在
MSG_SIGN_UP_NOT_EXIST = 5000 // 签到规则不存在
MSG_SIGN_HISTORY_EXIST = 5001 // 签到存在
MSG_SIGN_UP_REHEARSAL_LIMIT = 5002 // 签到彩排人数限制
MSG_SIGN_REAL_NOT_EXIST = 5004 // 实名签到json_list 不存在
MSG_BULLY_SCREEN_SERVER_NOT_EXIST = 6000 // 霸屏 不存在
MSG_BARRAGE_SERVER_NOT_EXIST = 6001 // 弹幕 不存在
MSG_REWARD_NOT_EXIST = 6002 // 打赏不存
MSG_VOTE_HISTORY_EXIST = 7001 // 投票历史存在
MSG_VOTE_LADDER_NOT_EXIST = 7002 // 投票人不存在
MSG_SHAKERB_NOT_EXIST = 8000 // 摇红包不存在
MSG_SHAKERB_RECORD_NOT_EXIST = 8001 // 摇红包不存在
MSG_SHAKERB_RULE_NOT_EXIST = 8002 // 红包规则不存在
MSG_AUCTION_NOT_EXIST = 9000 // 竞拍不存在
MSG_AUCTION_PLAYER_NOT_EXIST = 9001 // 竞拍人不存在
MSG_CALORIE_NOT_EXIST = 10001 // 卡路里轮次不存在
)
Loading…
Cancel
Save