From 77dc0f8ecda60dd603665dc1fd303c0d6775d737 Mon Sep 17 00:00:00 2001 From: Hwangseoeun Date: Sun, 30 Nov 2025 02:05:32 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=B0=98=EB=A0=A4=EB=8F=99?= =?UTF-8?q?=EB=AC=BC=20=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/petlog/docs/PetControllerDocs.java | 2 +- .../petlog/pet/controller/PetController.java | 11 +++++++++ .../com/petlog/pet/entity/PetProfile.java | 24 +++++++++++++++---- .../com/petlog/pet/service/PetService.java | 18 ++++++++++++++ .../pet/service/dto/UpdatePetProfileDto.java | 12 ++++++++++ 5 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/petlog/pet/service/dto/UpdatePetProfileDto.java diff --git a/src/main/java/com/petlog/docs/PetControllerDocs.java b/src/main/java/com/petlog/docs/PetControllerDocs.java index ab6c2d9..21bcbc1 100644 --- a/src/main/java/com/petlog/docs/PetControllerDocs.java +++ b/src/main/java/com/petlog/docs/PetControllerDocs.java @@ -19,5 +19,5 @@ public interface PetControllerDocs { @io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "200", description = "반려동물 정보 수정에 성공하였습니다.") @Operation(summary = "반려동물 정보 수정 API") - ResponseEntity> updatePetProfile(@PathVariable final Long groupId, @RequestBody final UpdatePetProfileRequestDto request); + ResponseEntity> updatePetProfile(@Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final UpdatePetProfileRequestDto request); } diff --git a/src/main/java/com/petlog/pet/controller/PetController.java b/src/main/java/com/petlog/pet/controller/PetController.java index 4a521f4..63ac517 100644 --- a/src/main/java/com/petlog/pet/controller/PetController.java +++ b/src/main/java/com/petlog/pet/controller/PetController.java @@ -10,6 +10,7 @@ import com.petlog.pet.service.dto.GetPetProfileDto; import com.petlog.pet.service.dto.GetPoopInfoDto; import com.petlog.pet.service.dto.GetWateringInfoDto; +import com.petlog.pet.service.dto.UpdatePetProfileDto; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -48,9 +49,19 @@ public ResponseEntity> getPetInfo( @PatchMapping("/{groupId}/pet") public ResponseEntity> updatePetProfile( + @Authenticated final Long memberId, @PathVariable final Long groupId, @RequestBody final UpdatePetProfileRequestDto request ) { + final UpdatePetProfileDto dto = new UpdatePetProfileDto( + request.imageUrl(), + request.name(), + request.age(), + request.weight(), + request.gender() + ); + petService.updatePetProfile(memberId, groupId, dto); + return ResponseEntity.ok( ApiResponse.success(UPDATE_PET_PROFILE) ); diff --git a/src/main/java/com/petlog/pet/entity/PetProfile.java b/src/main/java/com/petlog/pet/entity/PetProfile.java index 5e206c8..503b065 100644 --- a/src/main/java/com/petlog/pet/entity/PetProfile.java +++ b/src/main/java/com/petlog/pet/entity/PetProfile.java @@ -38,12 +38,12 @@ public class PetProfile extends BaseEntity { @Column(name = "age", length = 10, nullable = false) private String age; - @Column(name = "gender", length = 10, nullable = false) - private String gender; - @Column(name = "weight", length = 10, nullable = false) private String weight; + @Column(name = "gender", length = 10, nullable = false) + private String gender; + @Column(name = "feeding_cycle", nullable = false) private int feedingCycle; @@ -55,8 +55,8 @@ public PetProfile( final String imageUrl, final String name, final String age, - final String gender, final String weight, + final String gender, final int feedingCycle, final int wateringCycle ) { @@ -64,9 +64,23 @@ public PetProfile( this.imageUrl = imageUrl; this.name = name; this.age = age; - this.gender = gender; this.weight = weight; + this.gender = gender; this.feedingCycle = feedingCycle; this.wateringCycle = wateringCycle; } + + public void updatePetProfile( + final String imageUrl, + final String name, + final String age, + final String weight, + final String gender + ) { + this.imageUrl = imageUrl; + this.name = name; + this.age = age; + this.weight = weight; + this.gender = gender; + } } diff --git a/src/main/java/com/petlog/pet/service/PetService.java b/src/main/java/com/petlog/pet/service/PetService.java index 5018593..daee4c6 100644 --- a/src/main/java/com/petlog/pet/service/PetService.java +++ b/src/main/java/com/petlog/pet/service/PetService.java @@ -14,6 +14,7 @@ import com.petlog.pet.service.dto.GetPetProfileDto; import com.petlog.pet.service.dto.GetPoopInfoDto; import com.petlog.pet.service.dto.GetWateringInfoDto; +import com.petlog.pet.service.dto.UpdatePetProfileDto; import com.petlog.petgroup.entity.PetGroup; import com.petlog.petgroup.entity.PetGroupMember; import com.petlog.petgroup.repository.PetGroupMemberRepository; @@ -127,4 +128,21 @@ private int getTodayPoopRecordCount(final PetProfile petProfile) { return poopDailyRecordRepository.countByPetProfileAndTimeBetween(petProfile, start, end); } + + @Transactional + public void updatePetProfile(final Long memberId, final Long groupId, final UpdatePetProfileDto dto) { + final Member member = getMember(memberId); + final PetGroup petGroup = getPetGroup(groupId); + getPetGroupMember(member, petGroup); + + final PetProfile petProfile = petProfileRepository.findByPetGroupId(groupId); + + petProfile.updatePetProfile( + dto.imageUrl(), + dto.name(), + dto.age(), + dto.weight(), + dto.gender() + ); + } } diff --git a/src/main/java/com/petlog/pet/service/dto/UpdatePetProfileDto.java b/src/main/java/com/petlog/pet/service/dto/UpdatePetProfileDto.java new file mode 100644 index 0000000..1f80f09 --- /dev/null +++ b/src/main/java/com/petlog/pet/service/dto/UpdatePetProfileDto.java @@ -0,0 +1,12 @@ +package com.petlog.pet.service.dto; + +public record UpdatePetProfileDto( + + String imageUrl, + String name, + String age, + String weight, + String gender + +) { +} From 9f6f7534d9f6a67f6bb3072fbd77ef60da1ee275 Mon Sep 17 00:00:00 2001 From: Hwangseoeun Date: Sun, 30 Nov 2025 02:08:01 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=ED=95=84=EB=93=9C=20=EC=88=9C?= =?UTF-8?q?=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/petlog/pet/service/PetService.java | 4 ++-- .../petlog/pet/service/dto/GetPetProfileDto.java | 14 +++++++------- .../petlog/petgroup/service/PetGroupService.java | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/petlog/pet/service/PetService.java b/src/main/java/com/petlog/pet/service/PetService.java index daee4c6..c4ad0e0 100644 --- a/src/main/java/com/petlog/pet/service/PetService.java +++ b/src/main/java/com/petlog/pet/service/PetService.java @@ -50,8 +50,8 @@ public GetPetProfileDto getPetProfile(final Long memberId, final Long groupId) { petProfile.getImageUrl(), petProfile.getName(), petProfile.getAge(), - petProfile.getGender(), - petProfile.getWeight() + petProfile.getWeight(), + petProfile.getGender() ); } diff --git a/src/main/java/com/petlog/pet/service/dto/GetPetProfileDto.java b/src/main/java/com/petlog/pet/service/dto/GetPetProfileDto.java index 2249590..a5b6804 100644 --- a/src/main/java/com/petlog/pet/service/dto/GetPetProfileDto.java +++ b/src/main/java/com/petlog/pet/service/dto/GetPetProfileDto.java @@ -12,11 +12,11 @@ public record GetPetProfileDto( @Schema(description = "4글자 제한") String age, - @Schema(description = "FEMALE/MALE") - String gender, - @Schema(description = "6글자 제한") - String weight + String weight, + + @Schema(description = "FEMALE/MALE") + String gender ) { @@ -24,13 +24,13 @@ public GetPetProfileDto( final String imageUrl, final String name, final String age, - final String gender, - final String weight + final String weight, + final String gender ) { this.imageUrl = imageUrl; this.name = name; this.age = age; - this.gender = gender; this.weight = weight; + this.gender = gender; } } diff --git a/src/main/java/com/petlog/petgroup/service/PetGroupService.java b/src/main/java/com/petlog/petgroup/service/PetGroupService.java index dcfe44f..bb1afcd 100644 --- a/src/main/java/com/petlog/petgroup/service/PetGroupService.java +++ b/src/main/java/com/petlog/petgroup/service/PetGroupService.java @@ -51,8 +51,8 @@ public void createPetGroup(final Long memberId, final CreatePetGroupDto dto) { dto.imageUrl(), dto.name(), dto.age(), - dto.gender(), dto.weight(), + dto.gender(), dto.feedingCycle(), dto.wateringCycle() );