feat: 랭킹 조회 메소드 테스트 코드 추가

This commit is contained in:
aube.lee
2025-03-01 16:29:09 +09:00
parent 2510b960b9
commit 3aca690a5c
2 changed files with 76 additions and 2 deletions

View File

@@ -183,5 +183,65 @@ namespace TON
}
/// <summary>
/// 플레이어 랭킹 리스트 불러오기기
/// </summary>
public void GetRankData(System.Action<List<ClearData>> onComplete = null)
{
// 가져올 필드 지정 (모든 필드를 가져오려면 null 사용)
string[] select = new string[] { "nickname", "wave", "score", "play_time" };
// 결과 제한 수 (100개)
int limit = 100;
// 첫 번째 정렬 기준 (wave 내림차순)
string firstKey = "wave";
// 데이터 비동기 요청
Backend.GameData.Get(RANK_TABLE, new Where(), select, limit, firstKey, TableSortOrder.DESC, bro =>
{
// 요청 성공 확인
if (bro.IsSuccess())
{
// 데이터 처리
LitJson.JsonData rankData = bro.GetReturnValuetoJSON()["rows"];
Debug.Log("가져온 데이터 수: " + rankData.Count);
// ClearData 리스트 생성 및 변환
List<ClearData> clearDataList = new List<ClearData>();
for (int i = 0; i < rankData.Count; i++)
{
LitJson.JsonData row = rankData[i];
clearDataList.Add(new ClearData
{
nickname = row["nickname"].ToString(),
wave = int.Parse(row["wave"].ToString()),
score = int.Parse(row["score"].ToString()),
playTime = float.Parse(row["play_time"].ToString()),
});
}
// 정렬 (score 내림차순, playTime 오름차순)
clearDataList.Sort((a, b) =>
{
if (a.score != b.score) return b.score.CompareTo(a.score);
return a.playTime.CompareTo(b.playTime);
});
onComplete?.Invoke(clearDataList);
}
else
{
// 오류 처리
Debug.LogError($"랭크 데이터 가져오기 실패: {bro.GetMessage()}");
Debug.LogError($"랭크 데이터 가져오기 실패: {bro.GetErrorCode()}");
Debug.LogError($"랭크 데이터 가져오기 실패: {bro.GetStatusCode()}");
}
});
}
}
}

View File

@@ -28,10 +28,10 @@ namespace TON
clearDataManager = new BackendClearDataManager();
rankDataManager = new BackendRankDataManager();
GetRankData();
GetMyRankData();
}
public void GetRankData()
public void GetMyRankData()
{
// 서버에서 내 클리어 데이터를 가져오고 가장 기록이 높은 정보를 세팅
rankDataManager.LoadMyRankData(rankData =>
@@ -86,5 +86,19 @@ namespace TON
expReward = 0;
gameScore = 0;
}
public void GetRankList()
{
rankDataManager.GetRankData(rankList =>
{
int i = 1;
rankList.ForEach((data) =>
Debug.Log($"Rank {i++}: {data.nickname}, Wave {data.wave}, Score {data.score}, PlayTime {data.playTime}"));
});
}
}
}