Skip to content

Commit

Permalink
Merge pull request #95 from Lets-JUPJUP/feature/userheart-v2
Browse files Browse the repository at this point in the history
fix : 리뷰(좋아요) 기능 수정
  • Loading branch information
ParkIsComing authored Aug 20, 2024
2 parents e9aba07 + d39b37c commit f56e3db
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package efub.back.jupjup.domain.userHeart.dto.request;

import java.util.List;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
Expand All @@ -8,5 +10,5 @@
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class UserHeartReqDto {
private Long postId;
private Long targetId;
private List<Long> targetIds;
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
import efub.back.jupjup.domain.userHeart.domain.UserHeart;

public interface UserHeartRepository extends JpaRepository<UserHeart, Long> {
@Query("SELECT COUNT(u) FROM UserHeart u WHERE u.id = :memberId")
@Query("SELECT COUNT(u) FROM UserHeart u WHERE u.member.id = :memberId")
Long countUserHeartsByMemberId(@Param("memberId") Long memberId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,19 @@ public class UserHeartService {
private final PostRepository postRepository;
private final PostjoinRepository postjoinRepository;

public ResponseEntity<StatusResponse> giveUserHeart(Member member, UserHeartReqDto userHeartReqDto) {
Member target = memberRepository.findById(userHeartReqDto.getTargetId())
.orElseThrow(MemberNotFoundException::new);
Post post = postRepository.findById(userHeartReqDto.getPostId()).orElseThrow(PostNotFoundException::new);
public ResponseEntity<StatusResponse> giveUserHeart(Member writer, UserHeartReqDto userHeartReqDto) {
Post post = postRepository.findById(userHeartReqDto.getPostId())
.orElseThrow(PostNotFoundException::new);

checkPloggingMember(userHeartReqDto, member, target, post);
userHeartReqDto.getTargetIds().forEach(id -> {
Member target = memberRepository.findById(id)
.orElseThrow(MemberNotFoundException::new);

UserHeart userHeart = new UserHeart(target, post);
userHeartRepository.save(userHeart);
checkPloggingMember(writer, target, post);

UserHeart userHeart = new UserHeart(target, post);
userHeartRepository.save(userHeart);
});

return ResponseEntity.ok()
.body(StatusResponse.builder()
Expand All @@ -66,7 +70,7 @@ public ResponseEntity<StatusResponse> getUserHearts(Long memberId) {
}

// 플로깅에 참여한 유저들인지 확인
private void checkPloggingMember(UserHeartReqDto userHeartReqDto, Member member, Member target, Post post) {
private void checkPloggingMember(Member writer, Member target, Post post) {
List<Member> joinedMembers = postjoinRepository.findAllByPost(post)
.stream()
.map(Postjoin::getMember)
Expand All @@ -75,16 +79,16 @@ private void checkPloggingMember(UserHeartReqDto userHeartReqDto, Member member,
joinedMembers.add(author);

Optional<Member> memberOptional = joinedMembers.stream()
.filter(m -> m.getId().equals(member.getId()))
.filter(m -> m.getId().equals(writer.getId()))
.findFirst();
Optional<Member> targetOptional = joinedMembers.stream()
.filter(m -> m.getId().equals(target.getId()))
.findFirst();

if (memberOptional.isEmpty() && targetOptional.isEmpty()) {
throw new PostjoinNotFoundException(member.getId(), target.getId());
throw new PostjoinNotFoundException(writer.getId(), target.getId());
} else if (memberOptional.isEmpty()) {
throw new PostjoinNotFoundException(member.getId());
throw new PostjoinNotFoundException(writer.getId());
} else if (targetOptional.isEmpty()) {
throw new PostjoinNotFoundException(target.getId());
}
Expand Down

0 comments on commit f56e3db

Please sign in to comment.