/// <summary> /// 添加SR基础数据 /// </summary> /// <returns></returns> public async Task <MResponse> AsyncSRData() { MRankInfo srRankInfo = (await _steamBLL.GetRankScore(new[] { CurrentUser.RankID })).FirstOrDefault(); if (srRankInfo == null) { bool hasSR = (await _steamBLL.GetOwnedGames(CurrentUser.PlatformID))?.OwnedGames?.Any(x => x.AppId == 207140) ?? false; if (!hasSR) { return(MResponse.Fail("此账号尚未拥有SpeedRunners游戏")); } srRankInfo.RankType = 2; } else { srRankInfo.RankType = 1; srRankInfo.OldRankScore = srRankInfo.RankScore; } BeginDb(DAL => { DAL.UpdateRankInfo(srRankInfo, true); if (DAL.ExistRankLog(CurrentUser.PlatformID)) { return; } // 添加RankLog MRankLog rankLog = new MRankLog { PlatformID = CurrentUser.PlatformID, RankScore = srRankInfo.RankScore.Value, }; DAL.AddRankLog(rankLog); }); return(MResponse.Success()); }
/// <summary> /// 初始化用户数据 /// </summary> /// <returns></returns> public async Task InitUserData() { bool exist = true; BeginDb(DAL => { exist = DAL.ExistRankInfo(CurrentUser.PlatformID); }); // 存在初始数据 if (exist) { return; } // 获取用户信息 MRankInfo srRankInfo = (await _steamBLL.GetRankScore(new[] { CurrentUser.RankID })).FirstOrDefault(); PlayerSummaryModel playerSummary = await _steamBLL.GetPlayerSummary(CurrentUser.PlatformID); MRankInfo rankInfo = new MRankInfo { PlatformID = playerSummary.SteamId.ToString(), RankID = CurrentUser.RankID, PersonaName = playerSummary.Nickname, AvatarS = playerSummary.AvatarUrl, AvatarM = playerSummary.AvatarMediumUrl, AvatarL = playerSummary.AvatarFullUrl, State = (int)playerSummary.UserStatus }; RecentlyPlayedGamesResultModel playedGames = await _steamBLL.GetRecentlyPlayedGames(CurrentUser.PlatformID); BeginDb(DAL => { // 没有SR if (srRankInfo == null) { DAL.AddRankInfo(rankInfo); return; } int weekPlayTime = (int)(playedGames.RecentlyPlayedGames.FirstOrDefault(x => x.AppId == 207140)?.Playtime2Weeks ?? 0); // 添加RankInfo rankInfo.RankType = 1; rankInfo.RankCount = srRankInfo.RankCount; rankInfo.RankScore = srRankInfo.RankScore; rankInfo.OldRankScore = srRankInfo.RankScore; rankInfo.RankLevel = srRankInfo.RankLevel; rankInfo.WeekPlayTime = weekPlayTime; DAL.Db.BeginTrans(); DAL.AddRankInfo(rankInfo); // 添加RankLog MRankLog rankLog = new MRankLog { PlatformID = CurrentUser.PlatformID, RankScore = srRankInfo.RankScore.Value, }; DAL.AddRankLog(rankLog); DAL.Db.CommitTrans(); }); }
public void AddRankLog(MRankLog rankLog) { Db.Insert("RankLog", rankLog, new[] { nameof(rankLog.Date) }); }