public async Task <IActionResult> GetRankingList([FromBody] ParamRankingList paramRankingList) { return(await ActionWrapAsync(async() => { ResultData <RpsData <RpsRankingList> > result = new ResultData <RpsData <RpsRankingList> >(); var param = HttpContext.User.GetUserBase(paramRankingList); result.Data = await _gameService.GetRankingList(param); return result; })); }
public async Task <RpsData <RpsRankingList> > GetRankingList(ParamRankingList param) { var parameters = new List <object>(); parameters.Add(new SqlParameter("@UserId", param.Id)); parameters.Add(new SqlParameter("@Gate", param.Gate)); parameters.Add(new SqlParameter("@GameType", param.GameType)); parameters.Add(new SqlParameter("@Take", param.Num)); var rankinglist = await _context.SqlQueryAsync <BaseRanking>(@"select *from ( select u.Icon, u.NickName as Name,s.Score, ROW_NUMBER() OVER(order by s.Score desc) as Number from [dbo].[Game_UserTB] u inner join [dbo].[Game_UserScore] s on u.Id=s.UserId where u.GameType=@GameType and u.Status=0 and s.Gate=@Gate ) temp where temp.Number<=@Take", parameters); var myrankinglist = await _context.SqlQueryAsync <BaseRanking>(@"select *from ( select u.Icon, u.NickName as Name,s.Score,u.Id, ROW_NUMBER() OVER(order by s.Score desc) as Number from [dbo].[Game_UserTB] u inner join [dbo].[Game_UserScore] s on u.Id=s.UserId where u.GameType=@GameType and u.Status=0 and s.Gate=@Gate ) temp where temp.Id<=@UserId", parameters); var result = new RpsRankingList() { MyRanking = myrankinglist.FirstOrDefault(), OtherList = rankinglist }; return(RpsData <RpsRankingList> .Ok(result)); }
public async Task <RpsData <RpsRankingList> > GetRankingList(ParamRankingList param) { return(await _gameRepository.GetRankingList(param)); }