콘텐츠 고정, 해제 API 추가
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user