Skip to content

Commit a6890a2

Browse files
authored
feat : 레벨 업 성공시 보상 지급 로직 추가 (#90)
1 parent 4917042 commit a6890a2

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

backend/src/main/java/com/back/domain/level/service/LevelUpService.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
import com.back.domain.level.repository.LevelXPRepository;
55
import com.back.domain.member.entity.Member;
66
import com.back.domain.member.repository.MemberRepository;
7+
import com.back.domain.reward.entity.Reward;
8+
import com.back.domain.reward.entity.RewardType;
9+
import com.back.domain.reward.service.RewardService;
710
import com.back.global.exception.CustomException;
811
import com.back.global.exception.ErrorCode;
912
import lombok.RequiredArgsConstructor;
1013
import org.springframework.stereotype.Service;
1114
import org.springframework.transaction.annotation.Transactional;
1215

16+
import java.util.List;
1317
import java.util.Optional;
1418

1519
@Service
@@ -18,6 +22,8 @@ public class LevelUpService {
1822

1923
private final MemberRepository memberRepository;
2024
private final LevelXPRepository levelXPRepository;
25+
private final RewardService rewardService;
26+
2127

2228
// 레벨업 보상 서비스
2329
@Transactional
@@ -62,7 +68,16 @@ private void checkAndProcessLevelUp(Member member) {
6268
currentLevel = nextLevel;
6369
member.setLevel(currentLevel);
6470

65-
// 보상 지급 (보상 리워드 관련 메서드가 생성되면 해당 로직 추가)
71+
// 보상 지급
72+
List<Reward> rewards =
73+
rewardService.findByRewardTypeAndRequireValue(RewardType.LEVELUP, currentLevel);
74+
75+
if (!rewards.isEmpty()) { // 보상이 존재하는 경우에만 처리
76+
// 레벨업 보상은 해당 레벨에 하나만 있다고 가정하고 첫 번째 요소를 사용
77+
Reward reward = rewards.getFirst();
78+
79+
rewardService.giveReward(member.getId(), currentLevel, reward.getId());
80+
}
6681

6782
} else {
6883
break; // 레벨업 실패, 반복 종료

0 commit comments

Comments
 (0)