Skip to content

Commit 68623f1

Browse files
authored
fix: 유저 프로필에서 scrap 정보를 올바르게 가져오도록 수정한다. (#133)
1 parent eff99f5 commit 68623f1

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

src/main/java/org/runnect/server/course/repository/CourseRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public interface CourseRepository extends JpaRepository<Course, Long> {
2525
@Query("select c from Course c join fetch c.runnectUser where c.runnectUser.id = :userId and c.isPrivate = true and c.deletedAt = null order by c.createdAt desc")
2626
List<Course> findCourseByUserIdOnlyPrivate(@Param("userId") Long userId);
2727

28-
@Query("select c from Course c where c.runnectUser = :runnectUser and c.isPrivate = false and c.deletedAt = null order by c.createdAt desc")
28+
@Query("select c from Course c join fetch c.publicCourse where c.runnectUser = :runnectUser and c.isPrivate = false and c.deletedAt = null order by c.createdAt desc")
2929
List<Course> findCoursesForUserProfile(@Param("runnectUser") RunnectUser runnectUser);
3030

3131
List<Course> findCoursesByRunnectUserAndIsPrivateIsFalseAndDeletedAtIsNull(RunnectUser runnectUser);

src/main/java/org/runnect/server/scrap/repository/ScrapRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ public interface ScrapRepository extends Repository<Scrap, Long> {
2525

2626
Boolean existsByPublicCourseAndRunnectUser(PublicCourse publicCourse, RunnectUser runnectUser);
2727

28+
@Query("select s.publicCourse.id from Scrap s where s.runnectUser = :runnectUser and s.scrapTF = true")
29+
List<Long> getScrappedTruePublicCourseIds(@Param("runnectUser") RunnectUser runnectUser);
30+
2831
// DELETE
2932
Long deleteByPublicCourseIn(Collection<PublicCourse> publicCourses);
3033

src/main/java/org/runnect/server/user/service/UserService.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@
77
import org.runnect.server.common.constant.ErrorStatus;
88
import org.runnect.server.common.exception.UnauthorizedException;
99
import org.runnect.server.course.repository.CourseRepository;
10-
import org.runnect.server.user.dto.request.UpdateUserNicknameRequestDto;
1110
import org.runnect.server.publicCourse.entity.PublicCourse;
1211
import org.runnect.server.scrap.repository.ScrapRepository;
12+
import org.runnect.server.user.dto.request.UpdateUserNicknameRequestDto;
13+
import org.runnect.server.user.dto.response.DeleteUserResponseDto;
1314
import org.runnect.server.user.dto.response.MyPageResponseDto;
1415
import org.runnect.server.user.dto.response.UpdateUserNicknameResponseDto;
1516
import org.runnect.server.user.dto.response.UserProfileResponseDto;
1617
import org.runnect.server.user.dto.response.UserProfileResponseDto.PublicCourseResponse;
1718
import org.runnect.server.user.dto.response.UserProfileResponseDto.UserProfile;
18-
import org.runnect.server.user.dto.response.DeleteUserResponseDto;
19-
2019
import org.runnect.server.user.entity.RunnectUser;
2120
import org.runnect.server.user.entity.SocialType;
2221
import org.runnect.server.user.exception.userException.DuplicateNicknameException;
@@ -72,13 +71,15 @@ public UserProfileResponseDto getUserProfile(Long profileUserId, Long requestUse
7271
.orElseThrow(() -> new NotFoundUserException(ErrorStatus.NOT_FOUND_USER_EXCEPTION,
7372
ErrorStatus.NOT_FOUND_USER_EXCEPTION.getMessage()));
7473

74+
List<Long> scrappedPublicCourseIds = scrapRepository.getScrappedTruePublicCourseIds(requestUser);
75+
7576
List<PublicCourse> publicCourses = courseRepository.findCoursesForUserProfile(profileUser)
7677
.stream().map(course -> course.getPublicCourse()).collect(Collectors.toList());
7778

7879
List<PublicCourseResponse> publicCourseResponses = publicCourses.stream()
7980
.map(publicCourse ->
8081
PublicCourseResponse.of(publicCourse, publicCourse.getCourse(),
81-
scrapRepository.existsByPublicCourseAndRunnectUser(publicCourse, requestUser)))
82+
scrappedPublicCourseIds.contains(publicCourse.getId())))
8283
.collect(Collectors.toList());
8384

8485
return UserProfileResponseDto.of(userProfile, publicCourseResponses);

0 commit comments

Comments
 (0)