game_sync/model/loginlog.go

129 lines
3.0 KiB
Go

package model
import (
"time"
"github.com/globalsign/mgo/bson"
)
var (
LoginLogDBName = "log"
LoginLogCollName = "log_login"
)
type ClientLoginInfo struct {
LoginType int32
ApkVer int32
ResVer int32
InviterId int32
PromoterTree int32
Sid int64
UserName string
PlatformTag string
Promoter string
HeadUrl string
DeviceOS string
}
// LoginLog 登录登出记录
type LoginLog struct {
LogId bson.ObjectId `bson:"_id"`
Platform string //平台id
Channel string //渠道
Promoter string //推广员
Package string //包名
PackageTag string //推广包标识
InviterId int32 //邀请人id
PromoterTree int32
SnId int32
LogType int32
ApkVer int32
ResVer int32
Tel string
IP string
City string
IsBind bool
TotalCoin int64 // 总余额
GameId int // 玩家掉线时所在游戏
Time time.Time
Ts int64
LastGameID int // 玩家最后所在游戏id
ChannelId string
DeviceName string
AppVersion string
BuildVersion string
AppChannel string
DeviceOS string
ClientVer int32
}
func NewLoginLog(snId, logType int32, tel, ip, platform, channel, promoter, packageId, city string,
clog *ClientLoginInfo, totalCoin int64, gameId, lastGameId int,
DeviceName, PackageName, AppVersion, BuildVersion, AppChannel, channelId string, clientVer int32) *LoginLog {
now := time.Now()
cl := &LoginLog{LogId: bson.NewObjectId()}
cl.SnId = snId
cl.LogType = logType
cl.IP = ip
cl.Tel = tel
cl.City = city
cl.Time = now
cl.Ts = now.Unix()
cl.Platform = platform
cl.Channel = channel
cl.ChannelId = channelId
cl.Promoter = promoter
cl.PackageTag = packageId
if clog != nil {
cl.InviterId = clog.InviterId
cl.ApkVer = clog.ApkVer
cl.ResVer = clog.ResVer
cl.PackageTag = clog.PlatformTag
cl.DeviceOS = clog.DeviceOS
}
cl.TotalCoin = totalCoin
cl.GameId = gameId
cl.LastGameID = lastGameId
if tel != "" {
cl.IsBind = true
} else {
cl.IsBind = false
}
cl.Package = PackageName
cl.DeviceName = DeviceName
cl.AppVersion = AppVersion
cl.BuildVersion = BuildVersion
cl.AppChannel = AppChannel
cl.ClientVer = clientVer
return cl
}
//func InsertLoginLogs(logs ...*LoginLog) (err error) {
// if rpcCli == nil {
// logger.Logger.Error("model.InsertLoginLogs rpcCli == nil")
// return
// }
// var ret bool
// err = rpcCli.CallWithTimeout("LoginsLogSvc.InsertLoginLogs", logs, &ret, time.Second*30)
// if err != nil {
// logger.Logger.Warn("InsertLoginLogs error:", err)
// }
// return
//}
//
//func InsertSignleLoginLog(log *LoginLog) (err error) {
// if rpcCli == nil {
// logger.Logger.Error("model.InsertLoginLogs rpcCli == nil")
// return
// }
// var ret bool
// err = rpcCli.CallWithTimeout("LoginsLogSvc.InsertLoginLogs", log, &ret, time.Second*30)
// if err != nil {
// logger.Logger.Warn("InsertLoginLogs error:", err)
// }
// return
//}