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
18 changes: 18 additions & 0 deletions q
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
community-answer
coupon
feat/admin
feat/project-status
feat/recent-project
* feat/social-list
fix
follow
funding-rollback
main
mypage-maker
project-detail
query-test
refactor-img
refactor/funding
refactor/project-all
refactor/project-detail
socket
11 changes: 11 additions & 0 deletions src/main/java/NextLevel/demo/follow/FollowController.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

Expand All @@ -21,4 +22,14 @@ public ResponseEntity follow(@RequestBody @Valid FollowDto dto) {
return ResponseEntity.ok().body(new SuccessResponse("success", null));
}

@GetMapping("/social/user/follow-list")
public ResponseEntity getMyFollowList() {
return ResponseEntity.ok().body(new SuccessResponse("success", followService.followList(JWTUtil.getUserIdFromSecurityContext())));
}

@GetMapping("/social/user/follower-list")
public ResponseEntity getMyFollowerList() {
return ResponseEntity.ok().body(new SuccessResponse("success", followService.followerList(JWTUtil.getUserIdFromSecurityContext())));
}

}
27 changes: 22 additions & 5 deletions src/main/java/NextLevel/demo/follow/FollowRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,27 @@ public interface FollowRepository extends JpaRepository<FollowEntity, Long> {
"where t.id = 1 ")
SelectFollowCountAndIsFollowDao selectFollowCountAndFollowDao(@Param("targetUserId") Long targetUserId, @Param("userId") Long userId);

@Query("select f.user from FollowEntity f left join fetch f.user.img where f.target.id = :targetId")
List<UserEntity> gerFollowerList(@Param("targetId") Long targetId);

@Query("select f.target from FollowEntity f left join fetch f.target.img where f.user.id = :userId")
List<UserEntity> gerFollowList(@Param("userId") Long userId);
@Query("select new NextLevel.demo.follow.ResponseFollowDto(" +
"follower , " +
"(select count(f1) from FollowEntity f1 where f1.target.id = follower.id and f1.user.id = :targetId) as isFollow " +
")" +
"from FollowEntity f " +
"left join f.user follower " +
"left join fetch follower.img " +
"where f.target.id = :targetId " +
"group by f.user")
List<ResponseFollowDto> gerFollowerList(@Param("targetId") Long targetId);

@Query("select new NextLevel.demo.follow.ResponseFollowDto(" +
"follow , " +
"(select count(f1) from FollowEntity f1 where f1.user.id = follow.id and f1.target.id = :userId) as isFollow " +
")" +
"follow " +
"from FollowEntity f " +
"left join f.target follow " +
"left join fetch follow.img " +
"where f.user.id = :userId " +
"group by follow")
List<ResponseFollowDto> gerFollowList(@Param("userId") Long userId);

}
10 changes: 4 additions & 6 deletions src/main/java/NextLevel/demo/follow/FollowService.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,14 @@ public void follow(long userId, long targetId, boolean follow) {
}
}

public List<UserProfileDto> followerList(Long targetUserId) {
public List<ResponseFollowDto> followerList(Long targetUserId) {
userValidateService.findUserWithUserId(targetUserId);
List<UserEntity> followerList = followRepository.gerFollowerList(targetUserId);
return followerList.stream().map(UserProfileDto::of).toList();
return followRepository.gerFollowerList(targetUserId);
}

public List<UserProfileDto> followList(Long userId) {
public List<ResponseFollowDto> followList(Long userId) {
userValidateService.findUserWithUserId(userId);
List<UserEntity> followList = followRepository.gerFollowList(userId);
return followList.stream().map(UserProfileDto::of).toList();
return followRepository.gerFollowList(userId);
}

}
22 changes: 22 additions & 0 deletions src/main/java/NextLevel/demo/follow/ResponseFollowDto.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package NextLevel.demo.follow;

import NextLevel.demo.user.dto.user.response.UserProfileDto;
import NextLevel.demo.user.entity.UserEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@NoArgsConstructor
@Getter
@Setter
public class ResponseFollowDto {

private UserProfileDto user;
private boolean isFollow;

public ResponseFollowDto (UserEntity user, Long isFollow) {
this.user = UserProfileDto.of(user);
this.isFollow = isFollow!=null?isFollow.equals(1L):false;
}

}
12 changes: 0 additions & 12 deletions src/main/java/NextLevel/demo/user/controller/MypageController.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
public class MypageController {

private final MypageProjectSelectService mypageProjectSelectService;
private final FollowService followService;

// 내가 좋아요한, 내가 최근 조회한, 내가 펀딩한(with funding) with tag
@PostMapping("/project")
Expand All @@ -40,15 +39,4 @@ public ResponseEntity<?> myPageProjectListMaker(@RequestBody @Valid RequestMyPag
dto.setUserId(JWTUtil.getUserIdFromSecurityContext());
return ResponseEntity.status(HttpStatus.OK).body(new SuccessResponse("success", mypageProjectSelectService.mapageProjectListWithFunding(dto)));
}

@GetMapping("/follow-list")
public ResponseEntity getMyFollowList() {
return ResponseEntity.ok().body(new SuccessResponse("success", followService.followList(JWTUtil.getUserIdFromSecurityContext())));
}

@GetMapping("/follower-list")
public ResponseEntity getMyFollowerList() {
return ResponseEntity.ok().body(new SuccessResponse("success", followService.followerList(JWTUtil.getUserIdFromSecurityContext())));
}

}
Loading