시그니처

- 19금 여부 추가
This commit is contained in:
2024-03-13 16:21:10 +09:00
parent 536923c00b
commit 5732ecfbfa
7 changed files with 45 additions and 20 deletions

View File

@@ -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

View File

@@ -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()
}
}