시그니처
- 19금 여부 추가
This commit is contained in:
@@ -10,6 +10,7 @@ import javax.persistence.ManyToOne
|
||||
@Entity
|
||||
data class SignatureCan(
|
||||
val can: Int,
|
||||
var isAdult: Boolean = false,
|
||||
var isActive: Boolean = true
|
||||
) : BaseEntity() {
|
||||
var image: String? = null
|
||||
|
@@ -7,19 +7,24 @@ import org.springframework.data.jpa.repository.JpaRepository
|
||||
interface SignatureCanRepository : JpaRepository<SignatureCan, Long>, SignatureCanQueryRepository
|
||||
|
||||
interface SignatureCanQueryRepository {
|
||||
fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String?
|
||||
fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String, isAdult: Boolean): String?
|
||||
}
|
||||
|
||||
class SignatureCanQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : SignatureCanQueryRepository {
|
||||
override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String): String? {
|
||||
override fun findImageByCreatorIdAndCan(creatorId: Long, can: Int, imageHost: String, isAdult: Boolean): String? {
|
||||
var where = signatureCan.creator.id.eq(creatorId)
|
||||
.and(signatureCan.can.eq(can))
|
||||
.and(signatureCan.isActive.isTrue)
|
||||
|
||||
if (!isAdult) {
|
||||
where = where.and(signatureCan.isAdult.isFalse())
|
||||
}
|
||||
|
||||
return queryFactory
|
||||
.select(signatureCan.image.prepend("/").prepend(imageHost))
|
||||
.from(signatureCan)
|
||||
.where(
|
||||
signatureCan.creator.id.eq(creatorId)
|
||||
.and(signatureCan.can.eq(can))
|
||||
.and(signatureCan.isActive.isTrue)
|
||||
)
|
||||
.where(where)
|
||||
.orderBy(signatureCan.isAdult.desc())
|
||||
.fetchFirst()
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user