fix(member-block): 동일인 판별 조건을 name birth di gender 조합으로 강화한다

This commit is contained in:
2026-02-25 22:03:57 +09:00
parent 5f63574daa
commit 39c215c042
3 changed files with 37 additions and 2 deletions

View File

@@ -529,8 +529,13 @@ class MemberService(
?: throw SodaException(messageKey = "common.error.invalid_request")
val blockTargetMemberIds = mutableSetOf(request.blockMemberId)
blockedMember.auth?.di?.let { di ->
val verifiedMemberIds = authRepository.getMemberIdsByDi(di = di)
blockedMember.auth?.let { auth ->
val verifiedMemberIds = authRepository.getMemberIdsByNameAndBirthAndDiAndGender(
name = auth.name,
birth = auth.birth,
di = auth.di,
gender = auth.gender
)
blockTargetMemberIds.addAll(verifiedMemberIds)
}
blockTargetMemberIds.remove(memberId)

View File

@@ -13,6 +13,7 @@ interface AuthRepository : JpaRepository<Auth, Long>, AuthQueryRepository
interface AuthQueryRepository {
fun getOldestCreatedAtByDi(di: String): LocalDateTime
fun getMemberIdsByDi(di: String): List<Long>
fun getMemberIdsByNameAndBirthAndDiAndGender(name: String, birth: String, di: String, gender: Int): List<Long>
fun getAuthIdByMemberId(memberId: Long): Long?
fun getActiveMemberIdsByDi(di: String): List<Long>
}
@@ -36,6 +37,20 @@ class AuthQueryRepositoryImpl(private val queryFactory: JPAQueryFactory) : AuthQ
.fetch()
}
override fun getMemberIdsByNameAndBirthAndDiAndGender(name: String, birth: String, di: String, gender: Int): List<Long> {
return queryFactory
.select(member.id)
.from(member)
.leftJoin(member.auth, auth)
.where(
auth.name.eq(name)
.and(auth.birth.eq(birth))
.and(auth.di.eq(di))
.and(auth.gender.eq(gender))
)
.fetch()
}
override fun getAuthIdByMemberId(memberId: Long): Long? {
return queryFactory
.select(auth.id)