feat(recommend): 콘텐츠 조회 이력 저장 어댑터를 추가한다

This commit is contained in:
2026-05-31 18:18:50 +09:00
parent 70832a10b9
commit 2ef8e8e489
2 changed files with 135 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
package kr.co.vividnext.sodalive.v2.recommend.adapter.out.persistence
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.content.QAudioContent.audioContent
import kr.co.vividnext.sodalive.content.theme.QAudioContentTheme.audioContentTheme
import kr.co.vividnext.sodalive.v2.recommend.port.out.CreatorContentViewHistoryPort
import kr.co.vividnext.sodalive.v2.recommend.port.out.CreatorContentViewHistoryRecord
import org.springframework.stereotype.Repository
@Repository
class CreatorContentViewHistoryPersistenceAdapter(
private val repository: CreatorContentViewHistoryRepository,
private val queryFactory: JPAQueryFactory
) : CreatorContentViewHistoryPort {
override fun findGenreIdByContentId(contentId: Long): Long? {
return queryFactory
.select(audioContentTheme.id)
.from(audioContent)
.innerJoin(audioContent.theme, audioContentTheme)
.where(
audioContent.id.eq(contentId),
audioContent.isActive.isTrue,
audioContentTheme.isActive.isTrue
)
.fetchFirst()
}
override fun save(record: CreatorContentViewHistoryRecord) {
repository.save(
CreatorContentViewHistory(
memberId = record.memberId,
contentId = record.contentId,
genreId = record.genreId,
viewedAt = record.viewedAt
)
)
}
}