From 0ba56f8db3c13c487105be8b3ff1b897849859a8 Mon Sep 17 00:00:00 2001 From: Sion Shin Date: Mon, 11 Sep 2023 14:24:55 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[FIX]=20rank.from,=20rankredis.from=20?= =?UTF-8?q?=EB=A9=94=EC=86=8C=EB=93=9C=20=EB=B3=80=EA=B2=BD=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/match/service/MatchFindService.java | 6 +++++- .../security/service/CustomOAuth2UserService.java | 8 ++++++-- .../com/gg/server/game/GameControllerTest.java | 15 +++++++++++---- .../server/game/service/GameFindServiceTest.java | 9 ++++++++- .../gg/server/game/service/GameServiceTest.java | 10 ++++++++-- 5 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/gg/server/domain/match/service/MatchFindService.java b/src/main/java/com/gg/server/domain/match/service/MatchFindService.java index 28aed48ff..070060cd7 100644 --- a/src/main/java/com/gg/server/domain/match/service/MatchFindService.java +++ b/src/main/java/com/gg/server/domain/match/service/MatchFindService.java @@ -20,6 +20,8 @@ import com.gg.server.domain.season.service.SeasonFindService; import com.gg.server.domain.slotmanagement.SlotManagement; import com.gg.server.domain.slotmanagement.data.SlotManagementRepository; +import com.gg.server.domain.tier.data.Tier; +import com.gg.server.domain.tier.data.TierRepository; import com.gg.server.domain.user.data.User; import com.gg.server.domain.user.data.UserRepository; import com.gg.server.domain.user.dto.UserDto; @@ -44,6 +46,7 @@ public class MatchFindService { private final SeasonFindService seasonFindService; private final RankRedisRepository rankRedisRepository; private final RedisMatchTimeRepository redisMatchTimeRepository; + private final TierRepository tierRepository; @Transactional(readOnly = true) @@ -70,9 +73,10 @@ public SlotStatusResponseListDto getAllMatchStatus(UserDto userDto, Option optio SlotManagement slotManagement = slotManagementRepository.findCurrent(LocalDateTime.now()) .orElseThrow(SlotNotFoundException::new); Season season = seasonFindService.findCurrentSeason(LocalDateTime.now()); + Tier tier = tierRepository.findAll().get(0); RankRedis user; if (userDto.getRoleType().equals(RoleType.GUEST)) { - user = RankRedis.from(userDto, season.getStartPpp()); + user = RankRedis.from(userDto, season.getStartPpp(), tier.getImageUri()); } else { user = rankRedisRepository. findRankByUserId(RedisKeyManager.getHashKey(season.getId()), userDto.getId()); diff --git a/src/main/java/com/gg/server/global/security/service/CustomOAuth2UserService.java b/src/main/java/com/gg/server/global/security/service/CustomOAuth2UserService.java index fb8525a74..8c7804b5f 100644 --- a/src/main/java/com/gg/server/global/security/service/CustomOAuth2UserService.java +++ b/src/main/java/com/gg/server/global/security/service/CustomOAuth2UserService.java @@ -6,6 +6,8 @@ import com.gg.server.domain.rank.redis.RankRedisRepository; import com.gg.server.domain.rank.redis.RedisKeyManager; import com.gg.server.domain.season.data.SeasonRepository; +import com.gg.server.domain.tier.data.Tier; +import com.gg.server.domain.tier.data.TierRepository; import com.gg.server.domain.user.data.User; import com.gg.server.domain.user.data.UserRepository; import com.gg.server.domain.user.dto.UserDto; @@ -38,6 +40,7 @@ public class CustomOAuth2UserService extends DefaultOAuth2UserService { private final RankRepository rankRepository; private final SeasonRepository seasonRepository; private final RankRedisRepository rankRedisRepository; + private final TierRepository tierRepository; @Value("${info.image.defaultUrl}") private String defaultImageUrl; @@ -79,11 +82,12 @@ private OAuth2User process(OAuth2UserRequest userRequest, OAuth2User user) { } private void createUserRank(User savedUser) { + Tier tier = tierRepository.findAll().get(0); seasonRepository.findCurrentAndNewSeason(LocalDateTime.now()).forEach( season -> { - Rank userRank = Rank.from(savedUser, season, season.getStartPpp()); + Rank userRank = Rank.from(savedUser, season, season.getStartPpp(), tier); rankRepository.save(userRank); - RankRedis rankRedis = RankRedis.from(UserDto.from(savedUser), season.getStartPpp()); + RankRedis rankRedis = RankRedis.from(UserDto.from(savedUser), season.getStartPpp(), tier.getImageUri()); String hashKey = RedisKeyManager.getHashKey(season.getId()); rankRedisRepository.addRankData(hashKey, savedUser.getId(), rankRedis); } diff --git a/src/test/java/com/gg/server/game/GameControllerTest.java b/src/test/java/com/gg/server/game/GameControllerTest.java index 7fd451ce8..e2f71cfb3 100644 --- a/src/test/java/com/gg/server/game/GameControllerTest.java +++ b/src/test/java/com/gg/server/game/GameControllerTest.java @@ -24,6 +24,8 @@ import com.gg.server.domain.team.data.TeamRepository; import com.gg.server.domain.team.data.TeamUser; import com.gg.server.domain.team.data.TeamUserRepository; +import com.gg.server.domain.tier.data.Tier; +import com.gg.server.domain.tier.data.TierRepository; import com.gg.server.domain.user.data.User; import com.gg.server.domain.user.dto.UserDto; import com.gg.server.domain.user.type.RacketType; @@ -69,6 +71,10 @@ public class GameControllerTest { TeamUserRepository teamUserRepository; @Autowired RankRedisRepository rankRedisRepository; + + @Autowired + TierRepository tierRepository; + @Autowired PChangeRepository pChangeRepository; @Autowired @@ -101,12 +107,13 @@ void init() { user1 = testDataUtils.createNewUser("test1", "test1@email", RacketType.NONE, SnsType.EMAIL, RoleType.USER); accessToken = tokenProvider.createToken(user1.getId()); user2 = testDataUtils.createNewUser("test2", "test2@email", RacketType.NONE, SnsType.EMAIL, RoleType.USER); - rankRepository.save(Rank.from(user1, season, season.getStartPpp())); - rankRepository.save(Rank.from(user2, season, season.getStartPpp())); - RankRedis userRank = RankRedis.from(UserDto.from(user1), season.getStartPpp()); + Tier tier = tierRepository.findAll().get(0); + rankRepository.save(Rank.from(user1, season, season.getStartPpp(), tier)); + rankRepository.save(Rank.from(user2, season, season.getStartPpp(), tier)); + RankRedis userRank = RankRedis.from(UserDto.from(user1), season.getStartPpp(), tier.getImageUri()); String redisHashKey = RedisKeyManager.getHashKey(season.getId()); rankRedisRepository.addRankData(redisHashKey, user1.getId(), userRank); - userRank = RankRedis.from(UserDto.from(user2), season.getStartPpp()); + userRank = RankRedis.from(UserDto.from(user2), season.getStartPpp(), tier.getImageUri()); rankRedisRepository.addRankData(redisHashKey, user2.getId(), userRank); for (int i = 0; i < 10; i++) { Game game = gameRepository.save(new Game(season, StatusType.WAIT, Mode.RANK, LocalDateTime.now().minusMinutes(15), LocalDateTime.now())); diff --git a/src/test/java/com/gg/server/game/service/GameFindServiceTest.java b/src/test/java/com/gg/server/game/service/GameFindServiceTest.java index 853417967..b2875f960 100644 --- a/src/test/java/com/gg/server/game/service/GameFindServiceTest.java +++ b/src/test/java/com/gg/server/game/service/GameFindServiceTest.java @@ -12,6 +12,8 @@ import com.gg.server.domain.rank.redis.RankRedisRepository; import com.gg.server.domain.rank.redis.RedisKeyManager; import com.gg.server.domain.season.data.Season; +import com.gg.server.domain.tier.data.Tier; +import com.gg.server.domain.tier.data.TierRepository; import com.gg.server.domain.user.data.User; import com.gg.server.domain.user.dto.UserDto; import com.gg.server.global.security.jwt.utils.AuthTokenProvider; @@ -47,6 +49,10 @@ public class GameFindServiceTest { AuthTokenProvider tokenProvider; @Autowired RankRedisRepository rankRedisRepository; + + @Autowired + TierRepository tierRepository; + @Autowired GameRepository gameRepository; @@ -54,6 +60,7 @@ public class GameFindServiceTest { void init() { Season season = testDataUtils.createSeason(); User newUser = testDataUtils.createNewUser(); + Tier tier = tierRepository.findAll().get(0); String accessToken = tokenProvider.createToken(newUser.getId()); String statusMsg = "status message test1"; @@ -70,7 +77,7 @@ void init() { testDataUtils.createMockMatch(newUser, season, startTime2, endTime2); testDataUtils.createUserRank(newUser, statusMsg, season); - RankRedis userRank = RankRedis.from(UserDto.from(newUser), season.getStartPpp()); + RankRedis userRank = RankRedis.from(UserDto.from(newUser), season.getStartPpp(), tier.getImageUri()); String redisHashKey = RedisKeyManager.getHashKey(season.getId()); rankRedisRepository.addRankData(redisHashKey, newUser.getId(), userRank); } diff --git a/src/test/java/com/gg/server/game/service/GameServiceTest.java b/src/test/java/com/gg/server/game/service/GameServiceTest.java index 7de4b0945..5150b2c9e 100644 --- a/src/test/java/com/gg/server/game/service/GameServiceTest.java +++ b/src/test/java/com/gg/server/game/service/GameServiceTest.java @@ -17,6 +17,8 @@ import com.gg.server.domain.team.data.TeamRepository; import com.gg.server.domain.team.data.TeamUser; import com.gg.server.domain.team.data.TeamUserRepository; +import com.gg.server.domain.tier.data.Tier; +import com.gg.server.domain.tier.data.TierRepository; import com.gg.server.domain.user.data.User; import com.gg.server.domain.user.dto.UserDto; import com.gg.server.global.security.jwt.utils.AuthTokenProvider; @@ -52,6 +54,9 @@ public class GameServiceTest { @Autowired RankRepository rankRepository; + @Autowired + TierRepository tierRepository; + @Autowired GameService gameService; @@ -67,6 +72,7 @@ public class GameServiceTest { @BeforeEach void init() { Season season = testDataUtils.createSeason(); + Tier tier = tierRepository.findAll().get(0); user1 = testDataUtils.createNewUser(); user2 = testDataUtils.createNewUser(); LocalDateTime now = LocalDateTime.now(); @@ -79,12 +85,12 @@ void init() { String statusMsg = "status message test1"; testDataUtils.createUserRank(user1, statusMsg, season); - RankRedis userRank = RankRedis.from(UserDto.from(user1), season.getStartPpp()); + RankRedis userRank = RankRedis.from(UserDto.from(user1), season.getStartPpp(), tier.getImageUri()); String redisHashKey = RedisKeyManager.getHashKey(season.getId()); rankRedisRepository.addRankData(redisHashKey, user1.getId(), userRank); statusMsg = "status message test2"; testDataUtils.createUserRank(user2, statusMsg, season); - RankRedis userRank2 = RankRedis.from(UserDto.from(user2), season.getStartPpp()); + RankRedis userRank2 = RankRedis.from(UserDto.from(user2), season.getStartPpp(), tier.getImageUri()); rankRedisRepository.addRankData(redisHashKey, user2.getId(), userRank2); } @AfterEach From 13053ed75e0d46e7e09d7cc11b65abec2fd798ab Mon Sep 17 00:00:00 2001 From: Sion Shin Date: Mon, 11 Sep 2023 14:43:01 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[FIX]=20ExpRankDto=EC=97=90=20textColor?= =?UTF-8?q?=EA=B0=92=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/gg/server/domain/rank/dto/ExpRankDto.java | 4 +++- .../java/com/gg/server/domain/rank/service/RankService.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gg/server/domain/rank/dto/ExpRankDto.java b/src/main/java/com/gg/server/domain/rank/dto/ExpRankDto.java index 81287fd69..98574dd2e 100644 --- a/src/main/java/com/gg/server/domain/rank/dto/ExpRankDto.java +++ b/src/main/java/com/gg/server/domain/rank/dto/ExpRankDto.java @@ -15,8 +15,9 @@ public class ExpRankDto { private Integer level; private Integer exp; private String userImageUri; + private String textColor; - public static ExpRankDto from (User user, Integer rank, String statusMessage){ + public static ExpRankDto from (User user, Integer rank, String statusMessage, String textColor){ ExpRankDto dto = ExpRankDto.builder() .intraId(user.getIntraId()) .rank(user.getTotalExp() == 0 ? -1 : rank) @@ -24,6 +25,7 @@ public static ExpRankDto from (User user, Integer rank, String statusMessage){ .level(ExpLevelCalculator.getLevel(user.getTotalExp())) .exp(user.getTotalExp()) .userImageUri(user.getImageUri()) + .textColor(textColor) .build(); return dto; } diff --git a/src/main/java/com/gg/server/domain/rank/service/RankService.java b/src/main/java/com/gg/server/domain/rank/service/RankService.java index acc573ace..779ea5be3 100644 --- a/src/main/java/com/gg/server/domain/rank/service/RankService.java +++ b/src/main/java/com/gg/server/domain/rank/service/RankService.java @@ -57,7 +57,7 @@ public ExpRankPageResponseDto getExpRankPage(PageRequest pageRequest, UserDto cu for(int i = 0; i < ranks.size(); i++) { RankRedis rank = ranks.get(i); User user = users.getContent().get(i); - expRankDtos.add(ExpRankDto.from(user, startRank + i, rank.getStatusMessage())); + expRankDtos.add(ExpRankDto.from(user, startRank + i, rank.getStatusMessage(), user.getTextColor())); } return new ExpRankPageResponseDto(myRank.intValue(), pageRequest.getPageNumber() + 1, users.getTotalPages(), expRankDtos);