diff --git a/favor/src/main/java/com/favor/favor/friend/Friend.java b/favor/src/main/java/com/favor/favor/friend/Friend.java index 59c838b..35f8d6b 100644 --- a/favor/src/main/java/com/favor/favor/friend/Friend.java +++ b/favor/src/main/java/com/favor/favor/friend/Friend.java @@ -1,7 +1,6 @@ package com.favor.favor.friend; -import com.favor.favor.common.enums.Favor; import lombok.*; import com.favor.favor.common.TimeStamped; @@ -9,15 +8,12 @@ import com.favor.favor.user.User; import javax.persistence.*; -import javax.transaction.Transactional; import java.util.ArrayList; import java.util.List; @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) -@AllArgsConstructor -@Builder public class Friend extends TimeStamped { @Id @@ -27,33 +23,39 @@ public class Friend extends TimeStamped { private String friendName; private String friendMemo; - public void setFriendMemo(String friendMemo) { - this.friendMemo = friendMemo; - } - - @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER) + @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) @JoinColumn(name = "user_user_no") private User user; - - @Builder.Default @OneToMany(mappedBy = "friend", orphanRemoval = true) private List reminderList = new ArrayList<>(); private Long friendUserNo; - @Builder.Default @ElementCollection private List giftNoList = new ArrayList<>(); - public void setGiftNoList(List giftNoList){ - this.giftNoList = giftNoList; - } - @Builder.Default @ElementCollection private List anniversaryNoList = new ArrayList<>(); - public void setAnniversaryNoList(List anniversaryNoList){ + + public void updateFriendMemo(String friendMemo) { + this.friendMemo = friendMemo; + } + + public void updateGiftNoList(List giftNoList){ + this.giftNoList = giftNoList; + } + + @Builder + public Friend(Long friendNo, String friendName, String friendMemo, User user, List reminderList, Long friendUserNo, List giftNoList, List anniversaryNoList) { + this.friendNo = friendNo; + this.friendName = friendName; + this.friendMemo = friendMemo; + this.user = user; + this.reminderList = reminderList; + this.friendUserNo = friendUserNo; + this.giftNoList = giftNoList; this.anniversaryNoList = anniversaryNoList; } } diff --git a/favor/src/main/java/com/favor/favor/friend/FriendController.java b/favor/src/main/java/com/favor/favor/friend/FriendController.java index 5cd335d..0b0402e 100644 --- a/favor/src/main/java/com/favor/favor/friend/FriendController.java +++ b/favor/src/main/java/com/favor/favor/friend/FriendController.java @@ -46,14 +46,11 @@ public ResponseEntity> addFriend( Long userNo = loginUser.getUserNo(); - friendService.isExistingUserNo(userNo); - friendService.isExistingFriendUserNo(friendRequestDto.getFriendUserNo()); - Friend friend = friendService.addFriend(friendRequestDto, userNo); - FriendResponseDto dto = friendService.returnDto(friend); + FriendResponseDto friendResponseDto = friendService.returnDto(friend); return ResponseEntity.status(201) - .body(DefaultResponseDto.from("FRIEND_ADDED", "친구 추가 완료", dto)); + .body(DefaultResponseDto.from("FRIEND_ADDED", "친구 추가 완료", friendResponseDto)); } @ApiOperation("친구 조회") diff --git a/favor/src/main/java/com/favor/favor/friend/FriendRequestDto.java b/favor/src/main/java/com/favor/favor/friend/FriendRequestDto.java index aca9ec6..98c2d50 100644 --- a/favor/src/main/java/com/favor/favor/friend/FriendRequestDto.java +++ b/favor/src/main/java/com/favor/favor/friend/FriendRequestDto.java @@ -10,11 +10,10 @@ @Getter @NoArgsConstructor -@AllArgsConstructor public class FriendRequestDto { @ApiModelProperty(position = 1, required = true, dataType = "Long", value = "회원친구번호", example = "1") private Long friendUserNo; - @Transactional + public Friend toEntity(User user, User userFriend){ return Friend.builder() .friendUserNo(friendUserNo) @@ -23,4 +22,4 @@ public Friend toEntity(User user, User userFriend){ .user(user) .build(); } -} +} \ No newline at end of file diff --git a/favor/src/main/java/com/favor/favor/friend/FriendResponseDto.java b/favor/src/main/java/com/favor/favor/friend/FriendResponseDto.java index cb9a47a..b0253d4 100644 --- a/favor/src/main/java/com/favor/favor/friend/FriendResponseDto.java +++ b/favor/src/main/java/com/favor/favor/friend/FriendResponseDto.java @@ -11,7 +11,6 @@ import java.util.List; @Getter -@AllArgsConstructor public class FriendResponseDto { private Long friendNo; diff --git a/favor/src/main/java/com/favor/favor/friend/FriendService.java b/favor/src/main/java/com/favor/favor/friend/FriendService.java index 6efbad2..cc8b7fe 100644 --- a/favor/src/main/java/com/favor/favor/friend/FriendService.java +++ b/favor/src/main/java/com/favor/favor/friend/FriendService.java @@ -15,9 +15,11 @@ import com.favor.favor.user.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; import static com.favor.favor.exception.ExceptionCode.*; @@ -33,13 +35,20 @@ public class FriendService { @Transactional public Friend addFriend(FriendRequestDto dto, Long userNo){ User user = findUserByUserNo(userNo); + isExistingUserNo(userNo); + Long friendUserNo = dto.getFriendUserNo(); + isExistingFriendUserNo(friendUserNo); + User friendUser = findUserByUserNo(friendUserNo); if(isDuplicateFriendUser(user, friendUser)) { throw new CustomException(null, DUPLICATE_FRIEND); } - return save(dto.toEntity(user, friendUser)); + Friend friend = dto.toEntity(user, friendUser); + save(friend); + + return friend; } public Boolean isDuplicateFriendUser(User user, User friendUser){ @@ -56,7 +65,7 @@ public Boolean isDuplicateFriendUser(User user, User friendUser){ @Transactional public void updateMemo(Friend friend, MemoUpdateRequestDto memoUpdateRequestDto){ - friend.setFriendMemo(memoUpdateRequestDto.getMemo()); + friend.updateFriendMemo(memoUpdateRequestDto.getMemo()); friendRepository.save(friend); } @@ -78,10 +87,14 @@ public void deleteFriend(Long friendNo){ } public List readAll(){ - List f_List = new ArrayList<>(); - List friendList = friendRepository.findAll(); - for(Friend f : friendList) f_List.add(returnDto(f)); - return f_List; +// List f_List = new ArrayList<>(); +// List friendList = friendRepository.findAll(); +// for(Friend f : friendList) f_List.add(returnDto(f)); +// return f_List; + + return friendRepository.findAll().stream() + .map(friend -> returnDto(friend)) + .collect(Collectors.toList()); } @@ -132,35 +145,40 @@ public Friend findFriendByFriendNo(Long friendNo){ return friend; } public List findGiftListByFriendNo(Long friendNo){ - List giftList = giftRepository.findGiftsByFriendNoListContains(friendNo); - List giftResponseDtoList = new ArrayList<>(); - for(Gift gift : giftList){ - GiftSimpleDto dto = GiftSimpleDto.from(gift); - giftResponseDtoList.add(dto); - } - return giftResponseDtoList; + return giftRepository.findGiftsByFriendNoListContains(friendNo).stream() + .map(GiftSimpleDto::from) + .collect(Collectors.toList()); } public List findGivenGiftList(Long friendNo){ - List giftList = giftRepository.findGiftsByFriendNoListContains(friendNo); - List giftResponseDtoList = new ArrayList<>(); - for(Gift gift : giftList){ - if(gift.getIsGiven()){ - GiftSimpleDto dto = GiftSimpleDto.from(gift); - giftResponseDtoList.add(dto); - } - } - return giftResponseDtoList; +// List giftList = giftRepository.findGiftsByFriendNoListContains(friendNo); +// List giftResponseDtoList = new ArrayList<>(); +// for(Gift gift : giftList){ +// if(gift.getIsGiven()){ +// GiftSimpleDto dto = GiftSimpleDto.from(gift); +// giftResponseDtoList.add(dto); +// } +// } +// return giftResponseDtoList; + return giftRepository.findGiftsByFriendNoListContains(friendNo).stream() + .filter(gift -> gift.getIsGiven()) + .map(GiftSimpleDto::from) + .collect(Collectors.toList()); } public List findReceivedGiftList(Long friendNo){ - List giftList = giftRepository.findGiftsByFriendNoListContains(friendNo); - List giftResponseDtoList = new ArrayList<>(); - for(Gift gift : giftList){ - if(!gift.getIsGiven()){ - GiftSimpleDto dto = GiftSimpleDto.from(gift); - giftResponseDtoList.add(dto); - } - } - return giftResponseDtoList; +// List giftList = giftRepository.findGiftsByFriendNoListContains(friendNo); +// List giftResponseDtoList = new ArrayList<>(); +// for(Gift gift : giftList){ +// if(!gift.getIsGiven()){ +// GiftSimpleDto dto = GiftSimpleDto.from(gift); +// giftResponseDtoList.add(dto); +// } +// } +// return giftResponseDtoList; + + return giftRepository.findGiftsByFriendNoListContains(friendNo).stream() + .filter(gift -> !gift.getIsGiven()) + .map(GiftSimpleDto::from) + .collect(Collectors.toList()); } @@ -215,7 +233,7 @@ public HashMap returnGiftInfo(Long friendNo) { //IS_EXISTING public void isExistingUserNo (Long userNo){ - Boolean isExistingNo = null; + Boolean isExistingNo; try{ isExistingNo = userRepository.existsByUserNo(userNo); } catch(RuntimeException e){ @@ -227,7 +245,7 @@ public void isExistingUserNo (Long userNo){ } public void isExistingFriendUserNo (Long userNo){ - Boolean isExistingNo = null; + Boolean isExistingNo; try{ isExistingNo = userRepository.existsByUserNo(userNo); } catch(RuntimeException e){ diff --git a/favor/src/main/java/com/favor/favor/gift/GiftService.java b/favor/src/main/java/com/favor/favor/gift/GiftService.java index b4583f2..4e141bb 100644 --- a/favor/src/main/java/com/favor/favor/gift/GiftService.java +++ b/favor/src/main/java/com/favor/favor/gift/GiftService.java @@ -51,7 +51,7 @@ public void addGiftNo(Long giftNo, List friendNoList){ if(!giftNoList.contains(giftNo)) giftNoList.add(giftNo); - friend.setGiftNoList(giftNoList); + friend.updateGiftNoList(giftNoList); } }