fix(member): 동일 본인인증 계정 차단을 함께 적용한다

This commit is contained in:
2026-02-23 11:00:00 +09:00
parent ecef49393b
commit 07fb6202a8
2 changed files with 44 additions and 15 deletions

View File

@@ -17,6 +17,7 @@ import kr.co.vividnext.sodalive.i18n.SodaMessageSource
import kr.co.vividnext.sodalive.jwt.TokenProvider
import kr.co.vividnext.sodalive.live.reservation.LiveReservationRepository
import kr.co.vividnext.sodalive.live.room.detail.GetRoomDetailUser
import kr.co.vividnext.sodalive.member.auth.AuthRepository
import kr.co.vividnext.sodalive.member.block.BlockMember
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
import kr.co.vividnext.sodalive.member.block.GetBlockedMemberListResponse
@@ -80,6 +81,7 @@ class MemberService(
private val stipulationAgreeRepository: StipulationAgreeRepository,
private val creatorFollowingRepository: CreatorFollowingRepository,
private val blockMemberRepository: BlockMemberRepository,
private val authRepository: AuthRepository,
private val signOutRepository: SignOutRepository,
private val nicknameChangeLogRepository: NicknameChangeLogRepository,
private val memberTagRepository: MemberTagRepository,
@@ -522,25 +524,35 @@ class MemberService(
@Transactional
fun memberBlock(request: MemberBlockRequest, memberId: Long) {
var blockMember = blockMemberRepository.getBlockAccount(
blockedMemberId = request.blockMemberId,
memberId = memberId
)
val member = repository.findByIdOrNull(id = memberId)
?: throw SodaException(messageKey = "common.error.invalid_request")
val blockedMember = repository.findByIdOrNull(id = request.blockMemberId)
?: throw SodaException(messageKey = "common.error.invalid_request")
if (blockMember == null) {
val blockedMember = repository.findByIdOrNull(id = request.blockMemberId)
?: throw SodaException(messageKey = "common.error.invalid_request")
val blockTargetMemberIds = mutableSetOf(request.blockMemberId)
blockedMember.auth?.di?.let { di ->
val verifiedMemberIds = authRepository.getMemberIdsByDi(di = di)
blockTargetMemberIds.addAll(verifiedMemberIds)
}
blockTargetMemberIds.remove(memberId)
val member = repository.findByIdOrNull(id = memberId)
?: throw SodaException(messageKey = "common.error.invalid_request")
blockTargetMemberIds.forEach { targetMemberId ->
val targetMember = repository.findByIdOrNull(id = targetMemberId) ?: return@forEach
blockMember = BlockMember()
blockMember.member = member
blockMember.blockedMember = blockedMember
var blockMember = blockMemberRepository.getBlockAccount(
blockedMemberId = targetMemberId,
memberId = memberId
)
blockMemberRepository.save(blockMember)
} else {
blockMember.isActive = true
if (blockMember == null) {
blockMember = BlockMember()
blockMember.member = member
blockMember.blockedMember = targetMember
blockMemberRepository.save(blockMember)
} else {
blockMember.isActive = true
}
}
}