본문으로 건너뛰기
버전: 5.15.2

GetPastRankList

public BackendReturnObject GetPastRankList(string rankUuid, int limit = 10, int offset = 0)

그룹 구분된 리더보드 사용 불가

URank 랭킹 함수는 그룹이 구분된 리더보드에서 NULL그룹만 조회할 수 있습니다.
그룹에 따른 리더보드를 확인하고자 할 경우에는 Leaderboard함수를 이용해주세요.

파라미터

ValueTypeDescriptionDefault
rankUuidstring조회할 랭킹의 uuid-
limitint불러올 랭킹 유저의 수( 1 ~ 100)10
offsetint조회할 랭킹의 uuid(0이상)0

설명

랭킹 보상이 측정된 랭킹의 갱신되기 전 마지막 랭킹 순위를 불러옵니다.

  • 보상이 존재하는 랭킹만 가능합니다.
  • 랭킹 보상을 받은 유저들의 과거 랭킹만 표시됩니다.
    • 랭킹 보상이 10등까지에게만 주어질 경우, 11등부터의 과거 랭킹은 불러올 수 없습니다.
    • 순위권 밖이지만 전체 보상의 범위에 포함된 유저도 과거 랭킹에는 표시되지 않습니다.
  • 특정 유저의 과거 랭킹, 내 과거 랭킹만 특정하여 불러올 수 없습니다.
  • 과거 랭킹 중 제일 최신인 과거 랭킹 하나를 대상으로 불러옵니다.
    • 일간 랭킹일 경우, 1일 전 과거 랭킹 데이터를 불러오게 되며 2일 전 랭킹은 불러오지 못합니다.
  • limit을 0이하로 입력할 경우 1로 적용됩니다. 100이상일 경우에는 100으로 적용됩니다.
  • offset을 0이하로 입력할 경우 0으로 적용됩니다.
  • 닉네임이 존재하지 않는 유저의 경우, ""으로 출력됩니다.
탈퇴 유저의 경우

과거 랭킹 리스트중 탈퇴한 유저가 있을 경우에는 해당 유저의 nickname과 inDate 컬럼은 존재하지 않습니다.
jsonData.ContainsKey("nickname")으로 컬럼을 확인한 뒤에 데이터를 가공해주세요.

탈퇴된 유저

{"score":"7835","rank":1}

일반 유저

{"score":"7833","rank":3,"nickname":"user1","inDate":"2024-03-06T05:59:53.523Z"}

Example

동기


// 랭킹 1위 부터 10위까지
Backend.URank.User.GetPastRankList("a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0);

// 랭킹 11위(offset + 1) 부터 111위까지((offset + 1 + limit)
Backend.URank.User.GetPastRankList("a61c6980-db5f-11ee-95a9-73cbb1225013", 100, 10);

비동기

Backend.URank.User.GetPastRankList("a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0, callback => {

});

SendQueue

SendQueue(Backend.URank.User.GetPastRankList, "a61c6980-db5f-11ee-95a9-73cbb1225013", 10, 0, callback => {

});

ReturnCase

Success cases

조회에 성공한 경우
statusCode : 200
message : Success
returnValue : GetReturnValuetoJSON 참조

Error cases

과거 랭킹의 보상 집계가 되지 않은 경우
statusCode : 200
message : Success
returnValue : {"rows":[]}

uuid가 null 혹은 string.Empty인 경우
statusCode : 400
errorCode : ValidationException
message : rankUuid is null or empty

존재하지 않는 uuid로 조회를 시도한 경우
statusCode : 404
errorCode : NotFoundException
message : rank not found, rank을(를) 찾을 수 없습니다

누적 랭킹의 과거 랭킹을 조회 시도한 경우
statusCode : 428
errorCode : Precondition Required
message : Precondition Required rank initial type

GetReturnValuetoJSON

{
"rows": [
{
"score": "7835", // 탈퇴된 유저일 경우 nickname과 inDate가 출력되지 않습니다.
"rank": 1
}
{
"score": "5834",
"rank": 2,
"nickname": "user2",// 닉네임이 존재하지 않는 유저일 경우, ""로 출력됩니다
"inDate": "2024-03-06T05:59:53.523Z"
},
{
"score": "5121",
"rank": 3,
"nickname": "user3",
"inDate": "2024-03-06T05:59:51.568Z"
}
]
}

Sample Code

public void GetRankRewardList()
{
string rankingUUID = "a61c6980-db5f-11ee-95a9-73cbb1225013";

var bro = Backend.URank.User.GetPastRankList(rankingUUID, 100, 0);

if(bro.IsSuccess() == false) {
Debug.LogError("GetPastRankList : " + bro);
}

foreach(LitJson.JsonData jsonData in bro.Rows()) {

// 해당 유저가 탈퇴한 경우에는 nickname과 inDate의 컬럼이 존재하지 않습니다.
string nickname = jsonData.ContainsKey("nickname") ? jsonData["nickname"].ToString() : "Deleted User";
string inDate = jsonData.ContainsKey("inDate") ? jsonData["inDate"].ToString() : string.Empty;
string score = jsonData["score"].ToString();
string rank = jsonData["rank"].ToString();

Debug.Log($"{rank}.{nickname}({inDate}) : {score}점");
}
}