fix(member-block): 동일인 판별 조건을 name birth di gender 조합으로 강화한다
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user