From 03c341097af5c4868d7bfcaed08d70584f3ddf6b Mon Sep 17 00:00:00 2001 From: Hank-Choi Date: Thu, 25 Apr 2024 13:48:28 +0900 Subject: [PATCH 1/8] =?UTF-8?q?lecture=20id=20=EC=98=A4=EB=A5=98=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/com/wafflestudio/snuttev/config/SnuttUserFilter.kt | 2 +- .../domain/lecture/repository/SnuttLectureIdMapRepository.kt | 4 +--- .../snuttev/core/domain/lecture/service/LectureService.kt | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/api/src/main/kotlin/com/wafflestudio/snuttev/config/SnuttUserFilter.kt b/api/src/main/kotlin/com/wafflestudio/snuttev/config/SnuttUserFilter.kt index 6dcc91d..f608bc6 100644 --- a/api/src/main/kotlin/com/wafflestudio/snuttev/config/SnuttUserFilter.kt +++ b/api/src/main/kotlin/com/wafflestudio/snuttev/config/SnuttUserFilter.kt @@ -22,7 +22,7 @@ class SnuttUserFilter : OncePerRequestFilter() { override fun shouldNotFilter(request: HttpServletRequest): Boolean { val path = request.requestURI - val excludePath = listOf("/v1/lectures/snutt-summary") + val excludePath = listOf("/v1/lectures/snutt-summary", "/v1/lectures/ids") return excludePath.contains(path) } } diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/SnuttLectureIdMapRepository.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/SnuttLectureIdMapRepository.kt index 1844958..114245f 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/SnuttLectureIdMapRepository.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/SnuttLectureIdMapRepository.kt @@ -6,8 +6,6 @@ import org.springframework.data.jpa.repository.Query interface SnuttLectureIdMapRepository : JpaRepository { @Query("SELECT ttm FROM SnuttLectureIdMap ttm JOIN FETCH ttm.semesterLecture WHERE ttm.snuttId IN :snuttIds") - fun findAllWithSemesterLectureBySnuttIds(snuttIds: List): List - - fun findAllBySnuttIdIn(snuttIds: List): List + fun findAllWithSemesterLectureBySnuttIdIn(snuttIds: List): List fun findBySnuttId(snuttId: String): SnuttLectureIdMap? } diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt index ac0d096..2d713d8 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt @@ -127,12 +127,12 @@ class LectureService( } fun getLectureIdsFromSnuttIds(snuttIds: List): List { - val snuttLectureIdMaps = snuttLectureIdMapRepository.findAllBySnuttIdIn(snuttIds) + val snuttLectureIdMaps = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIdIn(snuttIds) return snuttLectureIdMaps.map { LectureIdResponse(it.semesterLecture.lecture.id!!, it.snuttId) } } fun getEvLectureSummaryForSnutt(semesterLectureSnuttIds: List): List { - val snuttIdLectureIdMap = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIds(semesterLectureSnuttIds) + val snuttIdLectureIdMap = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIdIn(semesterLectureSnuttIds) .associate { it.semesterLecture.lecture.id!! to it.snuttId } val lectureIds = snuttIdLectureIdMap.keys val ratingMap = lectureRepository.findAllRatingsByLectureIds(lectureIds) From 6e058431cb2fc1c0910e17906535255ceb95b9b5 Mon Sep 17 00:00:00 2001 From: Hank-Choi Date: Thu, 25 Apr 2024 13:52:29 +0900 Subject: [PATCH 2/8] =?UTF-8?q?=EC=8B=A0=EA=B7=9C=20api=20camelCase?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snuttev/core/domain/lecture/dto/LectureResponse.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt index aca94cc..cec6386 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt @@ -1,5 +1,7 @@ package com.wafflestudio.snuttev.core.domain.lecture.dto +import com.fasterxml.jackson.databind.PropertyNamingStrategies +import com.fasterxml.jackson.databind.annotation.JsonNaming import com.wafflestudio.snuttev.core.common.type.LectureClassification import com.wafflestudio.snuttev.core.domain.evaluation.dto.SemesterLectureDto @@ -33,6 +35,7 @@ data class LectureAndSemesterLecturesResponse( val semesterLectures: List, ) +@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy::class) data class LectureIdResponse( // FIXME: evLectureId로 대체되므로 삭제 (evLectureId 생성: 2024-04-14) val id: Long, @@ -54,6 +57,7 @@ data class LectureTakenByUserResponse( val takenSemester: Int, ) +@JsonNaming(PropertyNamingStrategies.LowerCamelCaseStrategy::class) data class EvLectureSummaryForSnutt( val snuttId: String, val evLectureId: Long, From cd48e1f3d7dfbe9451c76b355c87fbdff1271037 Mon Sep 17 00:00:00 2001 From: Hank-Choi Date: Wed, 29 May 2024 23:20:09 +0900 Subject: [PATCH 3/8] =?UTF-8?q?=EA=B0=95=EC=9D=98=ED=8F=89=20count?= =?UTF-8?q?=EB=8F=84=20=EA=B0=99=EC=9D=B4=20=EB=82=B4=EB=A0=A4=EC=A3=BC?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snuttev/core/domain/lecture/dto/LectureResponse.kt | 1 + .../snuttev/core/domain/lecture/model/Lecture.kt | 1 + .../core/domain/lecture/repository/LectureRepository.kt | 2 +- .../snuttev/core/domain/lecture/service/LectureService.kt | 6 +++--- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt index cec6386..4690e10 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt @@ -62,4 +62,5 @@ data class EvLectureSummaryForSnutt( val snuttId: String, val evLectureId: Long, val avgRating: Double?, + val evaluationCount: Long? ) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/model/Lecture.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/model/Lecture.kt index 629a155..3c619e9 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/model/Lecture.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/model/Lecture.kt @@ -65,4 +65,5 @@ data class LectureEvaluationSummaryDao( data class LectureRatingDao( val id: Long, val avgRating: Double?, + val count: Long, ) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/LectureRepository.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/LectureRepository.kt index 194e1d4..7df3af5 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/LectureRepository.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/repository/LectureRepository.kt @@ -27,7 +27,7 @@ interface LectureRepository : JpaRepository, LectureRepositoryCu @Query( """ select new com.wafflestudio.snuttev.core.domain.lecture.model.LectureRatingDao( - sl.lecture.id, avg(le.rating) + sl.lecture.id, avg(le.rating), count(le.id) ) from LectureEvaluation le right join le.semesterLecture sl where sl.lecture.id in :ids and le.isHidden = false group by sl.lecture.id """, ) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt index 2d713d8..7e570c0 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt @@ -135,13 +135,13 @@ class LectureService( val snuttIdLectureIdMap = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIdIn(semesterLectureSnuttIds) .associate { it.semesterLecture.lecture.id!! to it.snuttId } val lectureIds = snuttIdLectureIdMap.keys - val ratingMap = lectureRepository.findAllRatingsByLectureIds(lectureIds) - .associate { it.id to it.avgRating } + val evMap = lectureRepository.findAllRatingsByLectureIds(lectureIds).associateBy { it.id } return lectureIds.map { EvLectureSummaryForSnutt( snuttId = snuttIdLectureIdMap[it]!!, evLectureId = it, - avgRating = ratingMap[it], + avgRating = evMap[it]?.avgRating, + evaluationCount = evMap[it]?.count ?: 0L, ) } } From 581e293bf221265ab6bb7ea289f13dffc3612acd Mon Sep 17 00:00:00 2001 From: Hank-Choi Date: Wed, 29 May 2024 23:21:56 +0900 Subject: [PATCH 4/8] Fix typo --- .../snuttev/core/domain/lecture/dto/LectureResponse.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt index 4690e10..307b4dc 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt @@ -62,5 +62,5 @@ data class EvLectureSummaryForSnutt( val snuttId: String, val evLectureId: Long, val avgRating: Double?, - val evaluationCount: Long? + val evaluationCount: Long ) From 8659401fc1ee3aded5c7d5980c45bbcd8585f548 Mon Sep 17 00:00:00 2001 From: Chanyeong Lim Date: Thu, 6 Jun 2024 02:09:45 +0900 Subject: [PATCH 5/8] =?UTF-8?q?snuttId=20=EB=A7=88=EB=8B=A4=20evLectureId?= =?UTF-8?q?=20=EB=B3=B4=EB=82=B4=EA=B2=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/lecture/service/LectureService.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt index 7e570c0..1484cae 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt @@ -133,15 +133,15 @@ class LectureService( fun getEvLectureSummaryForSnutt(semesterLectureSnuttIds: List): List { val snuttIdLectureIdMap = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIdIn(semesterLectureSnuttIds) - .associate { it.semesterLecture.lecture.id!! to it.snuttId } - val lectureIds = snuttIdLectureIdMap.keys + .associate { it.snuttId to it.semesterLecture.lecture.id!! } + val lectureIds = snuttIdLectureIdMap.values val evMap = lectureRepository.findAllRatingsByLectureIds(lectureIds).associateBy { it.id } - return lectureIds.map { + return snuttIdLectureIdMap.map { EvLectureSummaryForSnutt( - snuttId = snuttIdLectureIdMap[it]!!, - evLectureId = it, - avgRating = evMap[it]?.avgRating, - evaluationCount = evMap[it]?.count ?: 0L, + snuttId = it.key, + evLectureId = it.value, + avgRating = evMap[it.value]?.avgRating, + evaluationCount = evMap[it.value]?.count ?: 0L, ) } } From 8063b4d57d571643d3774a0a9c85564f32458c1f Mon Sep 17 00:00:00 2001 From: Chanyeong Lim Date: Sun, 9 Jun 2024 11:46:12 +0900 Subject: [PATCH 6/8] =?UTF-8?q?ktlint=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snuttev/core/domain/lecture/dto/LectureResponse.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt index 307b4dc..3b5055f 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/dto/LectureResponse.kt @@ -62,5 +62,5 @@ data class EvLectureSummaryForSnutt( val snuttId: String, val evLectureId: Long, val avgRating: Double?, - val evaluationCount: Long + val evaluationCount: Long, ) From 63c59496d6e78ad54be9833052ec81b8c9a78681 Mon Sep 17 00:00:00 2001 From: Chanyeong Lim Date: Sun, 9 Jun 2024 12:19:19 +0900 Subject: [PATCH 7/8] =?UTF-8?q?map=EC=9C=BC=EB=A1=9C=20=EB=A7=8C=EB=93=9C?= =?UTF-8?q?=EB=8A=94=20=EB=B6=80=EB=B6=84=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/lecture/service/LectureService.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt index 1484cae..e322f14 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt @@ -132,16 +132,16 @@ class LectureService( } fun getEvLectureSummaryForSnutt(semesterLectureSnuttIds: List): List { - val snuttIdLectureIdMap = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIdIn(semesterLectureSnuttIds) - .associate { it.snuttId to it.semesterLecture.lecture.id!! } - val lectureIds = snuttIdLectureIdMap.values + val snuttLectureIdMaps = snuttLectureIdMapRepository.findAllWithSemesterLectureBySnuttIdIn(semesterLectureSnuttIds) + val lectureIds = snuttLectureIdMaps.map { it.semesterLecture.lecture.id!! } val evMap = lectureRepository.findAllRatingsByLectureIds(lectureIds).associateBy { it.id } - return snuttIdLectureIdMap.map { + return snuttLectureIdMaps.map { + val evLectureId = it.semesterLecture.lecture.id!! EvLectureSummaryForSnutt( - snuttId = it.key, - evLectureId = it.value, - avgRating = evMap[it.value]?.avgRating, - evaluationCount = evMap[it.value]?.count ?: 0L, + snuttId = it.snuttId, + evLectureId = evLectureId, + avgRating = evMap[evLectureId]?.avgRating, + evaluationCount = evMap[evLectureId]?.count ?: 0L, ) } } From a50561a15b9ec92a7a04445f1676a19be98bed03 Mon Sep 17 00:00:00 2001 From: Hank-Choi Date: Mon, 1 Jul 2024 23:17:49 +0900 Subject: [PATCH 8/8] =?UTF-8?q?=EB=B2=84=EA=B7=B8=20Fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snuttev/core/domain/lecture/service/LectureService.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt index 7e570c0..8bf982a 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/lecture/service/LectureService.kt @@ -85,7 +85,7 @@ class LectureService( .ifEmpty { throw LectureNotFoundException } .let { semesterLectures -> val (year, nextSemester) = semesterUtils.getYearAndSemesterOfNextSemester() - semesterLectures.dropWhile { it.year == year && it.semester == nextSemester.value } + semesterLectures.filterNot { it.year == year && it.semester == nextSemester.value } } val firstSemesterLectureWithLecture = semesterLecturesWithLecture.first()