Skip to content

Commit 02c18e8

Browse files
authored
Merge pull request #94 from CommitField/feat/#65
feat: ํŽซ ๊ฒฝํ—˜์น˜ ๊ด€๋ จ ๋กœ์ง ์ถ”๊ฐ€
2 parents 451ad8c + f71e4a1 commit 02c18e8

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed

โ€Žsrc/main/java/cmf/commitField/domain/pet/controller/PetController.javaโ€Ž

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,9 @@ public Pet getPetById(@PathVariable Long petId) {
4646
public void deletePet(@PathVariable Long petId) {
4747
petService.deletePet(petId);
4848
}
49+
50+
public void getExpPet(User user, int commitCount){
51+
petService.getExpPet(user, commitCount);
52+
53+
}
4954
}

โ€Žsrc/main/java/cmf/commitField/domain/pet/entity/Pet.javaโ€Ž

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,10 @@ public Pet(String name, User user){
5151
public enum Grow {
5252
EGG, HATCH, GROWN
5353
}
54+
55+
public int addExp(int commit){
56+
exp+=commit;
57+
58+
return exp;
59+
}
5460
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package cmf.commitField.domain.pet.entity;
2+
3+
import lombok.Getter;
4+
5+
@Getter
6+
public enum PetGrowthLevel {
7+
LEVEL_1(150),
8+
LEVEL_2(300);
9+
10+
private final int requiredExp;
11+
12+
PetGrowthLevel(int requiredExp) {
13+
this.requiredExp = requiredExp;
14+
}
15+
16+
public int getRequiredExp() {
17+
return requiredExp;
18+
}
19+
20+
// ํ˜„์žฌ ๊ฒฝํ—˜์น˜์— ๋งž๋Š” ๋ ˆ๋ฒจ ์ฐพ๊ธฐ
21+
public static PetGrowthLevel getLevelByExp(int exp) {
22+
PetGrowthLevel currentLevel = LEVEL_1;
23+
for (PetGrowthLevel level : values()) {
24+
if (exp >= level.getRequiredExp()) {
25+
currentLevel = level;
26+
}
27+
}
28+
return currentLevel;
29+
}
30+
}

โ€Žsrc/main/java/cmf/commitField/domain/pet/service/PetService.javaโ€Ž

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cmf.commitField.domain.pet.service;
22

33
import cmf.commitField.domain.pet.entity.Pet;
4+
import cmf.commitField.domain.pet.entity.PetGrowthLevel;
45
import cmf.commitField.domain.pet.repository.PetRepository;
56
import cmf.commitField.domain.user.entity.User;
67
import cmf.commitField.global.aws.s3.S3Service;
@@ -49,4 +50,28 @@ public void deletePet(Long petId) {
4950
petRepository.deleteById(petId);
5051
}
5152

53+
// ํŽซ ์„ฑ์žฅ
54+
public Pet getExpPet(User user, int commitCount) {
55+
Pet pet = user.getPets().get(0);
56+
pet.addExp(commitCount); // ๊ฒฝํ—˜์น˜ ์ฆ๊ฐ€
57+
58+
// ๊ฒฝํ—˜์น˜ ์ฆ๊ฐ€ ํ›„, ๋งŒ์•ฝ ๋ ˆ๋ฒจ์—…ํ•œ๋‹ค๋ฉด ๋ ˆ๋ฒจ์—… ์‹œํ‚จ๋‹ค.
59+
if( (pet.getGrow()== Pet.Grow.EGG && pet.getExp()>= PetGrowthLevel.LEVEL_1.getRequiredExp()) ||
60+
(pet.getGrow()== Pet.Grow.HATCH && pet.getExp()>=PetGrowthLevel.LEVEL_2.getRequiredExp()))
61+
levelUp(pet);
62+
63+
return petRepository.save(pet);
64+
}
65+
66+
// ํŽซ ๋ ˆ๋ฒจ ์—…
67+
public void levelUp(Pet pet){
68+
switch (pet.getGrow()){
69+
case EGG :
70+
pet.setGrow(Pet.Grow.HATCH);
71+
break;
72+
case HATCH :
73+
pet.setGrow(Pet.Grow.GROWN);
74+
break;
75+
}
76+
}
5277
}

0 commit comments

Comments
ย (0)