player-data.go 793 Bytes
package dto

import (
	"apigame/util/util-lx/lxalilog"
	"apigame/util/utildto"
	"strings"
)

func LoadPlayerData(gameId string, uid int64, data IPlayerData) (has bool, err error) {
	result := utildto.First(DbCommon, data, data.GetTableName(gameId))
	err = result.Error
	if err == nil {
		has = true
	} else {
		has = false
		if strings.Contains(err.Error(), "record not found") {
			err = nil
		} else {
			lxalilog.Errors(err, gameId, uid)
			return
		}
	}
	// 档案不存在 新建
	if !has {
		data.Init(uid)
		CreatePlayerData(gameId, data)
	}
	return
}

func CreatePlayerData(gameId string, data IPlayerData) {
	utildto.Insert(DbCommon, data, data.GetTableName(gameId))
}

func SavePlayerData(gameId string, data IPlayerData) {
	utildto.Save(DbCommon, data, data.GetTableName(gameId))
}