차단유저(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.email.notIn("admin@sodalive.net"))
.and( .and(
creatorFollowing.member.id.notIn( creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId) blockMemberRepository.getBlockedMemberIdList(creatorId)
) )
) )
.and(creatorFollowing.member.pushToken.isNotNull) .and(creatorFollowing.member.pushToken.isNotNull)
@ -179,7 +179,7 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.email.notIn("admin@sodalive.net")) .and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
.and( .and(
creatorFollowing.member.id.notIn( creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId) blockMemberRepository.getBlockedMemberIdList(creatorId)
) )
) )
.and(creatorFollowing.member.pushToken.isNotNull) .and(creatorFollowing.member.pushToken.isNotNull)
@ -211,7 +211,7 @@ class MemberQueryRepositoryImpl(
.and(liveReservation.room.id.eq(roomId)) .and(liveReservation.room.id.eq(roomId))
.and( .and(
liveReservation.member.id.notIn( 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.notification.uploadContent.isTrue)
.and( .and(
creatorFollowing.member.id.notIn( creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId) blockMemberRepository.getBlockedMemberIdList(creatorId)
) )
) )
.and(creatorFollowing.member.pushToken.isNotNull) .and(creatorFollowing.member.pushToken.isNotNull)
@ -361,7 +361,7 @@ class MemberQueryRepositoryImpl(
.and(creatorFollowing.member.email.notIn("admin@sodalive.net")) .and(creatorFollowing.member.email.notIn("admin@sodalive.net"))
.and( .and(
creatorFollowing.member.id.notIn( creatorFollowing.member.id.notIn(
blockMemberRepository.getBlockedMemberList(creatorId) blockMemberRepository.getBlockedMemberIdList(creatorId)
) )
) )
.and(creatorFollowing.member.pushToken.isNotNull) .and(creatorFollowing.member.pushToken.isNotNull)

View File

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

View File

@ -1,12 +1,21 @@
package kr.co.vividnext.sodalive.member.block package kr.co.vividnext.sodalive.member.block
import kr.co.vividnext.sodalive.common.BaseEntity import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.member.Member
import javax.persistence.Entity import javax.persistence.Entity
import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.ManyToOne
@Entity @Entity
data class BlockMember( data class BlockMember(
val blockedMemberId: Long,
val memberId: Long
) : BaseEntity() {
var isActive: Boolean = true 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 { interface BlockMemberQueryRepository {
fun getBlockAccount(blockedMemberId: Long, memberId: Long): BlockMember? fun getBlockAccount(blockedMemberId: Long, memberId: Long): BlockMember?
fun isBlocked(blockedMemberId: Long, memberId: Long): Boolean fun isBlocked(blockedMemberId: Long, memberId: Long): Boolean
fun getBlockedMemberList(memberId: Long): List<Long> fun getBlockedMemberIdList(memberId: Long): List<Long>
} }
@Repository @Repository
@ -20,8 +20,8 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
return queryFactory return queryFactory
.selectFrom(blockMember) .selectFrom(blockMember)
.where( .where(
blockMember.blockedMemberId.eq(blockedMemberId) blockMember.blockedMember.id.eq(blockedMemberId)
.and(blockMember.memberId.eq(memberId)) .and(blockMember.member.id.eq(memberId))
) )
.orderBy(blockMember.id.desc()) .orderBy(blockMember.id.desc())
.fetchFirst() .fetchFirst()
@ -32,8 +32,8 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
.select(blockMember.id) .select(blockMember.id)
.from(blockMember) .from(blockMember)
.where( .where(
blockMember.memberId.eq(memberId) blockMember.member.id.eq(memberId)
.and(blockMember.blockedMemberId.eq(blockedMemberId)) .and(blockMember.blockedMember.id.eq(blockedMemberId))
.and(blockMember.isActive.isTrue) .and(blockMember.isActive.isTrue)
) )
.fetchOne() .fetchOne()
@ -41,12 +41,12 @@ class BlockMemberQueryRepositoryImpl(private val queryFactory: JPAQueryFactory)
return blockedAccount != null return blockedAccount != null
} }
override fun getBlockedMemberList(memberId: Long): List<Long> { override fun getBlockedMemberIdList(memberId: Long): List<Long> {
return queryFactory return queryFactory
.select(blockMember.blockedMemberId) .select(blockMember.blockedMember.id)
.from(blockMember) .from(blockMember)
.where( .where(
blockMember.memberId.eq(memberId) blockMember.member.id.eq(memberId)
.and(blockMember.isActive.isTrue) .and(blockMember.isActive.isTrue)
) )
.fetch() .fetch()