feat(channel-donation): 원본을 보존하는 후원 숨김 저장 모델을 추가한다
This commit is contained in:
+3
@@ -15,6 +15,9 @@ class ChannelDonationMessage(
|
||||
@Column(columnDefinition = "TEXT")
|
||||
var additionalMessage: String? = null
|
||||
) : BaseEntity() {
|
||||
@Column(nullable = false)
|
||||
var isHidden: Boolean = false
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "member_id", nullable = false)
|
||||
var member: Member? = null
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package kr.co.vividnext.sodalive.v2.creator.channel.donation.adapter.out.persistence
|
||||
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory
|
||||
import kr.co.vividnext.sodalive.explorer.profile.channelDonation.QChannelDonationMessage.channelDonationMessage
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.donation.port.out.HideCreatorChannelDonationPort
|
||||
import org.springframework.stereotype.Repository
|
||||
import org.springframework.transaction.annotation.Transactional
|
||||
|
||||
@Repository
|
||||
class DefaultHideCreatorChannelDonationRepository(
|
||||
private val queryFactory: JPAQueryFactory
|
||||
) : HideCreatorChannelDonationPort {
|
||||
@Transactional
|
||||
override fun hideOwnedDonation(creatorId: Long, donationId: Long): Boolean {
|
||||
val ownedDonation = channelDonationMessage.id.eq(donationId)
|
||||
.and(channelDonationMessage.creator.id.eq(creatorId))
|
||||
val updatedCount = queryFactory
|
||||
.update(channelDonationMessage)
|
||||
.set(channelDonationMessage.isHidden, true)
|
||||
.set(channelDonationMessage.updatedAt, channelDonationMessage.updatedAt)
|
||||
.where(ownedDonation, channelDonationMessage.isHidden.isFalse)
|
||||
.execute()
|
||||
|
||||
return updatedCount > 0 || queryFactory
|
||||
.selectOne()
|
||||
.from(channelDonationMessage)
|
||||
.where(ownedDonation)
|
||||
.fetchFirst() != null
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package kr.co.vividnext.sodalive.v2.creator.channel.donation.port.out
|
||||
|
||||
interface HideCreatorChannelDonationPort {
|
||||
fun hideOwnedDonation(creatorId: Long, donationId: Long): Boolean
|
||||
}
|
||||
Reference in New Issue
Block a user