game_sync/model/coingivelog.go

273 lines
6.3 KiB
Go

package model
import (
"time"
"github.com/globalsign/mgo/bson"
"mongo.games.com/goserver/core/logger"
)
var (
CoinGiveLogDBName = "log"
CoinGiveLogCollName = "log_coingive"
)
const (
COINGIVETYPE_PAY = 0 //充值
COINGIVETYPE_SYSTEM = 1 //系统赠送
)
const (
COINGIVEVER = 0 //当前数据版本
)
type CoinGiveLog struct {
LogId bson.ObjectId `bson:"_id"`
SnId int32 //玩家id
Platform string //平台名称
Channel string //渠道名称
Promoter string //推广员
PromoterTree int32 //全民树
PayCoin int64 //充值金额
GiveCoin int64 //赠送金额
Remark string //备注
Opter string //操作接口
State int64 //预留处理标记用
FLow int64 //完成流水
Ts int64 //时间戳 纳秒
NeedFlowRate int32 //需要流水比例
NeedGiveFlowRate int32 //则送需要流水比例
Time time.Time //时间戳
CoinType int32 //金币类型 0:钱包 1:保险箱
RecType int32 //记录类型 0:充值 1:系统赠送
LogType int32 //log类型
Ver int32 //数据版本
}
func NewCoinGiveLogEx(snid int32, username string, payCoin, giveCoin int64, coinType, logType, promoterTree, recType, ver int32, platform, channel,
promoter, remark, op, packageid string, needFlowRate, needGiveFlowRate int32) *CoinGiveLog {
cl := &CoinGiveLog{LogId: bson.NewObjectId()}
cl.SnId = snid
//cl.UserName = username
cl.Platform = platform
cl.Channel = channel
cl.Promoter = promoter
cl.PayCoin = payCoin
cl.GiveCoin = giveCoin
cl.RecType = recType
cl.CoinType = coinType
cl.LogType = logType
cl.Ver = ver
cl.PromoterTree = promoterTree
cl.Remark = remark
cl.Opter = op
cl.Time = time.Now()
cl.Ts = cl.Time.Local().UnixNano()
cl.NeedFlowRate = needFlowRate
cl.NeedGiveFlowRate = needGiveFlowRate
//cl.PackageTag = packageid
return cl
}
type UpdateGiveCoinLastFlowArg struct {
Plt string
LogId string
Flow int64
}
func UpdateGiveCoinLastFlow(platform, logid string, flow int64) (err error) {
if rpcCli == nil {
logger.Logger.Error("model.UpdateGiveCoinLastFlow rpcCli == nil")
return
}
args := &UpdateGiveCoinLastFlowArg{
Plt: platform,
LogId: logid,
Flow: flow,
}
var ret bool
err = rpcCli.CallWithTimeout("CoinGiveLogSvc.UpdateGiveCoinLastFlow", args, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("UpdateGiveCoinLastFlow error:", err)
}
return
}
type GetGiveCoinLastFlowArg struct {
Plt string
LogId string
}
func GetGiveCoinLastFlow(platform, logid string) (log *CoinGiveLog) {
if rpcCli == nil {
logger.Logger.Error("model.GetGiveCoinLastFlow rpcCli == nil")
return nil
}
args := &GetGiveCoinLastFlowArg{
Plt: platform,
LogId: logid,
}
err := rpcCli.CallWithTimeout("CoinGiveLogSvc.GetGiveCoinLastFlow", args, &log, time.Second*30)
if err != nil {
logger.Logger.Warn("GetGiveCoinLastFlow error:", err)
}
return
}
type GetCoinGiveLogListArg struct {
Plt string
SnId int32
Ver int32
TsStart int64
TsEnd int64
}
func GetCoinGiveLogList(platform string, snid int32, ver int32, tsStart int64, tsEnd int64) (logs []*CoinGiveLog) {
if rpcCli == nil {
logger.Logger.Error("model.GetCoinGiveLogList rpcCli == nil")
return nil
}
args := &GetCoinGiveLogListArg{
Plt: platform,
SnId: snid,
Ver: ver,
TsStart: tsStart,
TsEnd: tsEnd,
}
err := rpcCli.CallWithTimeout("CoinGiveLogSvc.GetCoinGiveLogList", args, &logs, time.Second*30)
if err != nil {
logger.Logger.Warn("GetCoinGiveLogList error:", err)
}
return
}
type GetCoinGiveLogListByStateArg struct {
Plt string
SnId int32
State int64
}
func GetCoinGiveLogListByState(platform string, snid int32, state int64) (logs []*CoinGiveLog) {
if rpcCli == nil {
logger.Logger.Error("model.GetCoinGiveLogListByState rpcCli == nil")
return nil
}
args := &GetCoinGiveLogListByStateArg{
Plt: platform,
SnId: snid,
State: state,
}
err := rpcCli.CallWithTimeout("CoinGiveLogSvc.GetCoinGiveLogListByState", args, &logs, time.Second*30)
if err != nil {
logger.Logger.Warn("GetCoinGiveLogListByState error:", err)
}
return
}
type ResetCoinGiveLogListArg struct {
Plt string
SnId int32
Ts int64
}
func ResetCoinGiveLogList(platform string, snid int32, ts int64) error {
if rpcCli == nil {
logger.Logger.Error("model.ResetCoinGiveLogList rpcCli == nil")
return nil
}
args := &ResetCoinGiveLogListArg{
Plt: platform,
SnId: snid,
Ts: ts,
}
var ret bool
err := rpcCli.CallWithTimeout("CoinGiveLogSvc.ResetCoinGiveLogList", args, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("ResetCoinGiveLogList error:", err)
}
return err
}
type SetCoinGiveLogListArg struct {
Plt string
SnId int32
State int64
TsStart int64
TsEnd int64
}
func SetCoinGiveLogList(platform string, snid int32, startTs int64, endTs int64, v int64) error {
if rpcCli == nil {
logger.Logger.Error("model.SetCoinGiveLogList rpcCli == nil")
return nil
}
args := &SetCoinGiveLogListArg{
Plt: platform,
SnId: snid,
State: v,
TsStart: startTs,
TsEnd: endTs,
}
var ret bool
err := rpcCli.CallWithTimeout("CoinGiveLogSvc.SetCoinGiveLogList", args, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("SetCoinGiveLogList error:", err)
}
return err
}
type UpdateCoinLogArg struct {
Plt string
LogId string
State int64
}
func UpdateCoinLog(platform, logid string, v int64) error {
if rpcCli == nil {
logger.Logger.Error("model.UpdateCoinLog rpcCli == nil")
return nil
}
args := &UpdateCoinLogArg{
Plt: platform,
LogId: logid,
State: v,
}
var ret bool
err := rpcCli.CallWithTimeout("CoinGiveLogSvc.UpdateCoinLog", args, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("UpdateCoinLog error:", err)
}
return err
}
func InsertGiveCoinLog(log *CoinGiveLog) (err error) {
if rpcCli == nil {
logger.Logger.Error("model.InsertGiveCoinLog rpcCli == nil")
return nil
}
var ret bool
err = rpcCli.CallWithTimeout("CoinGiveLogSvc.InsertGiveCoinLog", log, &ret, time.Second*30)
if err != nil {
logger.Logger.Warn("InsertGiveCoinLog error:", err)
}
return
}