diff --git a/src/main/java/com/umc/TheGoods/converter/member/MemberConverter.java b/src/main/java/com/umc/TheGoods/converter/member/MemberConverter.java index 5ee8255b..ddb2489e 100644 --- a/src/main/java/com/umc/TheGoods/converter/member/MemberConverter.java +++ b/src/main/java/com/umc/TheGoods/converter/member/MemberConverter.java @@ -204,20 +204,32 @@ public static ProfileImg toProfileImg(String url, Member member) { .build(); } - public static MemberResponseDTO.ProfileResultDTO toProfile(Member member, String url, Optional account, Optional
address) { + public static MemberResponseDTO.ProfileResultDTO toProfile(Member member, String url, List account, List
address) { + + List accountList = account.stream().map(a -> MemberResponseDTO.AccountDTO.builder() + .id(a.getId()) + .accountNum(a.getAccountNum()) + .bankName(a.getBankName()) + .owner(a.getOwner()) + .defaultCheck(a.getDefaultCheck()) + .build()).collect(Collectors.toList()); + List addressList = address.stream().map(a -> MemberResponseDTO.AddressDTO.builder() + .addressName(a.getAddressName()) + .addressSpec(a.getAddressSpec()) + .deliveryMemo(a.getDeliveryMemo()) + .defaultCheck(a.getDefaultCheck()) + .recipientName(a.getRecipientName()) + .recipientPhone(a.getRecipientPhone()) + .id(a.getId()) + .zipcode(a.getZipcode()).build()).collect(Collectors.toList()); if (address.isEmpty() && account.isEmpty()){ return MemberResponseDTO.ProfileResultDTO.builder() .name(member.getName()) .phone(member.getPhone()) .url(url) - .address(null) - .deliveryMemo(null) - .addressDetail(null) - .zipcode(null) - .refundAccount(null) - .refundBank(null) - .refundOwner(null) + .accountList(null) + .addressList(null) .build(); } if (account.isEmpty()){ @@ -225,13 +237,8 @@ public static MemberResponseDTO.ProfileResultDTO toProfile(Member member, String .name(member.getName()) .phone(member.getPhone()) .url(url) - .address(address.get().getAddressName()) - .deliveryMemo(address.get().getDeliveryMemo()) - .addressDetail(address.get().getAddressSpec()) - .zipcode(address.get().getZipcode()) - .refundAccount(null) - .refundBank(null) - .refundOwner(null) + .addressList(addressList) + .accountList(accountList) .build(); } if(address.isEmpty()){ @@ -239,13 +246,8 @@ public static MemberResponseDTO.ProfileResultDTO toProfile(Member member, String .name(member.getName()) .phone(member.getPhone()) .url(url) - .address(null) - .deliveryMemo(null) - .addressDetail(null) - .zipcode(null) - .refundAccount(account.get().getAccountNum()) - .refundBank(account.get().getBankName()) - .refundOwner(account.get().getOwner()) + .addressList(null) + .accountList(accountList) .build(); } @@ -253,13 +255,8 @@ public static MemberResponseDTO.ProfileResultDTO toProfile(Member member, String .name(member.getName()) .phone(member.getPhone()) .url(url) - .address(address.get().getAddressName()) - .deliveryMemo(address.get().getDeliveryMemo()) - .addressDetail(address.get().getAddressSpec()) - .zipcode(address.get().getZipcode()) - .refundAccount(account.get().getAccountNum()) - .refundBank(account.get().getBankName()) - .refundOwner(account.get().getOwner()) + .addressList(addressList) + .accountList(accountList) .build(); } @@ -322,6 +319,9 @@ public static Address toAddress(MemberRequestDTO.AddressDTO request,Member membe .addressSpec(request.getAddressSpec()) .deliveryMemo(request.getDeliveryMemo()) .zipcode(request.getZipcode()) + .recipientName(request.getRecipientName()) + .recipientPhone(request.getRecipientPhone()) + .defaultCheck(request.getDefaultCheck()) .member(member) .build(); } @@ -332,6 +332,7 @@ public static Account toAccount(MemberRequestDTO.AccountDTO request, Member memb .accountNum(request.getAccountNum()) .bankName(request.getBankName()) .owner(request.getOwner()) + .defaultCheck(request.getDefaultCheck()) .member(member) .build(); } diff --git a/src/main/java/com/umc/TheGoods/domain/mypage/Account.java b/src/main/java/com/umc/TheGoods/domain/mypage/Account.java index a637d07e..f8733c7e 100644 --- a/src/main/java/com/umc/TheGoods/domain/mypage/Account.java +++ b/src/main/java/com/umc/TheGoods/domain/mypage/Account.java @@ -4,6 +4,7 @@ import com.umc.TheGoods.domain.common.BaseDateTimeEntity; import com.umc.TheGoods.domain.member.Member; import lombok.*; +import org.hibernate.annotations.ColumnDefault; import javax.persistence.*; @@ -29,6 +30,10 @@ public class Account extends BaseDateTimeEntity { @Column(columnDefinition = "VARCHAR(16)", nullable = false) private String accountNum; + @Column(columnDefinition = "BOOLEAN") + @ColumnDefault("false") + private Boolean defaultCheck; + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") diff --git a/src/main/java/com/umc/TheGoods/domain/mypage/Address.java b/src/main/java/com/umc/TheGoods/domain/mypage/Address.java index 2d21dfeb..acffd60e 100644 --- a/src/main/java/com/umc/TheGoods/domain/mypage/Address.java +++ b/src/main/java/com/umc/TheGoods/domain/mypage/Address.java @@ -3,6 +3,7 @@ import com.umc.TheGoods.domain.common.BaseDateTimeEntity; import com.umc.TheGoods.domain.member.Member; import lombok.*; +import org.hibernate.annotations.ColumnDefault; import javax.persistence.*; @@ -30,6 +31,17 @@ public class Address extends BaseDateTimeEntity { @Column(columnDefinition = "VARCHAR(10)", nullable = false) private String zipcode; + @Column(columnDefinition = "BOOLEAN") + @ColumnDefault("false") + private Boolean defaultCheck; + + @Column(columnDefinition = "VARCHAR(20)") + private String recipientPhone; + + @Column(columnDefinition = "VARCHAR(10)") + private String recipientName; + + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; diff --git a/src/main/java/com/umc/TheGoods/repository/member/AccountRepository.java b/src/main/java/com/umc/TheGoods/repository/member/AccountRepository.java index 44fc6c44..614b0164 100644 --- a/src/main/java/com/umc/TheGoods/repository/member/AccountRepository.java +++ b/src/main/java/com/umc/TheGoods/repository/member/AccountRepository.java @@ -8,14 +8,15 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Optional; public interface AccountRepository extends JpaRepository { - Optional findByMember_Id(Long id); + List findAllByMember_Id(Long id); @Transactional @Modifying(clearAutomatically = true) - @Query("UPDATE Account a SET a.accountNum = :accountNum, a.bankName = :bankName, a.owner = :owner WHERE a.id = :accountId") - void changeAccount(Long accountId, String accountNum,String bankName, String owner); + @Query("UPDATE Account a SET a.accountNum = :accountNum, a.bankName = :bankName, a.owner = :owner, a.defaultCheck = :defaultCheck WHERE a.id = :accountId") + void changeAccount(Long accountId, String accountNum,String bankName, String owner, Boolean defaultCheck); } diff --git a/src/main/java/com/umc/TheGoods/repository/member/AddressRepository.java b/src/main/java/com/umc/TheGoods/repository/member/AddressRepository.java index 15ca1611..b92a6cb7 100644 --- a/src/main/java/com/umc/TheGoods/repository/member/AddressRepository.java +++ b/src/main/java/com/umc/TheGoods/repository/member/AddressRepository.java @@ -6,14 +6,15 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Optional; public interface AddressRepository extends JpaRepository { - Optional
findByMember_Id(Long id); + List
findAllByMember_Id(Long id); @Transactional @Modifying(clearAutomatically = true) - @Query("UPDATE Address a SET a.addressName = :addressName, a.addressSpec = :addressSpec, a.deliveryMemo = :deliveryMemo, a.zipcode = :zipcode WHERE a.id = :addressId") - void changeAddress(Long addressId, String addressName, String addressSpec,String deliveryMemo,String zipcode); + @Query("UPDATE Address a SET a.addressName = :addressName, a.addressSpec = :addressSpec, a.deliveryMemo = :deliveryMemo, a.zipcode = :zipcode, a.defaultCheck = :defaultCheck, a.recipientName = :recipientName, a.recipientPhone = :recipientPhone WHERE a.id = :addressId") + void changeAddress(Long addressId, String addressName, String addressSpec,String deliveryMemo,String zipcode, Boolean defaultCheck, String recipientPhone, String recipientName); } diff --git a/src/main/java/com/umc/TheGoods/service/MemberService/MemberCommandServiceImpl.java b/src/main/java/com/umc/TheGoods/service/MemberService/MemberCommandServiceImpl.java index c19cdc05..561e8f93 100644 --- a/src/main/java/com/umc/TheGoods/service/MemberService/MemberCommandServiceImpl.java +++ b/src/main/java/com/umc/TheGoods/service/MemberService/MemberCommandServiceImpl.java @@ -597,7 +597,7 @@ public Account postAccount(MemberRequestDTO.AccountDTO request, Member member) { public void updateAddress(MemberRequestDTO.AddressDTO request, Long addressId) { Address address = addressRepository.findById(addressId).orElseThrow(()-> new MemberHandler(ErrorStatus.MEMBER_ADDRESS_NOT_FOUND)); - addressRepository.changeAddress(addressId, request.getAddressName(),request.getAddressSpec(), request.getDeliveryMemo(), request.getZipcode()); + addressRepository.changeAddress(addressId, request.getAddressName(),request.getAddressSpec(), request.getDeliveryMemo(), request.getZipcode(), request.getDefaultCheck(),request.getRecipientName(),request.getRecipientPhone()); } @@ -606,8 +606,7 @@ public void updateAddress(MemberRequestDTO.AddressDTO request, Long addressId) { public void updateAccount(MemberRequestDTO.AccountDTO request, Long accountId) { Account account = accountRepository.findById(accountId).orElseThrow(() -> new MemberHandler(ErrorStatus.MEMBER_ACCOUNT_NOT_FOUND)); - accountRepository.changeAccount(accountId, request.getAccountNum(),request.getBankName(),request.getOwner()); - + accountRepository.changeAccount(accountId, request.getAccountNum(),request.getBankName(),request.getOwner(),request.getDefaultCheck()); } diff --git a/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryService.java b/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryService.java index cb5e490c..9611e206 100644 --- a/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryService.java +++ b/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryService.java @@ -5,6 +5,7 @@ import com.umc.TheGoods.domain.mypage.Account; import com.umc.TheGoods.domain.mypage.Address; +import java.util.List; import java.util.Optional; public interface MemberQueryService { @@ -16,7 +17,7 @@ public interface MemberQueryService { Optional findMemberByEmail(String email); - Optional
findAddressById(Long id); + List
findAllAddressById(Long id); - Optional findAccountById(Long id); + List findAllAccountById(Long id); } diff --git a/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryServiceImpl.java b/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryServiceImpl.java index 9d35559e..963eb2d7 100644 --- a/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryServiceImpl.java +++ b/src/main/java/com/umc/TheGoods/service/MemberService/MemberQueryServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Optional; @Service @@ -48,16 +49,16 @@ public Optional findMemberByEmail(String email) { } @Override - public Optional
findAddressById(Long id) { + public List
findAllAddressById(Long id) { - Optional
address = addressRepository.findByMember_Id(id); + List
address = addressRepository.findAllByMember_Id(id); return address; } @Override - public Optional findAccountById(Long id) { + public List findAllAccountById(Long id) { - Optional account = accountRepository.findByMember_Id(id); + List account = accountRepository.findAllByMember_Id(id); return account; } } diff --git a/src/main/java/com/umc/TheGoods/web/controller/MemberController.java b/src/main/java/com/umc/TheGoods/web/controller/MemberController.java index 93ffc00c..9c3cae8b 100644 --- a/src/main/java/com/umc/TheGoods/web/controller/MemberController.java +++ b/src/main/java/com/umc/TheGoods/web/controller/MemberController.java @@ -27,6 +27,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.validation.Valid; +import java.util.List; import java.util.Optional; @RestController @@ -225,8 +226,10 @@ public ApiResponse getProfile(Authentication MemberDetail memberDetail = (MemberDetail) authentication.getPrincipal(); Member member = memberQueryService.findMemberById(memberDetail.getMemberId()).orElseThrow(() -> new MemberHandler(ErrorStatus.MEMBER_NOT_FOUND)); Optional profileImg = memberQueryService.findProfileImgByMember(member.getId()); - Optional
address = memberQueryService.findAddressById(member.getId()); - Optional account = memberQueryService.findAccountById(member.getId()); + List
address = memberQueryService.findAllAddressById(member.getId()); + List account = memberQueryService.findAllAccountById(member.getId()); + + if(profileImg.isEmpty()){ return ApiResponse.onSuccess(MemberConverter.toProfile(member, null, account, address)); diff --git a/src/main/java/com/umc/TheGoods/web/dto/member/MemberRequestDTO.java b/src/main/java/com/umc/TheGoods/web/dto/member/MemberRequestDTO.java index 6a45f34c..5bd011ff 100644 --- a/src/main/java/com/umc/TheGoods/web/dto/member/MemberRequestDTO.java +++ b/src/main/java/com/umc/TheGoods/web/dto/member/MemberRequestDTO.java @@ -116,6 +116,9 @@ public static class AddressDTO { private String addressSpec; private String deliveryMemo; private String zipcode; + private String recipientName; + private String recipientPhone; + private Boolean defaultCheck; } @Getter @@ -126,5 +129,6 @@ public static class AccountDTO { private String owner; private String bankName; private String accountNum; + private Boolean defaultCheck; } } diff --git a/src/main/java/com/umc/TheGoods/web/dto/member/MemberResponseDTO.java b/src/main/java/com/umc/TheGoods/web/dto/member/MemberResponseDTO.java index 6bb746e3..a595393a 100644 --- a/src/main/java/com/umc/TheGoods/web/dto/member/MemberResponseDTO.java +++ b/src/main/java/com/umc/TheGoods/web/dto/member/MemberResponseDTO.java @@ -1,12 +1,20 @@ package com.umc.TheGoods.web.dto.member; import com.umc.TheGoods.domain.enums.MemberRole; +import com.umc.TheGoods.domain.mypage.Account; +import com.umc.TheGoods.domain.mypage.Address; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import org.hibernate.annotations.ColumnDefault; +import javax.persistence.Column; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; import java.time.LocalDateTime; +import java.util.List; public class MemberResponseDTO { @@ -135,13 +143,8 @@ public static class ProfileResultDTO { String name; String url; String phone; - String zipcode; - String address; - String addressDetail; - String deliveryMemo; - String refundBank; - String refundAccount; - String refundOwner; + List addressList; + List accountList; } @@ -170,6 +173,22 @@ public static class AddressResultDTO { String name; } + @Builder + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class AddressDTO { + + Long id; + String addressName; + String addressSpec; + String deliveryMemo; + String zipcode; + Boolean defaultCheck; + String recipientPhone; + String recipientName; + } + @Builder @Getter @NoArgsConstructor @@ -178,5 +197,18 @@ public static class AccountResultDTO { String name; } + @Builder + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class AccountDTO { + + Long id; + String owner; + String bankName; + String accountNum; + Boolean defaultCheck; + } + }