Compare commits

..

No commits in common. "238f704b224b5ba0710250291689cc4a3f58d8d8" and "5639d8ac8ea551767c45ae4992b90ebcd45f8f88" have entirely different histories.

2 changed files with 16 additions and 67 deletions

View File

@ -62,6 +62,7 @@ interface MemberQueryRepository {
fun getMemberProfile(memberId: Long, myMemberId: Long): GetMemberProfileResponse
fun existsByEmail(email: String): Boolean
fun existsByNickname(nickname: String): Boolean
fun findNicknamesWithPrefix(prefix: String): List<String>
}
@ -485,6 +486,14 @@ class MemberQueryRepositoryImpl(
.fetchFirst()
}
override fun existsByEmail(email: String): Boolean {
return queryFactory
.selectOne()
.from(member)
.where(member.email.eq(email))
.fetchFirst() != null
}
override fun existsByNickname(nickname: String): Boolean {
return queryFactory
.selectOne()

View File

@ -286,22 +286,11 @@ class MemberService(
isAdmin: Boolean = false,
isCreator: Boolean = false
): LoginResponse {
val member = repository.findByEmail(email = email) ?: throw SodaException("없는 계정입니다.")
val member = repository.findByEmail(email = email) ?: throw SodaException("로그인 정보를 확인해주세요.")
if (!member.isActive) {
throw SodaException("탈퇴한 계정입니다.\n고객센터로 문의해 주시기 바랍니다.")
}
if (member.provider != MemberProvider.EMAIL) {
val provider = when (member.provider) {
MemberProvider.APPLE -> "애플"
MemberProvider.GOOGLE -> "구글"
else -> "카카오"
}
throw SodaException("해당 이메일은 $provider 계정으로 가입되어 있습니다. 해당 소셜 로그인을 사용해 주세요.")
}
if (isCreator && member.role != MemberRole.CREATOR) {
throw SodaException("로그인 정보를 확인해주세요.")
}
@ -391,23 +380,8 @@ class MemberService(
fun duplicateCheckEmail(email: String): ApiResponse<Any> {
validateEmail(email)
val findMember = repository.findByEmail(email)
if (findMember != null) {
if (findMember.provider == MemberProvider.EMAIL) {
throw SodaException("이미 사용중인 이메일 입니다.", "email")
} else {
val provider = when (findMember.provider) {
MemberProvider.APPLE -> "애플"
MemberProvider.GOOGLE -> "구글"
else -> "카카오"
}
throw SodaException(
"해당 이메일은 $provider 계정으로 이미 가입되어 있습니다. 해당 소셜 로그인을 사용해 주세요.",
"email"
)
}
if (repository.existsByEmail(email)) {
throw SodaException("이미 사용중인 이메일 입니다.", "email")
}
return ApiResponse.ok(message = "사용 가능한 이메일 입니다.")
@ -767,14 +741,7 @@ class MemberService(
@Transactional
fun findOrRegister(googleUserInfo: GoogleUserInfo, container: String, marketingPid: String?): Member {
val findMember = repository.findByGoogleId(googleUserInfo.sub)
if (findMember != null) {
if (findMember.isActive) {
return findMember
} else {
throw SodaException("탈퇴한 계정입니다.\n고객센터로 문의해 주시기 바랍니다.")
}
}
repository.findByGoogleId(googleUserInfo.sub)?.let { return it }
val stipulationTermsOfService = stipulationRepository.findByIdOrNull(StipulationIds.TERMS_OF_SERVICE_ID)
?: throw SodaException("잘못된 요청입니다\n앱 종료 후 다시 시도해 주세요.")
@ -782,13 +749,10 @@ class MemberService(
val stipulationPrivacyPolicy = stipulationRepository.findByIdOrNull(StipulationIds.PRIVACY_POLICY_ID)
?: throw SodaException("잘못된 요청입니다\n앱 종료 후 다시 시도해 주세요.")
val email = googleUserInfo.email
checkEmail(email)
val nickname = nicknameGenerateService.generateUniqueNickname()
val member = Member(
googleId = googleUserInfo.sub,
email = email,
email = googleUserInfo.email,
password = "",
nickname = nickname,
profileImage = "profile/default-profile.png",
@ -810,14 +774,7 @@ class MemberService(
@Transactional
fun findOrRegister(kakaoUserInfo: KakaoUserInfo, container: String, marketingPid: String?): Member {
val findMember = repository.findByKakaoId(kakaoUserInfo.id)
if (findMember != null) {
if (findMember.isActive) {
return findMember
} else {
throw SodaException("탈퇴한 계정입니다.\n고객센터로 문의해 주시기 바랍니다.")
}
}
repository.findByKakaoId(kakaoUserInfo.id)?.let { return it }
val stipulationTermsOfService = stipulationRepository.findByIdOrNull(StipulationIds.TERMS_OF_SERVICE_ID)
?: throw SodaException("잘못된 요청입니다\n앱 종료 후 다시 시도해 주세요.")
@ -825,13 +782,10 @@ class MemberService(
val stipulationPrivacyPolicy = stipulationRepository.findByIdOrNull(StipulationIds.PRIVACY_POLICY_ID)
?: throw SodaException("잘못된 요청입니다\n앱 종료 후 다시 시도해 주세요.")
val email = kakaoUserInfo.email
checkEmail(email)
val nickname = nicknameGenerateService.generateUniqueNickname()
val member = Member(
kakaoId = kakaoUserInfo.id,
email = email,
email = kakaoUserInfo.email,
password = "",
nickname = nickname,
profileImage = "profile/default-profile.png",
@ -850,18 +804,4 @@ class MemberService(
return member
}
private fun checkEmail(email: String) {
val member = repository.findByEmail(email)
if (member != null) {
val provider = when (member.provider) {
MemberProvider.APPLE -> "애플"
MemberProvider.GOOGLE -> "구글"
else -> "카카오"
}
throw SodaException("해당 이메일은 $provider 계정으로 가입되어 있습니다. 해당 소셜 로그인을 사용해 주세요.")
}
}
}