feat(recommend): 콘텐츠 조회 이력 저장 어댑터를 추가한다
This commit is contained in:
@@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user