From 779d8a64a40641e98e814e24d76b718462f404e8 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 9 Dec 2024 16:51:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=89=E9=9C=B8=E7=BC=93=E5=AD=98=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/gamedetail.go | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/gamesrv/base/gamedetail.go b/gamesrv/base/gamedetail.go index 9b43209..b41779d 100644 --- a/gamesrv/base/gamedetail.go +++ b/gamesrv/base/gamedetail.go @@ -223,10 +223,11 @@ func (s *SaveGameDetailedCopy) Save() { } } -// LabaLog 拉霸缓存游戏记录 +// LabaLog 拉霸缓存游戏记录,为了统计游戏时长 type LabaLog struct { PlayerListLog *SaveGamePlayerListLogCopy GameDetailLog *SaveGameDetailedCopy + CacheTime time.Time // 缓存时间 } // Cache 临时缓存 @@ -238,13 +239,31 @@ func (l *LabaLog) Cache(s *Scene, detailLog *SaveGameDetailedParam, playerListLo playerListLog.OnlyLog = true l.GameDetailLog = s.SaveGameDetailedLog(detailLog) l.PlayerListLog = s.SaveGamePlayerListLog(playerListLog) + l.CacheTime = time.Now() } // Save 保存 -func (l *LabaLog) Save(f func(log *LabaLog)) { - f(l) - l.PlayerListLog.Save() - l.GameDetailLog.Save() +func (l *LabaLog) Save(second int32) { + if second <= 0 { + second = int32(time.Now().Sub(l.CacheTime).Seconds()) + } + + if l.PlayerListLog != nil { + if l.PlayerListLog.UpLog != nil { + for _, v := range l.PlayerListLog.UpLog.Log { + v.GamingTime = second + } + } + l.PlayerListLog.Save() + } + + if l.GameDetailLog != nil { + for _, v := range l.GameDetailLog.Log { + v.GameTiming = second + } + l.GameDetailLog.Save() + } + l.Clear() } @@ -252,4 +271,5 @@ func (l *LabaLog) Save(f func(log *LabaLog)) { func (l *LabaLog) Clear() { l.PlayerListLog = nil l.GameDetailLog = nil + l.CacheTime = time.Time{} }