game_sync/model/blackwhitelog.go

104 lines
2.6 KiB
Go

package model
import (
"time"
"github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger"
)
type BlackWhiteCoinLog struct {
LogId bson.ObjectId `bson:"_id"`
SnId int32 //用户ID
WBLevel int32
WBCoinLimit int64
ResetTotalCoin int32
Platform string //平台id
Time time.Time //账单时间
}
func NewBlackWhiteCoinLog(snid, wbLevel int32, wbCoinLimit int64, resetTotalCoin int32, platform string) *BlackWhiteCoinLog {
tNow := time.Now()
log := &BlackWhiteCoinLog{
LogId: bson.NewObjectId(),
SnId: snid,
WBLevel: wbLevel,
WBCoinLimit: wbCoinLimit,
ResetTotalCoin: resetTotalCoin,
Platform: platform,
Time: tNow,
}
return log
}
type BlackWhiteCoinArg struct {
Id bson.ObjectId
SnId int32
BillNo int64
Platform string
}
type BlackWhiteCoinRet struct {
Err error
Data *BlackWhiteCoinLog
}
func InsertBlackWhiteCoinLogs(logs ...*BlackWhiteCoinLog) error {
if rpcCli == nil {
return ErrRPClientNoConn
}
ret := &BlackWhiteCoinRet{}
err := rpcCli.CallWithTimeout("BlackWhiteCoinSvc.InsertBlackWhiteCoinLogs", logs, ret, time.Second*30)
if err != nil {
logger.Logger.Error("model.InsertBlackWhiteCoinLogs error", err)
return err
}
return ret.Err
}
func InsertBlackWhiteCoinLog(log *BlackWhiteCoinLog) error {
if rpcCli == nil {
return ErrRPClientNoConn
}
ret := &BlackWhiteCoinRet{}
err := rpcCli.CallWithTimeout("BlackWhiteCoinSvc.InsertBlackWhiteCoinLog", log, ret, time.Second*30)
if err != nil {
logger.Logger.Error("model.InsertBlackWhiteCoinLog error", err)
return err
}
return ret.Err
}
func RemoveBlackWhiteCoinLog(id bson.ObjectId, platform string) error {
if rpcCli == nil {
return ErrRPClientNoConn
}
args := &BlackWhiteCoinArg{
Id: id,
Platform: platform,
}
ret := &BlackWhiteCoinRet{}
err := rpcCli.CallWithTimeout("BlackWhiteCoinSvc.RemoveBlackWhiteCoinLog", args, ret, time.Second*30)
if err != nil {
logger.Logger.Error("model.RemoveBlackWhiteCoinLog error", err)
return err
}
return ret.Err
}
func GetBlackWhiteCoinLogByBillNo(snid int32, billNo int64, platform string) (*BlackWhiteCoinLog, error) {
if rpcCli == nil {
return nil, ErrRPClientNoConn
}
args := &BlackWhiteCoinArg{
SnId: snid,
BillNo: billNo,
Platform: platform,
}
ret := &BlackWhiteCoinRet{}
err := rpcCli.CallWithTimeout("BlackWhiteCoinSvc.GetBlackWhiteCoinLogByBillNo", args, ret, time.Second*30)
if err != nil {
logger.Logger.Error("model.GetBlackWhiteCoinLogByBillNo error", err)
return nil, err
}
return ret.Data, ret.Err
}