GetRandomData
public BackendReturnObject GetRandomData(RandomType randomType, string uuid, int pivot, int gap, int count);
설명
해당 uuid에 존재하는 데이터들을 조건에 맞게 랜덤으로 불러옵니다.
조건은 다음과 같습니다.
- pivot : 중심이 되는 값
- gap : pivot에 일치하거나 제일 가까운 값의 순위를 기준으로 위아래 등수의 범위
- count : 불러올 개수
랜덤 조회에 등록된 점수가 10000, 1000, 100, 10, 1 순으로 되어있고 pivot이 100, gap이 1이면, 99~101점인 데이터를 랜덤 검색하는 것이 아니라, 100점이 속한 3등을 기준으로 2등(1000점)과 4등(10점) 사이에서 랜덤으로 검색합니다.
만약 조건에 만족하는 데이터가 count만큼 존재하지 않을 경우, count보다 적은 데이터를 불러올 수 있습니다.
gap은 최소 0에서 최대 10까지 입력할 수 있으며, 해당 범위를 넘어갈 경우 최소/최댓값이 재설정되어 검색됩니다
count는 최소 1에서 최대 10까지 입력할 수 있으며, 해당 범위를 넘어갈 경우 최소/최댓값이 재설정되어 검색됩니다.
pivot은 long의 최댓값(9223372036854775807, 1.0E+17 미만)까지 입력할 수 있으며, 해당 값을 넘어갈 경우 최소/최댓값이 재설정되어 검색됩니다.  
닉네임은 제공되지 않으며, 유저/길드의 inDate만 제공됩니다.
파라미터
| Value | Type | Description | min | max | 
|---|---|---|---|---|
| randomType | RandomType | 랜덤 조회 유형 | ||
| (RandomType.User는 유저, RandomType.Guild는 길드) | ||||
| uuid | string | 랜덤 조회의 uuid | ||
| pivot | int/long/float/double | 중심이 되는 값 | -long.MaxValue(음수) | long.MaxValue | 
| gap | int | pivot에 일치하거나 제일 가까운 값의 순위를 기준으로 위아래 등수의 범위 | 0 | 10 | 
| count | int | 불러올 개수 | 1 | 10 | 
Example
동기
Backend.RandomInfo.GetRandomData(RandomType.User, "7244eca0-f67c-11ec-9eb6-490af390b219", 20, 10, 5);
비동기
Backend.RandomInfo.GetRandomData(RandomType.User, 
    "7244eca0-f67c-11ec-9eb6-490af390b219", 20, 10, 5, (callback) => {
    // 이후 처리
  });
SendQueue
SendQueue.Enqueue(Backend.RandomInfo.GetRandomData, RandomType.User, 
                "7244eca0-f67c-11ec-9eb6-490af390b219", 20, 10, 5, (callback) => {
    // 이후 처리
  });
ReturnCase
Success cases
조회에 성공한 경우
statusCode : 200
message : Success
returnValue : GetReturnValuetoJSON 참조
조건에 맞는 유저/길드가 존재하지 않는 경우
statusCode : 200
message : Success
returnValue : {"rows":[]}
Error cases
입력한 uuid가 null 혹은 string.Empty일 경우
statusCode : 400
errorCode : ValidationException
message : uuid is null or empty
랜덤 조회의 유형이 다를 경우(유저 유형인데 RandomType.Guild으로 지정했을 경우)
statusCode : 400
errorCode : BadParameterException
message : bad type is not match, 잘못된 type is not match 입니다
존재하지 않는 uuid일 경우
statusCode : 404
errorCode : NotFoundException
message : randomPool not found, randomPool을(를) 찾을 수 없습니다
GetReturnValuetoJSON
랜덤유형(RandomType)이 User인 경우
{
    "rows": [
        {
            "gamerInDate": "2022-06-30T10:06:32.327Z",
            "score": "13"
        },
        {
            "gamerInDate": "2022-06-30T10:06:34.024Z",
            "score": "19"
        },
        ...  
    ]
}
랜덤유형(RandomType)이 Guild인 경우
{
    "rows": [
        {
            "guildName": "match7GG",
            "guildInDate": "2022-07-11T05:51:47.687Z",
            "score": "7"
        },
        {
            "guildName": "match12GG",
            "guildInDate": "2022-07-11T05:51:53.144Z",
            "score": "12"
        },
        ...  
    ]
}
Sample Code
public class RandomInformation {
    public string inDate; // inDate
    public int score; // 점수
    public string guildName; //(길드만 해당)길드이름
    public override string ToString() {
        string str = $"inDate: {inDate}\n" +
        $"score: {score}";
        if(!string.IsNullOrEmpty(guildName)) {
            str += $"\nguildName : {guildName}";
        }
        return str;
    }
}
public void GetRandomData() {
    RandomType type = RandomType.Guild;
    var bro = Backend.RandomInfo.GetRandomData(type, "96ab48f0-fce9-11ec-a8e9-3fc17cd7d4bd", 10, 10, 10);
    if(bro.IsSuccess()) {
        List<RandomInformation> list = new List<RandomInformation>();
        LitJson.JsonData json = bro.Rows();
        for(int i = 0; i < json.Count; i++) {
            RandomInformation randomInformation = new RandomInformation();
            if(type == RandomType.User) {
                randomInformation.inDate = json[i]["gamerInDate"].ToString();
            }
            else {
                randomInformation.guildName = json[i]["guildName"].ToString();
                randomInformation.inDate = json[i]["guildInDate"].ToString();
            }
            randomInformation.score = int.Parse(json[i]["score"].ToString());
            list.Add(randomInformation);
        }
        foreach(var info in list) {
            Debug.Log(info.ToString());
        }
    }
    else {
        Debug.LogError("랜덤 조회 에러 : " + bro.ToString());
    }
}