83 lines
2.1 KiB
Go
83 lines
2.1 KiB
Go
package model
|
||
|
||
import (
|
||
"time"
|
||
|
||
"github.com/globalsign/mgo/bson"
|
||
"mongo.games.com/goserver/core/logger"
|
||
)
|
||
|
||
var (
|
||
CoinWALDBName = "log"
|
||
CoinWALCollName = "log_coinwal"
|
||
)
|
||
|
||
type CoinWAL struct {
|
||
Id bson.ObjectId `bson:"_id"`
|
||
SnId int32 //玩家id
|
||
Count int64 //帐变数量
|
||
InGame int32 //0:其他 1~N:具体游戏id
|
||
SceneId int32 //房间id
|
||
CoinType int32 //金币类型 0:钱包 1:保险箱 2:俱乐部账户
|
||
LogType int32 //log类型
|
||
CurTs int64 //加个插入时间戳
|
||
Ts int64 //时间戳
|
||
}
|
||
|
||
func NewCoinWAL(snid int32, count int64, logType, inGame int32, cointype int32, roomid int32, ts int64) *CoinWAL {
|
||
cl := &CoinWAL{Id: bson.NewObjectId()}
|
||
cl.SnId = snid
|
||
cl.Count = count
|
||
cl.InGame = inGame
|
||
cl.CoinType = cointype
|
||
cl.LogType = logType
|
||
cl.SceneId = roomid
|
||
cl.Ts = ts
|
||
cl.CurTs = time.Now().Unix()
|
||
return cl
|
||
}
|
||
|
||
type CoinWALWithSnid_InGame_GreaterTsArgs struct {
|
||
Plt string
|
||
SnId int32
|
||
RoomId int32
|
||
Ts int64
|
||
}
|
||
|
||
func GetCoinWALBySnidAndInGameAndGreaterTs(plt string, id int32, roomid int32, ts int64) (ret []CoinWAL, err error) {
|
||
if rpcCli == nil {
|
||
logger.Logger.Error("model.GetCoinWALBySnidAndInGameAndGreaterTs rpcCli == nil")
|
||
return
|
||
}
|
||
args := &CoinWALWithSnid_InGame_GreaterTsArgs{
|
||
Plt: plt,
|
||
SnId: id,
|
||
RoomId: roomid,
|
||
Ts: ts,
|
||
}
|
||
err = rpcCli.CallWithTimeout("CoinWALSvc.GetCoinWALBySnidAndInGameAndGreaterTs", args, &ret, time.Second*30)
|
||
if err != nil {
|
||
logger.Logger.Warn("GetCoinWALBySnidAndInGameAndGreaterTs error:", err)
|
||
}
|
||
return
|
||
}
|
||
|
||
func RemoveCoinWALBySnidAndInGameAndGreaterTs(plt string, id int32, roomid int32, ts int64) (err error) {
|
||
if rpcCli == nil {
|
||
logger.Logger.Error("model.RemoveCoinWALBySnidAndInGameAndGreaterTs rpcCli == nil")
|
||
return
|
||
}
|
||
args := &CoinWALWithSnid_InGame_GreaterTsArgs{
|
||
Plt: plt,
|
||
SnId: id,
|
||
RoomId: roomid,
|
||
Ts: ts,
|
||
}
|
||
var ret bool
|
||
err = rpcCli.CallWithTimeout("CoinWALSvc.RemoveCoinWALBySnidAndInGameAndGreaterTs", args, &ret, time.Second*30)
|
||
if err != nil {
|
||
logger.Logger.Warn("RemoveCoinWALBySnidAndInGameAndGreaterTs error:", err)
|
||
}
|
||
return
|
||
}
|