From ae41e15c1bdfcb569a882b0e6f0aca3233614c62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=94=E5=BF=B5?= <12574910+72wo@users.noreply.github.com> Date: Tue, 17 Mar 2026 00:02:21 +0800 Subject: [PATCH] =?UTF-8?q?```=20fix(player):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E4=BF=A1=E6=81=AF=E6=9C=8D=E5=8A=A1=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E5=92=8C=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复了代码中多余的空格导致的格式问题 - 将saveToLocalFile方法的参数类型从*model.Player更正为*model.PlayerInfo - 更新了FallbackData结构体中PlayerData字段的类型定义 - 修改了玩家ID获取逻辑,从PlayerID改为UserID以匹配实际数据结构 - 简化了Save方法中的 --- modules/player/service/info.go | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/modules/player/service/info.go b/modules/player/service/info.go index c283717a..ca8464ff 100644 --- a/modules/player/service/info.go +++ b/modules/player/service/info.go @@ -94,7 +94,7 @@ func (s *InfoService) GetLogin() *model.PlayerInfo { } if cool.Config.ServerInfo.IsVip == 0 { - if !utils.IsToday(tt.LastResetTime) { //判断是否是今天 + if !utils.IsToday(tt.LastResetTime) { //判断是否是今天 //每天login时候检查重置时间,然后把电池,任务,挖矿重置 //挖矿需要单独存,因为防止多开挖矿 @@ -123,7 +123,7 @@ func (s *InfoService) GetLogin() *model.PlayerInfo { panic(err) } } - if !IsWEEK(tt.WeekLastResetTime) { + if !IsWEEK(tt.WeekLastResetTime) { for _, v := range service.NewTaskService().GetWeek() { @@ -192,7 +192,7 @@ func (s *InfoService) Kick(id uint32) error { } // saveToLocalFile 兜底保存:将数据写入本地lose文件夹 -func (s *InfoService) saveToLocalFile(player *model.Player, err error) { +func (s *InfoService) saveToLocalFile(player *model.PlayerInfo, err error) { // 1. 创建lose文件夹(如果不存在) loseDir := "./lose" if err := os.MkdirAll(loseDir, 0755); err != nil { @@ -202,10 +202,10 @@ func (s *InfoService) saveToLocalFile(player *model.Player, err error) { // 2. 构造保存的数据结构,包含错误信息和时间戳 type FallbackData struct { - PlayerData *model.Player `json:"player_data"` - ErrorMsg string `json:"error_msg"` - SaveTime string `json:"save_time"` - ServerInfo string `json:"server_info"` + PlayerData *model.PlayerInfo `json:"player_data"` + ErrorMsg string `json:"error_msg"` + SaveTime string `json:"save_time"` + ServerInfo string `json:"server_info"` } fallbackData := FallbackData{ @@ -216,7 +216,7 @@ func (s *InfoService) saveToLocalFile(player *model.Player, err error) { } // 3. 生成唯一的文件名(避免覆盖) - playerID := fmt.Sprintf("%d", player.PlayerID) // 假设Player有PlayerID字段,根据实际调整 + playerID := fmt.Sprintf("%d", player.UserID) // 假设Player有PlayerID字段,根据实际调整 filename := fmt.Sprintf("player_%s_%s.json", playerID, fallbackData.SaveTime) filePath := filepath.Join(loseDir, filename) @@ -243,17 +243,11 @@ func (s *InfoService) Save(data model.PlayerInfo) { return } - m := s.dbm_fix(s.Model) - var tt *model.Player - m.Scan(&tt) - if tt == nil { - return - } - tt.Data = data - _, err := m.Save(tt) + + _, err := s.dbm_fix(s.Model).Data("data", data).Update() if err != nil { //todo 待实现兜底保存,现在有可能出错 - s.saveToLocalFile(tt, err) + s.saveToLocalFile(&data, err) panic(err) }