package cardholder import ( "apigame/configs-db/confcardholder" "apigame/service-common/svmysql" "apigame/util/util-lx/lxalilog" "apigame/util/util-lx/lxtime" ) // SavePlayer 存储数据 func SavePlayer(gameId string, player *Player) { player.UpdateTime = lxtime.NowUninx() player.Encode() err := svmysql.Save(player, gameId) if err != nil { lxalilog.Errors(err, "cardholder.SavePlayer error", gameId, player.Uid, player.ActivityId) } } func _LoadPlayer(gameId string, playerUid int64) (player *Player) { player = NewPlayer(playerUid) has, err := svmysql.First(player, gameId) if has { player.Decode() } else { player.Init(playerUid) err = svmysql.Create(player, gameId) if err != nil { lxalilog.Errors(err, "cardholder._LoadPlayer Create error", gameId, player.Uid, player.ActivityId) return } } return } // LoadPlayer 获取数据 外部接口 func LoadPlayer(gameId string, playerUid int64, config *confcardholder.ActivityConfig) (player *Player) { configId := config.Id player = _LoadPlayer(gameId, playerUid) // 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 if configId != 0 && configId != player.ActivityId { // 剩余的星星数 starCount := player.Details.StarCount player.ActivityId = configId player.Details = NewPlayerDetails() // 使用剩余的星星数来自动兑换卡包 player.Details.LastStarCount = starCount NextActivityAutoExchange(gameId, player, config) SavePlayer(gameId, player) } return }