Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package com.web.baebaeBE.domain.Follow.dto;

import com.web.baebaeBE.domain.Follow.entity.Follow;
import com.web.baebaeBE.domain.member.dto.MemberResponse;
import com.web.baebaeBE.domain.member.entity.Member;
import lombok.*;

Expand All @@ -16,12 +14,14 @@ public static class FollowMemberResponse {
private Long memberId;
private String nickname;
private String profileImage;
private boolean following;

public static FollowMemberResponse of(Member member) {
public static FollowMemberResponse of(Member member, boolean isFollowing) {
return FollowMemberResponse.builder()
.memberId(member.getId())
.nickname(member.getNickname())
.profileImage(member.getProfileImage())
.following(isFollowing)
.build();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;

public interface FollowRepository extends JpaRepository<Follow, Long> {
Expand All @@ -22,7 +23,12 @@ public interface FollowRepository extends JpaRepository<Follow, Long> {
"FROM Follow f " +
"JOIN f.follower fol " +
"WHERE f.following.id = :memberId")
Page<Member> findAllFollowersByMemberId(@Param("memberId") Long memberId, Pageable pageable);
Page<Member> findAllFollowersByMemberId(
@Param("memberId") Long memberId,
Pageable pageable);

@Query("SELECT f.following.id FROM Follow f WHERE f.follower.id = :memberId")
List<Long> findAllFollowingIdsByMemberId(@Param("memberId") Long memberId);

@Query("SELECT fol " +
"FROM Follow f " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
import org.springframework.transaction.annotation.Transactional;

import java.time.LocalDateTime;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;

@Service
@Transactional
Expand Down Expand Up @@ -60,15 +62,23 @@ public void deleteFollower(Long followerId, Long followingId) {

// 나를 팔로우하는 사람들 리스트
public Page<FollowResponse.FollowMemberResponse> getFollowerList(Long memberId, Pageable page) {
return followRepository.findAllFollowersByMemberId(memberId, page)
.map(member -> FollowResponse.FollowMemberResponse.of(member));

Page<Member> members = followRepository.findAllFollowersByMemberId(memberId, page);

// 내가 팔로우하는 사람들의 ID 목록을 Set으로 조회
Set<Long> followingSet = new HashSet<>(followRepository.findAllFollowingIdsByMemberId(memberId));

// 팔로워 목록을 응답 객체로 변환 (각 팔로워에 대해 내가 팔로우하는지 확인)
return members.map(member ->
FollowResponse.FollowMemberResponse.of(member, followingSet.contains(member.getId()))
);

}

// 내가 팔로우하는 사람들 리스트
public Page<FollowResponse.FollowMemberResponse> getFollowingList(Long memberId, Pageable page) {
return followRepository.findAllFollowingsByMemberId(memberId, page)
.map(member -> FollowResponse.FollowMemberResponse.of(member));
.map(member -> FollowResponse.FollowMemberResponse.of(member, true));

}

Expand Down