Skip to content

Commit c0dabe1

Browse files
committed
feat: 펫 성장 메소드 수정
1 parent 3bfdadf commit c0dabe1

File tree

3 files changed

+38
-7
lines changed

3 files changed

+38
-7
lines changed

src/main/java/cmf/commitField/domain/pet/controller/PetController.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package cmf.commitField.domain.pet.controller;
22

3+
import cmf.commitField.domain.pet.dto.UserPetDto;
34
import cmf.commitField.domain.pet.entity.Pet;
45
import cmf.commitField.domain.pet.service.PetService;
6+
import cmf.commitField.domain.user.dto.UserInfoDto;
7+
import cmf.commitField.domain.user.entity.CustomOAuth2User;
58
import cmf.commitField.domain.user.entity.User;
69
import cmf.commitField.domain.user.service.CustomOAuth2UserService;
710
import lombok.RequiredArgsConstructor;
811
import org.springframework.http.MediaType;
12+
import org.springframework.http.ResponseEntity;
13+
import org.springframework.security.core.annotation.AuthenticationPrincipal;
914
import org.springframework.web.bind.annotation.*;
1015
import org.springframework.web.multipart.MultipartFile;
1116

@@ -18,6 +23,20 @@ public class PetController {
1823
private final CustomOAuth2UserService userService;
1924
private final PetService petService;
2025

26+
// 현재 펫 경험치 상승 및 상승 시 레벨업 처리
27+
@GetMapping("/exp")
28+
public ResponseEntity<UserPetDto> getUserTier(@AuthenticationPrincipal CustomOAuth2User oAuth2User){
29+
String username = oAuth2User.getName(); // CustomOAuth2User의 getName()은 user.getUsername()을 반환
30+
31+
System.out.println("/pet/exp, Username: "+username);
32+
UserPetDto userPetDto = petService.getExpPet(username);
33+
return ResponseEntity.ok(userPetDto);
34+
}
35+
36+
// *************************************
37+
// TODO : 아래는 확장 기능, 추가 시 개선 필요
38+
// *************************************
39+
2140
// 새로운 펫 추가
2241
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
2342
public Pet createPet(

src/main/java/cmf/commitField/domain/pet/dto/UserPetDto.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package cmf.commitField.domain.pet.dto;
22

33
import cmf.commitField.domain.pet.entity.UserPet;
4+
import lombok.Builder;
45
import lombok.Getter;
56

7+
@Builder
68
@Getter
79
public class UserPetDto {
8-
private Long userId;
910
private String username;
1011
private Long petId;
1112
private String petName;
12-
private boolean isHatched;
13+
private String grow;
14+
private long exp;
1315

1416
public UserPetDto(UserPet userPet) {
15-
this.userId = userPet.getUser().getId();
1617
this.username = userPet.getUser().getUsername();
1718
this.petId = userPet.getPet().getId();
1819
this.petName = userPet.getPet().getName();

src/main/java/cmf/commitField/domain/pet/service/PetService.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package cmf.commitField.domain.pet.service;
22

3+
import cmf.commitField.domain.pet.dto.UserPetDto;
34
import cmf.commitField.domain.pet.entity.Pet;
45
import cmf.commitField.domain.pet.entity.PetGrow;
56
import cmf.commitField.domain.pet.repository.PetRepository;
67
import cmf.commitField.domain.user.entity.User;
8+
import cmf.commitField.domain.user.repository.UserRepository;
79
import cmf.commitField.global.aws.s3.S3Service;
810
import lombok.RequiredArgsConstructor;
911
import org.springframework.stereotype.Service;
@@ -17,7 +19,7 @@
1719
@Service
1820
@RequiredArgsConstructor
1921
public class PetService {
20-
22+
private final UserRepository userRepository;
2123
private final PetRepository petRepository;
2224
private final S3Service s3Service;
2325

@@ -51,16 +53,25 @@ public void deletePet(Long petId) {
5153
}
5254

5355
// 펫 성장
54-
public Pet getExpPet(User user, int commitCount) {
56+
public UserPetDto getExpPet(String username, int commitCount) {
57+
User user = userRepository.findByUsername(username).get();
5558
Pet pet = user.getPets().get(0);
5659
pet.addExp(commitCount); // 경험치 증가
5760

5861
// 경험치 증가 후, 만약 레벨업한다면 레벨업 시킨다.
5962
if( (pet.getGrow()== PetGrow.EGG && pet.getExp()>= PetGrow.EGG.getRequiredExp()) ||
60-
(pet.getGrow()== PetGrow.HATCH && pet.getExp()>= PetGrow.HATCH.getRequiredExp()))
63+
(pet.getGrow()== PetGrow.HATCH && pet.getExp()>= PetGrow.HATCH.getRequiredExp())) {
64+
System.out.println("펫 레벨 업, 현재 경험치 : "+pet.getExp());
6165
levelUp(pet);
66+
}
6267

63-
return petRepository.save(pet);
68+
return UserPetDto.builder().
69+
username(username).
70+
petId(pet.getId()).
71+
petName(pet.getName()).
72+
exp(pet.getExp()).
73+
grow(String.valueOf(pet.getGrow())).
74+
build();
6475
}
6576

6677
// 펫 레벨 업

0 commit comments

Comments
 (0)