From e2d2b46c1de5814057ff2652b74d3f4aa1ffc2b1 Mon Sep 17 00:00:00 2001 From: yhi9839 Date: Thu, 20 Feb 2025 03:59:01 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EC=A3=BC=EC=86=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/controller/MemberController.java | 10 ++++++++ .../backend/domain/entity/member/Member.java | 5 ++++ .../memberDTO/AddressChangeRequestDTO.java | 14 +++++++++++ .../dto/memberDTO/MyPageResponseDTO.java | 1 + .../muit/backend/service/MemberService.java | 1 + .../backend/service/MemberServiceImpl.java | 25 +++++++++++++++++++ 6 files changed, 56 insertions(+) create mode 100644 src/main/java/muit/backend/dto/memberDTO/AddressChangeRequestDTO.java diff --git a/src/main/java/muit/backend/controller/MemberController.java b/src/main/java/muit/backend/controller/MemberController.java index 7d5a364..948bb02 100644 --- a/src/main/java/muit/backend/controller/MemberController.java +++ b/src/main/java/muit/backend/controller/MemberController.java @@ -118,6 +118,16 @@ public ApiResponse changePassword(@RequestHeader("Authorizati return ApiResponse.onSuccess(myPageResponseDTO); } + @PatchMapping("{memberId}/changeAddress") + @Operation(summary = "회원 정보 수정 - 주소") + public ApiResponse changeAddress(@RequestHeader("Authorization") String authorizationHeader, + @PathVariable("memberId") Long memberId, + @RequestBody AddressChangeRequestDTO dto) { + Member member = memberService.getMemberByToken(authorizationHeader); + MyPageResponseDTO myPageResponseDTO = memberService.changeAddress(member.getId(), memberId, dto); + return ApiResponse.onSuccess(myPageResponseDTO); + } + @PostMapping("{memberId}/checkPassword") @Operation(summary = "회원 정보 변경 전 + 소극장 등록 전 비밀 번호 확인하는 api") public ApiResponse checkPassword(@RequestHeader("Authorization") String authorizationHeader, @RequestBody PasswordRequestDTO dto) { diff --git a/src/main/java/muit/backend/domain/entity/member/Member.java b/src/main/java/muit/backend/domain/entity/member/Member.java index ce476d8..fac0b35 100644 --- a/src/main/java/muit/backend/domain/entity/member/Member.java +++ b/src/main/java/muit/backend/domain/entity/member/Member.java @@ -114,6 +114,11 @@ public void changeEmail(String newEmail) { this.email = newEmail; } + public void changeAddress(String newAddress) { + this.address = newAddress; + } + + public void updateMember(ManageMemberRequestDTO.UpdateMemberRequestDTO requestDTO) { if (requestDTO.getUsername() != null) { this.username = requestDTO.getUsername(); diff --git a/src/main/java/muit/backend/dto/memberDTO/AddressChangeRequestDTO.java b/src/main/java/muit/backend/dto/memberDTO/AddressChangeRequestDTO.java new file mode 100644 index 0000000..ea5c77b --- /dev/null +++ b/src/main/java/muit/backend/dto/memberDTO/AddressChangeRequestDTO.java @@ -0,0 +1,14 @@ +package muit.backend.dto.memberDTO; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Getter +public class AddressChangeRequestDTO { + private String address; +} diff --git a/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java b/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java index a7505a9..2b21ab1 100644 --- a/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java +++ b/src/main/java/muit/backend/dto/memberDTO/MyPageResponseDTO.java @@ -16,5 +16,6 @@ public class MyPageResponseDTO { private String username; private String email; private String phone; + private String address; private ActiveStatus status; } diff --git a/src/main/java/muit/backend/service/MemberService.java b/src/main/java/muit/backend/service/MemberService.java index 01828a0..1624e70 100644 --- a/src/main/java/muit/backend/service/MemberService.java +++ b/src/main/java/muit/backend/service/MemberService.java @@ -22,6 +22,7 @@ public interface MemberService { public MyPageResponseDTO changeUsername(Long tokenId, Long memberId, UserNameChangeRequestDTO dto); public MyPageResponseDTO changeEmail(Long tokenId, Long memberId, EmailVerifyRequestDTO dto); public MyPageResponseDTO changePassword(Long tokenId, Long memberId, PasswordChangeRequestDTO dto); + public MyPageResponseDTO changeAddress(Long tokenId, Long memberId, AddressChangeRequestDTO dto); public List getLikeMusicals(Member member); diff --git a/src/main/java/muit/backend/service/MemberServiceImpl.java b/src/main/java/muit/backend/service/MemberServiceImpl.java index c3c7cdf..53f1816 100644 --- a/src/main/java/muit/backend/service/MemberServiceImpl.java +++ b/src/main/java/muit/backend/service/MemberServiceImpl.java @@ -152,6 +152,7 @@ public MyPageResponseDTO getMyPage(Long tokenId, Long memberId){ .username(member.getUsername()) .phone(member.getPhone()) .email(member.getEmail()) + .address(member.getAddress()) .status(member.getActiveStatus()) .build(); } @@ -173,6 +174,7 @@ public MyPageResponseDTO deactivateMember(Long tokenId, Long memberId){ .email(member.getEmail()) .name(member.getName()) .username(member.getUsername()) + .address(member.getAddress()) .status(member.getActiveStatus()).build(); } @@ -198,6 +200,7 @@ public MyPageResponseDTO changePhoneNumber(Long tokenId, Long memberId, PhoneCha .email(member.getEmail()) .name(member.getName()) .username(member.getUsername()) + .address(member.getAddress()) .status(member.getActiveStatus()).build(); } @@ -216,6 +219,7 @@ public MyPageResponseDTO changeUsername(Long tokenId, Long memberId, UserNameCha .email(member.getEmail()) .name(member.getName()) .username(member.getUsername()) + .address(member.getAddress()) .status(member.getActiveStatus()).build(); } @Transactional @@ -233,6 +237,7 @@ public MyPageResponseDTO changeEmail(Long tokenId, Long memberId, EmailVerifyReq .email(member.getEmail()) .name(member.getName()) .username(member.getUsername()) + .address(member.getAddress()) .status(member.getActiveStatus()).build(); } @Transactional @@ -258,6 +263,26 @@ public MyPageResponseDTO changePassword(Long tokenId, Long memberId, PasswordCha .email(member.getEmail()) .name(member.getName()) .username(member.getUsername()) + .address(member.getAddress()) + .status(member.getActiveStatus()).build(); + } + + @Transactional + @Override + public MyPageResponseDTO changeAddress(Long tokenId, Long memberId, AddressChangeRequestDTO dto){ + Member member = memberRepository.findById(memberId).orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); + if (!tokenId.equals(memberId)) { + throw new GeneralException(ErrorStatus.MEMBER_NOT_AUTHORIZED); + } + + member.changeAddress(dto.getAddress()); + return MyPageResponseDTO.builder() + .id(memberId) + .phone(member.getPhone()) + .email(member.getEmail()) + .name(member.getName()) + .username(member.getUsername()) + .address(member.getAddress()) .status(member.getActiveStatus()).build(); }