차단유저(BlockMember) 엔티티

- Member와의 관계설정
This commit is contained in:
Klaus 2024-09-03 22:04:14 +09:00
parent b0c7819b5a
commit ebd82ee2c7
4 changed files with 35 additions and 21 deletions

View File

@ -135,7 +135,7 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
.and(
creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId)
blockMemberRepository.getBlockedMemberIdList(creatorId)
)
)
.and(creatorFollowing.member.pushToken.isNotNull)
@ -179,7 +179,7 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
.and(
creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId)
blockMemberRepository.getBlockedMemberIdList(creatorId)
)
)
.and(creatorFollowing.member.pushToken.isNotNull)
@ -211,7 +211,7 @@ class MemberQueryRepositoryImpl(
.and(liveReservation.room.id.eq(roomId))
.and(
liveReservation.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId)
blockMemberRepository.getBlockedMemberIdList(creatorId)
)
)
@ -248,7 +248,7 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.notification.uploadContent.isTrue)
.and(
creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId)
blockMemberRepository.getBlockedMemberIdList(creatorId)
)
)
.and(creatorFollowing.member.pushToken.isNotNull)
@ -361,7 +361,7 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
.and(
creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId)
blockMemberRepository.getBlockedMemberIdList(creatorId)
)
)
.and(creatorFollowing.member.pushToken.isNotNull)

View File

@ -358,7 +358,7 @@ class MemberService(
}
fun getBlockedMemberList(memberId: Long): List<Long> {
return blockMemberRepository.getBlockedMemberList(memberId = memberId)
return blockMemberRepository.getBlockedMemberIdList(memberId = memberId)
}
@Transactional
@ -369,10 +369,15 @@ class MemberService(
)
if (blockMember == null) {
blockMember = BlockMember(
blockedMemberId = request.blockMemberId,
memberId = memberId
)
val blockedMember = repository.findByIdOrNull(id = request.blockMemberId)
?: throw SodaException("잘못된 요청입니다.")
val member = repository.findByIdOrNull(id = memberId)
?: throw SodaException("잘못된 요청입니다.")
blockMember = BlockMember()
blockMember.member = member
blockMember.blockedMember = blockedMember
blockMemberRepository.save(blockMember)
} else {

View File

@ -1,12 +1,21 @@
package kr.co.vividnext.sodalive.member.block
import kr.co.vividnext.sodalive.common.BaseEntity
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 BlockMember(
val blockedMemberId: Long,
val memberId: Long
) : BaseEntity() {
var isActive: Boolean = true
) : BaseEntity() {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "blocked_member_id", nullable = false)
var blockedMember: Member? = null
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id", nullable = false)
var member: Member? = null
}

View File

@ -11,7 +11,7 @@ interface BlockMemberRepository : JpaRepository<BlockMember, Long>, BlockMemberQ
interface BlockMemberQueryRepository {
fun getBlockAccount(blockedMemberId: Long, memberId: Long): BlockMember?
fun isBlocked(blockedMemberId: Long, memberId: Long): Boolean
fun getBlockedMemberList(memberId: Long): List<Long>
fun getBlockedMemberIdList(memberId: Long): List<Long>
}
@Repository
@ -20,8 +20,8 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
return queryFactory
.selectFrom(blockMember)
.where(
blockMember.blockedMemberId.eq(blockedMemberId)
.and(blockMember.memberId.eq(memberId))
blockMember.blockedMember.id.eq(blockedMemberId)
.and(blockMember.member.id.eq(memberId))
)
.orderBy(blockMember.id.desc())
.fetchFirst()
@ -32,8 +32,8 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
.select(blockMember.id)
.from(blockMember)
.where(
blockMember.memberId.eq(memberId)
.and(blockMember.blockedMemberId.eq(blockedMemberId))
blockMember.member.id.eq(memberId)
.and(blockMember.blockedMember.id.eq(blockedMemberId))
.and(blockMember.isActive.isTrue)
)
.fetchOne()
@ -41,12 +41,12 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
return blockedAccount != null
}
override fun getBlockedMemberList(memberId: Long): List<Long> {
override fun getBlockedMemberIdList(memberId: Long): List<Long> {
return queryFactory
.select(blockMember.blockedMemberId)
.select(blockMember.blockedMember.id)
.from(blockMember)
.where(
blockMember.memberId.eq(memberId)
blockMember.member.id.eq(memberId)
.and(blockMember.isActive.isTrue)
)
.fetch()