diff --git a/modules/player/service/info.go b/modules/player/service/info.go index c283717ab..ca8464ffd 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) }