콘텐츠 고정, 해제 API 추가

This commit is contained in:
2024-01-26 23:36:17 +09:00
parent 3ea6b5824b
commit 711842f00d
4 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
package kr.co.vividnext.sodalive.content.pin
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.content.AudioContent
import kr.co.vividnext.sodalive.member.Member
import javax.persistence.Entity
import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.ManyToOne
@Entity
data class PinContent(var isActive: Boolean = true) : BaseEntity() {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id", nullable = false)
var member: Member? = null
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "content_id", nullable = false)
var content: AudioContent? = null
}

View File

@@ -0,0 +1,33 @@
package kr.co.vividnext.sodalive.content.pin
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.content.pin.QPinContent.pinContent
import org.springframework.data.jpa.repository.JpaRepository
interface PinContentRepository : JpaRepository<PinContent, Long>, PinContentQueryRepository
interface PinContentQueryRepository {
fun getPinContentList(memberId: Long): List<PinContent>
fun findByContentIdAndMemberId(contentId: Long, memberId: Long): PinContent?
}
class PinContentQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : PinContentQueryRepository {
override fun getPinContentList(memberId: Long): List<PinContent> {
return queryFactory
.selectFrom(pinContent)
.where(pinContent.member.id.eq(memberId))
.orderBy(pinContent.updatedAt.asc())
.fetch()
}
override fun findByContentIdAndMemberId(contentId: Long, memberId: Long): PinContent? {
return queryFactory
.selectFrom(pinContent)
.where(
pinContent.content.id.eq(contentId)
.and(pinContent.member.id.eq(memberId))
)
.fetchFirst()
}
}