From 5f5b2294a84e3b85cfbef14abc7b8f395d2ced9d Mon Sep 17 00:00:00 2001 From: Rimi Date: Sat, 10 Aug 2024 07:30:47 +0900 Subject: [PATCH] =?UTF-8?q?:bug:=20[fix]=20riot=20rank=20=EC=9E=90?= =?UTF-8?q?=EB=A3=8C=ED=98=95=20string=20->=20int?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gamegoo/domain/matching/MatchingRecord.java | 2 +- src/main/java/com/gamegoo/domain/member/Member.java | 4 ++-- .../java/com/gamegoo/dto/member/MemberResponse.java | 2 +- src/main/java/com/gamegoo/util/RiotUtil.java | 12 +++++++++++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gamegoo/domain/matching/MatchingRecord.java b/src/main/java/com/gamegoo/domain/matching/MatchingRecord.java index 4ad9fd95..2acff3d1 100644 --- a/src/main/java/com/gamegoo/domain/matching/MatchingRecord.java +++ b/src/main/java/com/gamegoo/domain/matching/MatchingRecord.java @@ -40,7 +40,7 @@ public class MatchingRecord extends BaseDateTimeEntity { private Tier tier; @Column(name = "rank", columnDefinition = "VARCHAR(10)") - private String rank; + private Integer rank; @Column(name = "winrate") private Double winRate; diff --git a/src/main/java/com/gamegoo/domain/member/Member.java b/src/main/java/com/gamegoo/domain/member/Member.java index 675d1715..3e5f3151 100644 --- a/src/main/java/com/gamegoo/domain/member/Member.java +++ b/src/main/java/com/gamegoo/domain/member/Member.java @@ -59,7 +59,7 @@ public class Member extends BaseDateTimeEntity { private Tier tier; @Column(name = "rank") - private String rank; + private Integer rank; @Column(name = "winrate") private Double winRate; @@ -126,7 +126,7 @@ public void initializeMemberChampionList() { this.memberChampionList = new ArrayList<>(); } - public void updateRiotDetails(Tier tier, String rank, Double winRate) { + public void updateRiotDetails(Tier tier, Integer rank, Double winRate) { this.tier = tier; this.rank = rank; this.winRate = winRate; diff --git a/src/main/java/com/gamegoo/dto/member/MemberResponse.java b/src/main/java/com/gamegoo/dto/member/MemberResponse.java index 63ef4615..59c6cce5 100644 --- a/src/main/java/com/gamegoo/dto/member/MemberResponse.java +++ b/src/main/java/com/gamegoo/dto/member/MemberResponse.java @@ -88,7 +88,7 @@ public static class myProfileMemberDTO { String gameName; String tag; Tier tier; - String rank; + Integer rank; String updatedAt; List gameStyleResponseDTOList; List championResponseDTOList; diff --git a/src/main/java/com/gamegoo/util/RiotUtil.java b/src/main/java/com/gamegoo/util/RiotUtil.java index a1b9aada..8daef4b9 100644 --- a/src/main/java/com/gamegoo/util/RiotUtil.java +++ b/src/main/java/com/gamegoo/util/RiotUtil.java @@ -13,6 +13,7 @@ import javax.transaction.Transactional; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -28,6 +29,14 @@ public class RiotUtil { private static final String RIOT_LEAGUE_API_URL_TEMPLATE = "https://kr.api.riotgames.com/lol/league/v4/entries/by-summoner/%s?api_key=%s"; private static final String RIOT_MATCH_API_URL_TEMPLATE = "https://asia.api.riotgames.com/lol/match/v5/matches/by-puuid/%s/ids?start=0&count=%s&api_key=%s"; private static final String RIOT_MATCH_INFO_API_URL_TEMPLATE = "https://asia.api.riotgames.com/lol/match/v5/matches/%s?api_key=%s"; + private static final Map romanToIntMap = new HashMap<>(); + + static { + romanToIntMap.put("I", 1); + romanToIntMap.put("II", 2); + romanToIntMap.put("III", 3); + romanToIntMap.put("IV", 4); + } @Autowired public RiotUtil(RestTemplate restTemplate) { @@ -162,9 +171,10 @@ public void addTierRankWinRate(Member member, String gameName, String encryptedS double winrate = (double) wins / (wins + losses); winrate = Math.round(winrate * 1000) / 10.0; Tier tier = Tier.valueOf(entry.getTier().toUpperCase()); + Integer rank = romanToIntMap.get(entry.getRank()); // DB에 저장 - member.updateRiotDetails(tier, entry.getRank(), winrate); + member.updateRiotDetails(tier, rank, winrate); break; } }