From cbad205eaf4d4dc0e92699d172261be220f16e29 Mon Sep 17 00:00:00 2001 From: whale22 Date: Tue, 11 Mar 2025 17:47:10 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=ED=8E=AB=20=EA=B2=BD=ED=97=98?= =?UTF-8?q?=EC=B9=98=20=EA=B8=B0=EC=A4=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cmf/commitField/domain/pet/entity/PetGrow.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java b/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java index 63d0cc1..8b2b15c 100644 --- a/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java +++ b/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java @@ -4,10 +4,10 @@ @Getter public enum PetGrow { - //FIXME: 테스트를 위한 수정, 차후 15/30으로 변경 필요 + //FIXME: 테스트를 위한 수정, 차후 150/300으로 변경 필요 EGG(0), - HATCH(20), - GROWN(40); + HATCH(10), + GROWN(15); private final int requiredExp; From 94da7fff5d49770b6229e272d954c45886600a10 Mon Sep 17 00:00:00 2001 From: whale22 Date: Wed, 12 Mar 2025 09:58:28 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20=EC=8B=9C=EC=97=B0=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=ED=8E=AB=20=EA=B2=BD=ED=97=98=EC=B9=98=20?= =?UTF-8?q?=EA=B8=B0=EC=A4=80=EC=B9=98=20=EC=9E=84=EC=8B=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commitField/domain/pet/controller/PetController.java | 6 ++---- .../java/cmf/commitField/domain/pet/entity/PetGrow.java | 4 ++-- .../java/cmf/commitField/domain/pet/service/PetService.java | 5 +---- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/main/java/cmf/commitField/domain/pet/controller/PetController.java b/src/main/java/cmf/commitField/domain/pet/controller/PetController.java index 3181b84..86a6c58 100644 --- a/src/main/java/cmf/commitField/domain/pet/controller/PetController.java +++ b/src/main/java/cmf/commitField/domain/pet/controller/PetController.java @@ -12,7 +12,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -48,11 +47,10 @@ public ResponseEntity> getUserAllPets(@AuthenticationPrincipal Cus @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public Pet createPet( @RequestParam String email, - @RequestParam String name, - @RequestPart(value = "imageFile") MultipartFile imageFile + @RequestParam String name ) throws Exception { User user = userService.getUserByEmail(email).get(); - return petService.createPet(name, imageFile, user); + return petService.createPet(name, user); } // 모든 펫 조회 diff --git a/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java b/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java index 8b2b15c..c8701be 100644 --- a/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java +++ b/src/main/java/cmf/commitField/domain/pet/entity/PetGrow.java @@ -6,8 +6,8 @@ public enum PetGrow { //FIXME: 테스트를 위한 수정, 차후 150/300으로 변경 필요 EGG(0), - HATCH(10), - GROWN(15); + HATCH(5), + GROWN(10); private final int requiredExp; diff --git a/src/main/java/cmf/commitField/domain/pet/service/PetService.java b/src/main/java/cmf/commitField/domain/pet/service/PetService.java index ffbcf30..c968949 100644 --- a/src/main/java/cmf/commitField/domain/pet/service/PetService.java +++ b/src/main/java/cmf/commitField/domain/pet/service/PetService.java @@ -11,7 +11,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.ArrayList; @@ -27,9 +26,7 @@ public class PetService { private final S3Service s3Service; // 새로운 펫 생성 - public Pet createPet(String name, MultipartFile imageFile, User user) throws IOException { - - + public Pet createPet(String name, User user) throws IOException { Random random = new Random(); Pet pet = new Pet(name, user); return petRepository.save(pet); From da45f566902104662d2d6d5ac3ab966563cac28f Mon Sep 17 00:00:00 2001 From: whale22 Date: Wed, 12 Mar 2025 11:05:13 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=ED=8E=AB=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/pet/controller/PetController.java | 17 +++++++++-------- .../domain/pet/repository/PetRepository.java | 2 ++ .../domain/pet/service/PetService.java | 11 ++++++++--- .../domain/user/service/UserService.java | 9 +++++++++ 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/src/main/java/cmf/commitField/domain/pet/controller/PetController.java b/src/main/java/cmf/commitField/domain/pet/controller/PetController.java index 86a6c58..dcf649a 100644 --- a/src/main/java/cmf/commitField/domain/pet/controller/PetController.java +++ b/src/main/java/cmf/commitField/domain/pet/controller/PetController.java @@ -8,7 +8,6 @@ import cmf.commitField.domain.user.entity.User; import cmf.commitField.domain.user.service.CustomOAuth2UserService; import lombok.RequiredArgsConstructor; -import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; @@ -44,13 +43,15 @@ public ResponseEntity> getUserAllPets(@AuthenticationPrincipal Cus // ************************************* // 새로운 펫 추가 - @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public Pet createPet( - @RequestParam String email, - @RequestParam String name - ) throws Exception { - User user = userService.getUserByEmail(email).get(); - return petService.createPet(name, user); + @PostMapping("/new") + public ResponseEntity createPet(@AuthenticationPrincipal CustomOAuth2User oAuth2User) throws Exception { + String username = oAuth2User.getName(); + Pet pet = petService.createPet("알알", username); + if(pet == null){ + //사용자가 현재 펫이 GROWN 상태가 아닌데도 다른 경로를 통해 요청한 경우 + ResponseEntity.badRequest(); + } + return ResponseEntity.ok(pet); } // 모든 펫 조회 diff --git a/src/main/java/cmf/commitField/domain/pet/repository/PetRepository.java b/src/main/java/cmf/commitField/domain/pet/repository/PetRepository.java index 5f54bbd..85b71bf 100644 --- a/src/main/java/cmf/commitField/domain/pet/repository/PetRepository.java +++ b/src/main/java/cmf/commitField/domain/pet/repository/PetRepository.java @@ -17,4 +17,6 @@ public interface PetRepository extends JpaRepository { @Query("SELECT p FROM Pet p WHERE p.user.email = :email ORDER BY p.id DESC") List findLatestPetByUserEmail(@Param("email") String email); + @Query("SELECT p FROM Pet p WHERE p.user.username = :username ORDER BY p.id DESC") + List findLatestPetByUserUsername(@Param("username") String username); } diff --git a/src/main/java/cmf/commitField/domain/pet/service/PetService.java b/src/main/java/cmf/commitField/domain/pet/service/PetService.java index c968949..2589bf0 100644 --- a/src/main/java/cmf/commitField/domain/pet/service/PetService.java +++ b/src/main/java/cmf/commitField/domain/pet/service/PetService.java @@ -26,10 +26,15 @@ public class PetService { private final S3Service s3Service; // 새로운 펫 생성 - public Pet createPet(String name, User user) throws IOException { + public Pet createPet(String petname, String username) throws IOException { Random random = new Random(); - Pet pet = new Pet(name, user); - return petRepository.save(pet); + User user = userRepository.findByUsername(username).get(); + Pet pet = petRepository.findLatestPetByUserUsername(username).get(0); + if(pet.getGrow() != PetGrow.GROWN){ + return null; + } + Pet newPet = new Pet("알알", user); + return petRepository.save(newPet); } // 모든 펫 조회 diff --git a/src/main/java/cmf/commitField/domain/user/service/UserService.java b/src/main/java/cmf/commitField/domain/user/service/UserService.java index 33c79db..74c81aa 100644 --- a/src/main/java/cmf/commitField/domain/user/service/UserService.java +++ b/src/main/java/cmf/commitField/domain/user/service/UserService.java @@ -3,6 +3,7 @@ import cmf.commitField.domain.commit.scheduler.CommitUpdateService; import cmf.commitField.domain.commit.totalCommit.service.TotalCommitService; import cmf.commitField.domain.pet.entity.Pet; +import cmf.commitField.domain.pet.entity.PetGrow; import cmf.commitField.domain.pet.repository.PetRepository; import cmf.commitField.domain.pet.service.PetService; import cmf.commitField.domain.user.dto.UserChatInfoDto; @@ -73,6 +74,14 @@ public UserInfoDto showUserInfo(String username) { User user = userRepository.findByUsername(username).get(); Pet pet = petRepository.findLatestPetByUserEmail(user.getEmail()).get(0); + if(user.getTier() != Tier.getLevelByExp(user.getSeasonCommitCount())){ + user.setTier(Tier.getLevelByExp(user.getSeasonCommitCount())); + userRepository.save(user); + } + if(pet.getGrow() != PetGrow.getLevelByExp(pet.getExp())){ + pet.setGrow(PetGrow.getLevelByExp(pet.getExp())); + petRepository.save(pet); + } // 유저 정보 조회 후 active 상태가 아니면 Redis에 추가, 커밋 추적 시작 String key = "commit_active:" + user.getUsername(); From 7c5a4a2f8d2994d4b0a39c33ab8ede31104b9662 Mon Sep 17 00:00:00 2001 From: whale22 Date: Wed, 12 Mar 2025 11:29:37 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=ED=8E=AB=20=EA=B2=BD=ED=97=98?= =?UTF-8?q?=EC=B9=98=20=EB=85=BC=EB=A6=AC=20=EC=98=A4=EB=A5=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cmf/commitField/domain/pet/service/PetService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cmf/commitField/domain/pet/service/PetService.java b/src/main/java/cmf/commitField/domain/pet/service/PetService.java index 2589bf0..de1cc6f 100644 --- a/src/main/java/cmf/commitField/domain/pet/service/PetService.java +++ b/src/main/java/cmf/commitField/domain/pet/service/PetService.java @@ -57,7 +57,7 @@ public void deletePet(Long petId) { @Transactional public UserPetDto getExpPet(String username, long commitCount) { User user = userRepository.findByUsername(username).get(); - Pet pet = user.getPets().get(0); + Pet pet = petRepository.findLatestPetByUserUsername(username).get(0); pet.addExp(commitCount); // 경험치 증가 petRepository.save(pet); From 7aec36bbfe482fe182d1812f3d469f5cb2c9658e Mon Sep 17 00:00:00 2001 From: whale22 Date: Wed, 12 Mar 2025 12:23:28 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20=EA=B2=BD=EB=A1=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmf/commitField/domain/user/controller/UserController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cmf/commitField/domain/user/controller/UserController.java b/src/main/java/cmf/commitField/domain/user/controller/UserController.java index 2b6ee46..29c5b7c 100644 --- a/src/main/java/cmf/commitField/domain/user/controller/UserController.java +++ b/src/main/java/cmf/commitField/domain/user/controller/UserController.java @@ -33,7 +33,7 @@ public ResponseEntity getUserChatInfo(@AuthenticationPrincipal return ResponseEntity.ok(userChatInfoDto); } - @GetMapping("/info") + @GetMapping("info") public ResponseEntity getUserInfo(@AuthenticationPrincipal CustomOAuth2User oAuth2User){ String username = oAuth2User.getName();