From 32060bec7d992843b4731d375be06aa366c51e56 Mon Sep 17 00:00:00 2001 From: young970 Date: Mon, 11 Mar 2024 02:31:43 +0900 Subject: [PATCH] =?UTF-8?q?[Fix]:=20=EC=BB=B4=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=ED=95=B4=EA=B2=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../space/DefaultSpaceRepository.java | 11 +++-- .../repository/space/SpaceRepository.java | 2 + .../querydsl/SpaceQueryDslRepository.java | 45 +++++++++---------- .../domain/space/service/FavoriteService.java | 2 +- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/tenten/linkhub/domain/space/repository/space/DefaultSpaceRepository.java b/src/main/java/com/tenten/linkhub/domain/space/repository/space/DefaultSpaceRepository.java index 9b7af350..44cb8eb2 100644 --- a/src/main/java/com/tenten/linkhub/domain/space/repository/space/DefaultSpaceRepository.java +++ b/src/main/java/com/tenten/linkhub/domain/space/repository/space/DefaultSpaceRepository.java @@ -43,12 +43,6 @@ public Space getById(Long spaceId) { .orElseThrow(() -> new DataNotFoundException("해당 spaceId를 가진 Space를 찾을 수 없습니다.")); } - @Override - public Space getByIdWhitLock(Long spaceId) { - return spaceJpaRepository.findByIdWithLock(spaceId) - .orElseThrow(() -> new DataNotFoundException("해당 spaceId를 가진 Space를 찾을 수 없습니다.")); - } - @Override public Space getSpaceJoinSpaceMemberById(Long spaceId) { return spaceJpaRepository.findSpaceJoinSpaceMemberById(spaceId) @@ -60,6 +54,11 @@ public Slice findMemberSpacesJoinSpaceImageByQu return spaceQueryDslRepository.findMemberSpacesJoinSpaceImageByCondition(queryCondition); } + @Override + public Slice findPublicSpacesJoinSpaceImageByLikeQuery(QueryCondition queryCondition) { + return spaceQueryDslRepository.findPublicSpacesJoinSpaceImageByConditionWithLikeQuery(queryCondition); + } + @Override public void increaseScrapCount(Long spaceId) { spaceJpaRepository.increaseScrapCount(spaceId); diff --git a/src/main/java/com/tenten/linkhub/domain/space/repository/space/SpaceRepository.java b/src/main/java/com/tenten/linkhub/domain/space/repository/space/SpaceRepository.java index 4a435e83..99608756 100644 --- a/src/main/java/com/tenten/linkhub/domain/space/repository/space/SpaceRepository.java +++ b/src/main/java/com/tenten/linkhub/domain/space/repository/space/SpaceRepository.java @@ -22,6 +22,8 @@ public interface SpaceRepository { Slice findMemberSpacesJoinSpaceImageByQuery(MemberSpacesQueryCondition queryCondition); + Slice findPublicSpacesJoinSpaceImageByLikeQuery(QueryCondition queryCondition); + void increaseScrapCount(Long spaceId); Space getByIdWithPessimisticLock(Long spaceId); diff --git a/src/main/java/com/tenten/linkhub/domain/space/repository/space/querydsl/SpaceQueryDslRepository.java b/src/main/java/com/tenten/linkhub/domain/space/repository/space/querydsl/SpaceQueryDslRepository.java index d2a37d6c..c571d251 100644 --- a/src/main/java/com/tenten/linkhub/domain/space/repository/space/querydsl/SpaceQueryDslRepository.java +++ b/src/main/java/com/tenten/linkhub/domain/space/repository/space/querydsl/SpaceQueryDslRepository.java @@ -76,7 +76,7 @@ public Slice searchPublicSpacesJoinSpaceImageBy .leftJoin(member).on(space.memberId.eq(member.id)) .where(space.isDeleted.eq(false), space.isVisible.eq(true), - dynamicQueryFactory.eqSpaceNameWithPlus(condition.keyWord()), + dynamicQueryFactory.eqSpaceName(condition.keyWord()), dynamicQueryFactory.eqCategory(condition.filter()) ) .orderBy(dynamicQueryFactory.spaceSort(condition.pageable().getSort())) @@ -110,7 +110,7 @@ public Slice findMemberSpacesJoinSpaceImageByCo .where(spaceMember.memberId.eq(condition.memberId()), space.isDeleted.eq(false), dynamicQueryFactory.eqIsVisible(condition.isMySpace()), - dynamicQueryFactory.eqSpaceNameWithPlus(condition.keyWord()), + dynamicQueryFactory.eqSpaceName(condition.keyWord()), dynamicQueryFactory.eqCategory(condition.filter()) ) .orderBy(space.id.desc()) @@ -133,21 +133,6 @@ public Slice findMemberSpacesJoinSpaceImageByCo return new SliceImpl<>(contents, condition.pageable(), hasNext); } - private List findSpaceImagesBySpaceIds(List spaceIds) { - return queryFactory - .selectFrom(spaceImage) - .where(spaceImage.space.id.in(spaceIds), - spaceImage.isDeleted.eq(false)) - .fetch(); - } - - private static List getSpaceIds(List spaceAndOwnerNickNames) { - return spaceAndOwnerNickNames - .stream() - .map(s -> s.space().getId()) - .toList(); - } - public Slice findPublicSpacesJoinSpaceImageByConditionWithLikeQuery(QueryCondition condition) { List spaceAndOwnerNickNames = queryFactory .select(new QSpaceAndOwnerNickName( @@ -161,18 +146,16 @@ public Slice findPublicSpacesJoinSpaceImageByCo dynamicQueryFactory.eqSpaceNameWithLikeQuery(condition.keyWord()), dynamicQueryFactory.eqCategory(condition.filter()) ) - .orderBy(dynamicQueryFactory.spaceSort(condition.pageable())) + .orderBy(space.createdAt.desc()) .offset(condition.pageable().getOffset()) .limit(condition.pageable().getPageSize() + 1) .fetch(); List spaceIds = getSpaceIds(spaceAndOwnerNickNames); - List spaceImages = findSpaceImagesBySpaceIds(spaceIds); - SpaceAndSpaceImageOwnerNickNames spaceAndSpaceImageOwnerNickNames = SpaceAndSpaceImageOwnerNickNames.of(spaceAndOwnerNickNames, spaceImages); - - List contents = spaceAndSpaceImageOwnerNickNames.contents(); + List contents = mapper.toSpaceAndSpaceImageOwnerNickNames(spaceAndOwnerNickNames, spaceImages); + ; boolean hasNext = false; if (contents.size() > condition.pageable().getPageSize()) { @@ -182,4 +165,20 @@ public Slice findPublicSpacesJoinSpaceImageByCo return new SliceImpl<>(contents, condition.pageable(), hasNext); } -} + + private List findSpaceImagesBySpaceIds(List spaceIds) { + return queryFactory + .selectFrom(spaceImage) + .where(spaceImage.space.id.in(spaceIds), + spaceImage.isDeleted.eq(false)) + .fetch(); + } + + private static List getSpaceIds(List spaceAndOwnerNickNames) { + return spaceAndOwnerNickNames + .stream() + .map(s -> s.space().getId()) + .toList(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/tenten/linkhub/domain/space/service/FavoriteService.java b/src/main/java/com/tenten/linkhub/domain/space/service/FavoriteService.java index 327e5160..5b26ace2 100644 --- a/src/main/java/com/tenten/linkhub/domain/space/service/FavoriteService.java +++ b/src/main/java/com/tenten/linkhub/domain/space/service/FavoriteService.java @@ -47,7 +47,7 @@ public SpaceRegisterInFavoriteResponse createFavorite(Long spaceId, Long memberI @Transactional public SpaceRegisterInFavoriteResponse createFavoriteWithLock(Long spaceId, Long memberId) { - Space space = spaceRepository.getByIdWhitLock(spaceId); + Space space = spaceRepository.getByIdWithPessimisticLock(spaceId); Favorite favorite = mapper.toFavorite(space, memberId); Favorite savedFavorite = favoriteRepository.save(favorite);