212 lines
5.9 KiB
Go
212 lines
5.9 KiB
Go
package model
|
||
|
||
import (
|
||
"github.com/globalsign/mgo/bson"
|
||
"sync/atomic"
|
||
"time"
|
||
)
|
||
|
||
var (
|
||
HundredjackpotLogDBName = "log"
|
||
HundredjackpotLogCollName = "log_hundredjackpotlog" // 游戏爆奖
|
||
)
|
||
|
||
// HundredjackpotLog 百人场爆奖结构
|
||
type HundredjackpotLog struct {
|
||
LogID bson.ObjectId `bson:"_id"`
|
||
SnID int32 // 玩家id
|
||
Platform string // 平台名称
|
||
Channel string // 渠道名称
|
||
Ts int64 // 时间戳
|
||
Time time.Time // 时间戳
|
||
InGame int32 // 0:其他 1~N:具体游戏id
|
||
LogType int32 // log类型 (具体见对应游戏)
|
||
Coin int64 // 中奖金额
|
||
TurnCoin int64 // 当前金额
|
||
Name string // 名字
|
||
Vip int32 // vip等级
|
||
RoomID int32 // 房间id ->gamefreeId
|
||
LikeNum int32 // 点赞数
|
||
LinkeSnids string // 点赞人
|
||
PlayblackNum int32 // 回放次数
|
||
GameData []string // 回放数据json
|
||
SeqNo int64 // 流水号(隶属于进程)
|
||
}
|
||
|
||
// HundredjackpotLogMaxLimitPerQuery 上榜人数
|
||
const HundredjackpotLogMaxLimitPerQuery = 99
|
||
|
||
// NewHundredjackpotLog 实例
|
||
func NewHundredjackpotLog() *HundredjackpotLog {
|
||
log := &HundredjackpotLog{LogID: bson.NewObjectId()}
|
||
return log
|
||
}
|
||
|
||
// NewHundredjackpotLogEx 赋值创建
|
||
func NewHundredjackpotLogEx(snid int32, coin, turncoin int64, roomid, logType, inGame, vip int32, platform, channel, name string, gamedata []string) *HundredjackpotLog {
|
||
cl := NewHundredjackpotLog()
|
||
cl.SnID = snid
|
||
cl.Platform = platform
|
||
cl.Channel = channel
|
||
tNow := time.Now()
|
||
cl.Ts = tNow.Unix()
|
||
cl.Time = tNow
|
||
cl.Coin = coin
|
||
cl.InGame = inGame
|
||
cl.Vip = vip
|
||
cl.LogType = logType
|
||
cl.Name = name
|
||
cl.RoomID = roomid
|
||
cl.GameData = gamedata
|
||
cl.TurnCoin = turncoin
|
||
cl.SeqNo = atomic.AddInt64(&COINEX_GLOBAL_SEQ, 1)
|
||
return cl
|
||
}
|
||
|
||
// GetHundredjackpotLogTsByPlatformAndGameID 时间排名
|
||
type GetHundredjackpotLogArgs struct {
|
||
Plt string
|
||
Id1 int32
|
||
Id2 int32
|
||
}
|
||
|
||
func GetHundredjackpotLogTsByPlatformAndGameID(platform string, gameid int32) (ret []HundredjackpotLog, err error) {
|
||
if rpcCli == nil {
|
||
return nil, ErrRPClientNoConn
|
||
}
|
||
|
||
args := &GetHundredjackpotLogArgs{
|
||
Plt: platform,
|
||
Id1: gameid,
|
||
}
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.GetHundredjackpotLogTsByPlatformAndGameID", args, &ret, time.Second*30)
|
||
|
||
return
|
||
}
|
||
|
||
// GetHundredjackpotLogCoinByPlatformAndGameID 中奖金币排名
|
||
func GetHundredjackpotLogCoinByPlatformAndGameID(platform string, gameid int32) (ret []HundredjackpotLog, err error) {
|
||
if rpcCli == nil {
|
||
return nil, ErrRPClientNoConn
|
||
}
|
||
|
||
args := &GetHundredjackpotLogArgs{
|
||
Plt: platform,
|
||
Id1: gameid,
|
||
}
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.GetHundredjackpotLogCoinByPlatformAndGameID", args, &ret, time.Second*30)
|
||
return
|
||
}
|
||
|
||
// GetHundredjackpotLogTsByPlatformAndGameFreeID 时间排名
|
||
func GetHundredjackpotLogTsByPlatformAndGameFreeID(platform string, gamefreeid int32) (ret []HundredjackpotLog, err error) {
|
||
if rpcCli == nil {
|
||
return nil, ErrRPClientNoConn
|
||
}
|
||
|
||
args := &GetHundredjackpotLogArgs{
|
||
Plt: platform,
|
||
Id1: gamefreeid,
|
||
}
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.GetHundredjackpotLogTsByPlatformAndGameFreeID", args, &ret, time.Second*30)
|
||
return
|
||
}
|
||
|
||
// GetHundredjackpotLogCoinByPlatformAndGameFreeID 中奖金币排名
|
||
func GetHundredjackpotLogCoinByPlatformAndGameFreeID(platform string, gamefreeid int32) (ret []HundredjackpotLog, err error) {
|
||
if rpcCli == nil {
|
||
return nil, ErrRPClientNoConn
|
||
}
|
||
|
||
args := &GetHundredjackpotLogArgs{
|
||
Plt: platform,
|
||
Id1: gamefreeid,
|
||
}
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.GetHundredjackpotLogCoinByPlatformAndGameFreeID", args, &ret, time.Second*30)
|
||
return
|
||
}
|
||
|
||
// GetLastHundredjackpotLogBySnidAndGameID .
|
||
func GetLastHundredjackpotLogBySnidAndGameID(plt string, id int32, gamefreeid int32) (log *HundredjackpotLog, err error) {
|
||
if rpcCli == nil {
|
||
return nil, ErrRPClientNoConn
|
||
}
|
||
args := &GetHundredjackpotLogArgs{
|
||
Plt: plt,
|
||
Id1: id,
|
||
Id2: gamefreeid,
|
||
}
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.GetLastHundredjackpotLogBySnidAndGameID", args, &log, time.Second*30)
|
||
return
|
||
}
|
||
|
||
// InsertHundredjackpotLog .
|
||
func InsertHundredjackpotLog(log *HundredjackpotLog) (err error) {
|
||
if rpcCli == nil {
|
||
return ErrRPClientNoConn
|
||
}
|
||
var ret bool
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.InsertHundredjackpotLog", log, &ret, time.Second*30)
|
||
return
|
||
}
|
||
|
||
// UpdateLikeNum 点赞次数
|
||
type UpdateLikeNumArgs struct {
|
||
Plt string
|
||
Id bson.ObjectId
|
||
LikeNum int32
|
||
LikeSnIds string
|
||
}
|
||
|
||
func UpdateLikeNum(plt string, id bson.ObjectId, likeNum int32, linkeSnids string) error {
|
||
if rpcCli == nil {
|
||
return ErrRPClientNoConn
|
||
}
|
||
args := &UpdateLikeNumArgs{
|
||
Plt: plt,
|
||
Id: id,
|
||
LikeNum: likeNum,
|
||
LikeSnIds: linkeSnids,
|
||
}
|
||
var ret bool
|
||
return rpcCli.CallWithTimeout("HundredjackpotLogSvc.UpdateLikeNum", args, &ret, time.Second*30)
|
||
}
|
||
|
||
// UpdatePlayBlackNum 回放次数
|
||
type UpdatePlayBlackNumArgs struct {
|
||
Plt string
|
||
Id bson.ObjectId
|
||
PlayblackNum int32
|
||
}
|
||
|
||
func UpdatePlayBlackNum(plt string, id bson.ObjectId, playblackNum int32) (ret []string, err error) {
|
||
if rpcCli == nil {
|
||
return nil, ErrRPClientNoConn
|
||
}
|
||
args := &UpdatePlayBlackNumArgs{
|
||
Plt: plt,
|
||
Id: id,
|
||
PlayblackNum: playblackNum,
|
||
}
|
||
err = rpcCli.CallWithTimeout("HundredjackpotLogSvc.UpdatePlayBlackNum", args, &ret, time.Second*30)
|
||
return
|
||
}
|
||
|
||
// RemoveHundredjackpotLogOne 移除
|
||
type RemoveHundredjackpotLogOneArgs struct {
|
||
Plt string
|
||
Id bson.ObjectId
|
||
}
|
||
|
||
func RemoveHundredjackpotLogOne(plt string, id bson.ObjectId) error {
|
||
if rpcCli == nil {
|
||
return ErrRPClientNoConn
|
||
}
|
||
args := &RemoveHundredjackpotLogOneArgs{
|
||
Plt: plt,
|
||
Id: id,
|
||
}
|
||
var ret bool
|
||
return rpcCli.CallWithTimeout("HundredjackpotLogSvc.RemoveHundredjackpotLogOne", args, &ret, time.Second*30)
|
||
}
|