From 14b5c921424be0610f10a62fc1171f47bd8bbc0c Mon Sep 17 00:00:00 2001 From: chaerlo127 Date: Tue, 12 Sep 2023 15:52:25 +0900 Subject: [PATCH 1/2] =?UTF-8?q?#172=20fix:=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=20=ED=94=84=EB=A1=9C=ED=95=84=20=EB=B3=80=EA=B2=BD=20(?= =?UTF-8?q?=EC=9E=90=EA=B8=B0=EC=9E=90=EC=8B=A0=20=EB=8B=89=EB=84=A4?= =?UTF-8?q?=EC=9E=84=20=EC=A0=9C=EC=99=B8=ED=95=9C)=20=EB=8B=89=EB=84=A4?= =?UTF-8?q?=EC=9E=84=20=EC=A4=91=EB=B3=B5=20=EC=98=88=EC=99=B8=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/com/psr/psr/user/repository/UserRepository.kt | 1 + src/main/kotlin/com/psr/psr/user/service/UserService.kt | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/psr/psr/user/repository/UserRepository.kt b/src/main/kotlin/com/psr/psr/user/repository/UserRepository.kt index df4148a..ad5ea9e 100644 --- a/src/main/kotlin/com/psr/psr/user/repository/UserRepository.kt +++ b/src/main/kotlin/com/psr/psr/user/repository/UserRepository.kt @@ -10,6 +10,7 @@ import java.util.* interface UserRepository: JpaRepository { fun findByIdAndStatus(id: Long, status: String) : User? fun existsByNicknameAndStatus(nickname: String, status: String): Boolean + fun existsByNicknameAndStatusAndIdNot(nickname: String, status: String, userId: Long) : Boolean fun existsByPhoneAndStatus(phone: String, status: String): Boolean fun existsByEmailAndStatus(nickname: String, status: String): Boolean fun findByEmailAndStatus(email:String, status: String): Optional diff --git a/src/main/kotlin/com/psr/psr/user/service/UserService.kt b/src/main/kotlin/com/psr/psr/user/service/UserService.kt index 0242332..c6dd721 100644 --- a/src/main/kotlin/com/psr/psr/user/service/UserService.kt +++ b/src/main/kotlin/com/psr/psr/user/service/UserService.kt @@ -140,8 +140,7 @@ class UserService( fun patchProfile(user: User, profileReq: ProfileReq) { // 닉네임이 변경이 되었으면 if(user.nickname != profileReq.nickname) { - // todo: 코드 변경 필요 -> 자기 자신 닉네임 제외 - if(userRepository.existsByNicknameAndStatus(profileReq.nickname, ACTIVE_STATUS)) throw BaseException(EXISTS_NICKNAME) + if(userRepository.existsByNicknameAndStatusAndIdNot(profileReq.nickname, ACTIVE_STATUS, user.id!!)) throw BaseException(EXISTS_NICKNAME) user.nickname = profileReq.nickname } // 프로필 이미지가 변경이 되었으면 From 890df22ab1097272fc1ffbdd89ac15c0945959a6 Mon Sep 17 00:00:00 2001 From: chaerlo127 Date: Tue, 12 Sep 2023 16:27:46 +0900 Subject: [PATCH 2/2] =?UTF-8?q?#172=20fix:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=EC=9D=84=20=EC=9C=84=ED=95=9C=20=ED=9C=B4=EB=8C=80?= =?UTF-8?q?=ED=8F=B0=20=EB=B2=88=ED=98=B8=20=EC=A0=84=EC=86=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/psr/psr/global/config/WebSecurityConfig.kt | 1 + .../com/psr/psr/user/controller/UserController.kt | 14 +++++++++++++- .../kotlin/com/psr/psr/user/service/UserService.kt | 5 +++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/psr/psr/global/config/WebSecurityConfig.kt b/src/main/kotlin/com/psr/psr/global/config/WebSecurityConfig.kt index 529a76a..3ffc8cb 100644 --- a/src/main/kotlin/com/psr/psr/global/config/WebSecurityConfig.kt +++ b/src/main/kotlin/com/psr/psr/global/config/WebSecurityConfig.kt @@ -51,6 +51,7 @@ class WebSecurityConfig( c.requestMatchers("/users/eid").permitAll() c.requestMatchers("/users/reissue").permitAll() c.requestMatchers("/users/password-reset").permitAll() + c.requestMatchers("/users/phone/*/*").permitAll() c.requestMatchers("/users/phone/*").permitAll() c.requestMatchers("/users/email/search").permitAll() c.requestMatchers("/users/password").permitAll() diff --git a/src/main/kotlin/com/psr/psr/user/controller/UserController.kt b/src/main/kotlin/com/psr/psr/user/controller/UserController.kt index cc4ecce..e8fa462 100644 --- a/src/main/kotlin/com/psr/psr/user/controller/UserController.kt +++ b/src/main/kotlin/com/psr/psr/user/controller/UserController.kt @@ -146,7 +146,7 @@ class UserController( } /** - * 휴대폰번호 유효 + * 휴대폰번호 전송 */ @PostMapping("/phone/check") fun checkValidPhone(@RequestBody @Validated validPhoneReq: ValidPhoneReq) : BaseResponse{ @@ -154,6 +154,18 @@ class UserController( return BaseResponse(BaseResponseCode.SUCCESS) } + /** + * 회원가입을 위한 휴대폰번호 전송 + */ + @PostMapping("/phone/check/signup") + fun checkValidPhoneForSignUp(@RequestBody @Validated validPhoneReq: ValidPhoneReq) : BaseResponse{ + // 이미 있는 휴대폰 번호인지 확인 + if(userService.checkDuplicatePhone(validPhoneReq.phone)) throw BaseException(BaseResponseCode.EXISTS_PHONE) + // 휴대폰 번호 전송 + userService.checkValidPhone(validPhoneReq) + return BaseResponse(BaseResponseCode.SUCCESS) + } + /** * 휴대폰 인증번호 조회 */ diff --git a/src/main/kotlin/com/psr/psr/user/service/UserService.kt b/src/main/kotlin/com/psr/psr/user/service/UserService.kt index c6dd721..0e8df25 100644 --- a/src/main/kotlin/com/psr/psr/user/service/UserService.kt +++ b/src/main/kotlin/com/psr/psr/user/service/UserService.kt @@ -123,6 +123,11 @@ class UserService( return userRepository.existsByNicknameAndStatus(nickname, ACTIVE_STATUS) } + // 휴대폰번호 중복체크 + fun checkDuplicatePhone(phone: String): Boolean{ + return userRepository.existsByPhoneAndStatus(phone, ACTIVE_STATUS) + } + // token 생성 extract method private fun createToken(user: User, password: String): TokenDto { val authenticationToken = UsernamePasswordAuthenticationToken(user.id.toString(), password)