Skip to content

Commit

Permalink
Merge pull request #257 from 42organization/GGBE4-68--Season-Tier-2
Browse files Browse the repository at this point in the history
[GGBE4-68--Season-Tier-2] 신규 시즌 티어 기본값 추가 및 ExpRank에 textColor 추가
  • Loading branch information
Sion99 authored Sep 11, 2023
2 parents cc5e8c7 + 13053ed commit a3ebf57
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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)
Expand All @@ -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());
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/com/gg/server/domain/rank/dto/ExpRankDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,17 @@ 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)
.statusMessage(statusMessage)
.level(ExpLevelCalculator.getLevel(user.getTotalExp()))
.exp(user.getTotalExp())
.userImageUri(user.getImageUri())
.textColor(textColor)
.build();
return dto;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down
15 changes: 11 additions & 4 deletions src/test/java/com/gg/server/game/GameControllerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -69,6 +71,10 @@ public class GameControllerTest {
TeamUserRepository teamUserRepository;
@Autowired
RankRedisRepository rankRedisRepository;

@Autowired
TierRepository tierRepository;

@Autowired
PChangeRepository pChangeRepository;
@Autowired
Expand Down Expand Up @@ -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()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -47,13 +49,18 @@ public class GameFindServiceTest {
AuthTokenProvider tokenProvider;
@Autowired
RankRedisRepository rankRedisRepository;

@Autowired
TierRepository tierRepository;

@Autowired
GameRepository gameRepository;

@BeforeEach
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";

Expand All @@ -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);
}
Expand Down
10 changes: 8 additions & 2 deletions src/test/java/com/gg/server/game/service/GameServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -52,6 +54,9 @@ public class GameServiceTest {
@Autowired
RankRepository rankRepository;

@Autowired
TierRepository tierRepository;

@Autowired
GameService gameService;

Expand All @@ -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();
Expand All @@ -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
Expand Down

0 comments on commit a3ebf57

Please sign in to comment.