From c15c585351dea2e33fb5005fb376eaaf7d224837 Mon Sep 17 00:00:00 2001 From: Choi YoungLyn Date: Tue, 4 Jun 2024 19:14:28 +0900 Subject: [PATCH] =?UTF-8?q?[Fix]=20#286=20-=20=EC=86=8C=EC=85=9C=20API=20?= =?UTF-8?q?=EC=BF=BC=EB=A6=AC=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moonshot/objective/service/ObjectiveService.java | 7 ++++--- .../repository/ObjectiveCustomRepositoryImpl.java | 12 +++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/moonshot-api/src/main/java/org/moonshot/objective/service/ObjectiveService.java b/moonshot-api/src/main/java/org/moonshot/objective/service/ObjectiveService.java index 86536eb..ff9acad 100644 --- a/moonshot-api/src/main/java/org/moonshot/objective/service/ObjectiveService.java +++ b/moonshot-api/src/main/java/org/moonshot/objective/service/ObjectiveService.java @@ -11,9 +11,7 @@ import static org.moonshot.validator.IndexValidator.isSameIndex; import java.time.LocalDate; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.moonshot.common.model.Period; @@ -144,7 +142,10 @@ public HistoryResponseDto getObjectiveHistory(final Long userId, final Integer y @Transactional(readOnly = true) public List getObjectiveSocial() { List objectives = objectiveRepository.findSocialObjectives(); + Set objectiveIds = new LinkedHashSet<>(); + return objectives.stream() + .filter(objective -> objectiveIds.add(objective.getId())) .map(SocialOKRResponseDto::of) .toList(); } diff --git a/moonshot-domain/src/main/java/org/moonshot/objective/repository/ObjectiveCustomRepositoryImpl.java b/moonshot-domain/src/main/java/org/moonshot/objective/repository/ObjectiveCustomRepositoryImpl.java index 350884f..d8a5996 100644 --- a/moonshot-domain/src/main/java/org/moonshot/objective/repository/ObjectiveCustomRepositoryImpl.java +++ b/moonshot-domain/src/main/java/org/moonshot/objective/repository/ObjectiveCustomRepositoryImpl.java @@ -3,11 +3,17 @@ import static org.moonshot.keyresult.model.QKeyResult.keyResult; import static org.moonshot.objective.model.QObjective.objective; import static org.moonshot.task.model.QTask.task; +import static org.moonshot.user.model.QUser.user; import com.querydsl.core.types.OrderSpecifier; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.impl.JPAQueryFactory; + +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.hibernate.Hibernate; @@ -72,12 +78,12 @@ private OrderSpecifier order(Criteria criteria) { @Override public List findSocialObjectives() { - return queryFactory.selectFrom(objective).distinct() - .join(objective.user).fetchJoin() + return queryFactory.selectFrom(objective) + .join(objective.user, user).fetchJoin() .leftJoin(objective.keyResultList, keyResult).fetchJoin() .leftJoin(keyResult.taskList, task) .where(objective.isPublic.eq(true)) - .orderBy(objective.heartCount.desc(), objective.id.desc(), keyResult.idx.asc(), task.id.asc()) + .orderBy(objective.heartCount.desc(), objective.id.desc(), keyResult.idx.asc(), task.idx.asc()) .limit(10) .fetch(); }