public ErrorCode OnCs2DbQueryRanking(NetSessionBase session, Google.Protobuf.IMessage message) { Protos.CS2DB_QueryRanking request = (Protos.CS2DB_QueryRanking)message; int @from = request.From; int count = request.Count; Protos.DB2CS_QueryRankingRet resp = ProtoCreator.R_CS2DB_QueryRanking(request.Opts.Pid); string str = $"SELECT id,uname,nickname,avatar,gender,last_login_time,ranking,exp FROM account_user ORDER BY ranking DESC LIMIT {@from}, {count}"; ErrorCode errorCode = DB.instance.accountDB.SqlExecQuery(str, dataReader => { while (dataReader.Read()) { Protos.DB2CS_RankingInfo rankingInfo = new Protos.DB2CS_RankingInfo(); rankingInfo.Ukey = dataReader.GetUInt32("id"); rankingInfo.Name = dataReader.GetString("nickname"); rankingInfo.Avatar = dataReader.GetString("avatar"); rankingInfo.Gender = dataReader.GetByte("gender"); rankingInfo.LastLoginTime = dataReader.GetInt64("last_login_time"); rankingInfo.Rank = dataReader.GetInt32("ranking"); rankingInfo.Exp = dataReader.GetInt32("exp"); resp.RankingInfos.Add(rankingInfo); } return(ErrorCode.Success); }); session.Send(resp); return(ErrorCode.Success); }
/// <summary> /// 玩家请求查询排行榜 /// </summary> public ErrorCode OnGc2CsQueryRanking(NetSessionBase session, IMessage message) { Protos.GC2CS_QueryRanking request = (Protos.GC2CS_QueryRanking)message; ulong gcNID = request.Opts.Transid; CSUser user = CS.instance.userMgr.GetUser(gcNID); if (user != null) { Protos.CS2GC_QueryRankingRet resp = ProtoCreator.R_GC2CS_QueryRanking(request.Opts.Pid); Protos.CS2DB_QueryRanking queryRanking = ProtoCreator.Q_CS2DB_QueryRanking(); queryRanking.SortType = (Protos.CS2DB_QueryRanking.Types.SortType)request.SortType; queryRanking.From = request.From; queryRanking.Count = request.Count; CS.instance.netSessionMgr.Send(SessionType.ServerC2DB, queryRanking, RPCEntry.Pop(OnQueryRankingRet, user, resp)); } return(ErrorCode.Success); }