Skip to content

Commit b845dcc

Browse files
committed
fix: fix recommendation logic
1 parent 20db975 commit b845dcc

File tree

4 files changed

+14
-23
lines changed

4 files changed

+14
-23
lines changed

.DS_Store

6 KB
Binary file not shown.

src/main/java/com/climbup/climbup/recommendation/repository/RecommendationRepository.java

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,12 @@
99
import java.util.List;
1010

1111
public interface RecommendationRepository extends JpaRepository<ChallengeRecommendation, Long> {
12-
@Query("""
13-
SELECT DISTINCT cr
14-
FROM ChallengeRecommendation cr
15-
JOIN FETCH cr.mission rm
16-
JOIN FETCH rm.sector s
17-
WHERE cr.session = :session
18-
AND NOT EXISTS (
19-
SELECT 1
20-
FROM UserMissionAttempt a
21-
WHERE a.mission = rm
22-
AND a.user = cr.session.user
23-
AND a.success = TRUE
24-
)
25-
ORDER BY cr.recommendedOrder
26-
""")
27-
List<ChallengeRecommendation> findNotSolvedRecommendationsBySession(@Param("session") UserSession session);
12+
@Query("SELECT DISTINCT cr FROM ChallengeRecommendation cr " +
13+
"JOIN FETCH cr.mission rm " +
14+
"LEFT JOIN FETCH rm.attempts " +
15+
"JOIN FETCH rm.sector " +
16+
"WHERE cr.session = :session " +
17+
"ORDER BY cr.recommendedOrder")
18+
List<ChallengeRecommendation> findBySession(@Param("session") UserSession session);
2819

2920
}

src/main/java/com/climbup/climbup/recommendation/service/RecommendationServiceImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public class RecommendationServiceImpl implements RecommendationService{
4141
public void generateRecommendationsForSession(UserSession session){
4242
User user = session.getUser();
4343

44-
List<RouteMission> routeMissions = routeMissionRepository.findUnattemptedRouteMissionsByUser(user.getId());
44+
List<RouteMission> routeMissions = routeMissionRepository.findNotSucceededMissionsByUser(user.getId());
4545

4646
AtomicInteger index = new AtomicInteger(0);
4747

@@ -66,7 +66,7 @@ public void generateRecommendationsForSession(UserSession session){
6666
public List<RouteMissionRecommendationResponse> getRecommendationsByUserActiveSession(Long userId) {
6767
UserSession session = userSessionRepository.findByUserIdAndEndedAtIsNull(userId).orElseThrow(UserSessionNotFoundException::new);
6868

69-
List<ChallengeRecommendation> recommendations = recommendationRepository.findNotSolvedRecommendationsBySession(session);
69+
List<ChallengeRecommendation> recommendations = recommendationRepository.findBySession(session);
7070

7171
return recommendations.stream().map(recommendation -> {
7272
RouteMission routeMission = recommendation.getMission();
@@ -85,7 +85,7 @@ public List<RouteMissionRecommendationResponse> getRecommendationsByUserAttempt(
8585

8686
UserSession session = attempt.getSession();
8787

88-
List<ChallengeRecommendation> recommendations = recommendationRepository.findNotSolvedRecommendationsBySession(session);
88+
List<ChallengeRecommendation> recommendations = recommendationRepository.findBySession(session);
8989

9090
ChallengeRecommendation targetRecommendation = recommendations.stream()
9191
.filter(recommendation -> recommendation.getMission().getId().equals(attempt.getMission().getId()))

src/main/java/com/climbup/climbup/route/repository/RouteMissionRepository.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public interface RouteMissionRepository extends JpaRepository<RouteMission, Long
1818
WHERE NOT EXISTS (
1919
SELECT 1
2020
FROM UserMissionAttempt a
21-
WHERE a.mission = rm
21+
WHERE a.mission.id = rm.id
2222
AND a.user.id = :userId
23-
AND a.success = TRUE
23+
AND a.success IS TRUE
2424
)
25-
""")
26-
List<RouteMission> findUnattemptedRouteMissionsByUser(@Param("userId") Long userId);
25+
""")
26+
List<RouteMission> findNotSucceededMissionsByUser(@Param("userId") Long userId);
2727

2828
Optional<RouteMission> findByIdAndRemovedAtIsNull(Long id);
2929

0 commit comments

Comments
 (0)