package model import ( "time" "github.com/globalsign/mgo/bson" "mongo.games.com/game/common" ) var ( OnlineLogDBName = "log" OnlineLogCollName = "log_online" ) // OnlineLog 登录登出记录 type OnlineLog struct { LogId bson.ObjectId `bson:"_id"` Platform string //平台id SnId int32 OnlineType int32 // 上线类型,登录,重连 OnlineTs int64 // 在线时间 OfflineType int32 // 离线类型,断线,登出 OfflineTs int64 // 离线时间 } func NewOnlineLog(id bson.ObjectId, snId, logType int32, platform string) *OnlineLog { now := time.Now() cl := &OnlineLog{} if id == "" { cl.LogId = bson.NewObjectId() } else { cl.LogId = id } cl.Platform = platform cl.SnId = snId switch logType { case common.LoginLogTypeLogin, common.LoginLogTypeRehold: cl.OnlineType = logType cl.OnlineTs = now.Unix() case common.LoginLogTypeDrop, common.LoginLogTypeLogout: cl.OfflineType = logType cl.OfflineTs = now.Unix() } return cl }