fix(player): 修复玩家信息服务中的代码格式和类型错误 - 修复了代码中多余的空格导致的格式问题 - 将saveToLocalFile方法的参数类型从*model.Player更正为*model.PlayerInfo - 更新了FallbackData结构体中PlayerData字段的类型定义 - 修改了玩家ID获取逻辑,从PlayerID改为UserID以匹配实际数据结构 - 简化了Save方法中的
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user