From a5988fa5f5508cbf26a57de680acaa506172f46b Mon Sep 17 00:00:00 2001 From: eojinsarang joo Date: Sat, 3 Dec 2022 23:03:02 +0900 Subject: [PATCH 1/4] =?UTF-8?q?feature:=20KakaoMapper=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20throw=20#279?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ceos/bankids/mapper/KakaoMapper.java | 14 ++++++++++---- .../java/com/ceos/bankids/mapper/UserMapper.java | 5 ----- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java b/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java index 55521e46..a4b17cb2 100644 --- a/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java @@ -1,9 +1,11 @@ package com.ceos.bankids.mapper; +import com.ceos.bankids.constant.ErrorCode; import com.ceos.bankids.controller.request.KakaoRequest; import com.ceos.bankids.domain.User; import com.ceos.bankids.dto.oauth.KakaoTokenDTO; import com.ceos.bankids.dto.oauth.KakaoUserDTO; +import com.ceos.bankids.exception.BadRequestException; import com.ceos.bankids.service.KakaoServiceImpl; import com.ceos.bankids.service.UserServiceImpl; import java.util.Optional; @@ -27,16 +29,20 @@ public User postKakaoLogin(KakaoRequest kakaoRequest) { KakaoUserDTO kakaoUserDTO = kakaoService.getKakaoUserCode(kakaoTokenDTO); Optional registeredUser = userService.findUserByAuthenticationCodeNullable( - kakaoUserDTO.getAuthenticationCode()); + kakaoUserDTO.getAuthenticationCode()); User user; if (registeredUser.isPresent()) { user = registeredUser.get(); + + if (user.getExpoToken() != null && user.getExpoToken().contains("ExponentPushToken")) { + throw new BadRequestException(ErrorCode.USER_ALREADY_LOGINED.getErrorCode()); + } } else { user = userService.createNewUser( - kakaoUserDTO.getKakaoAccount().getProfile().getNickname(), - kakaoUserDTO.getAuthenticationCode(), - "kakao"); + kakaoUserDTO.getKakaoAccount().getProfile().getNickname(), + kakaoUserDTO.getAuthenticationCode(), + "kakao"); } return user; diff --git a/src/main/java/com/ceos/bankids/mapper/UserMapper.java b/src/main/java/com/ceos/bankids/mapper/UserMapper.java index 44995f79..61dec7ce 100644 --- a/src/main/java/com/ceos/bankids/mapper/UserMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/UserMapper.java @@ -62,11 +62,6 @@ public class UserMapper { @Transactional public UserDTO updateUserType(User user, UserTypeRequest userTypeRequest) { - // 이미 로그인한 유저인지 검사 - if (user.getExpoToken() != null && user.getExpoToken().contains("ExponentPushToken")) { - throw new BadRequestException(ErrorCode.USER_ALREADY_LOGINED.getErrorCode()); - } - // 유저 타입이 이미 선택되었는지 검사 if (user.getIsFemale() != null) { throw new BadRequestException(ErrorCode.USER_ALREADY_HAS_TYPE.getErrorCode()); From de5a073494645a3fbb6bc03f95883b00c37dd536 Mon Sep 17 00:00:00 2001 From: eojinsarang joo Date: Sat, 3 Dec 2022 23:33:44 +0900 Subject: [PATCH 2/4] =?UTF-8?q?feature:=20AppleMapper=20=EC=97=90=EB=9F=AC?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20#279?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bankids/controller/AppleController.java | 12 ++++++++--- .../com/ceos/bankids/mapper/AppleMapper.java | 8 +++++++- .../com/ceos/bankids/mapper/KakaoMapper.java | 8 ++++---- .../com/ceos/bankids/mapper/UserMapper.java | 20 +++++++++---------- 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/ceos/bankids/controller/AppleController.java b/src/main/java/com/ceos/bankids/controller/AppleController.java index 24fc357e..27017dcd 100644 --- a/src/main/java/com/ceos/bankids/controller/AppleController.java +++ b/src/main/java/com/ceos/bankids/controller/AppleController.java @@ -2,6 +2,7 @@ import com.ceos.bankids.domain.User; import com.ceos.bankids.dto.LoginDTO; +import com.ceos.bankids.exception.BadRequestException; import com.ceos.bankids.mapper.AppleMapper; import com.ceos.bankids.mapper.UserMapper; import io.swagger.annotations.ApiOperation; @@ -35,9 +36,14 @@ public void postAppleLogin(@RequestBody MultiValueMap formData, log.info("api = 애플 로그인"); - User user = appleMapper.postAppleLogin(formData); - - LoginDTO loginDTO = userMapper.updateUserToken(user); + User user; + LoginDTO loginDTO; + try { + user = appleMapper.postAppleLogin(formData); + loginDTO = userMapper.updateUserToken(user); + } catch (BadRequestException e) { + loginDTO = new LoginDTO(null, null, null, "apple"); + } response.sendRedirect( "https://bankidz.com/auth/apple/callback?isKid=" + loginDTO.getIsKid() + "&level=" diff --git a/src/main/java/com/ceos/bankids/mapper/AppleMapper.java b/src/main/java/com/ceos/bankids/mapper/AppleMapper.java index 8b27e738..bdfcbe01 100644 --- a/src/main/java/com/ceos/bankids/mapper/AppleMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/AppleMapper.java @@ -1,10 +1,12 @@ package com.ceos.bankids.mapper; +import com.ceos.bankids.constant.ErrorCode; import com.ceos.bankids.controller.request.AppleRequest; import com.ceos.bankids.domain.User; import com.ceos.bankids.dto.oauth.AppleKeyListDTO; import com.ceos.bankids.dto.oauth.AppleSubjectDTO; import com.ceos.bankids.dto.oauth.AppleTokenDTO; +import com.ceos.bankids.exception.BadRequestException; import com.ceos.bankids.service.AppleServiceImpl; import com.ceos.bankids.service.UserServiceImpl; import java.io.IOException; @@ -25,7 +27,7 @@ public class AppleMapper { private final UserServiceImpl userService; @Transactional - public User postAppleLogin(MultiValueMap formData) throws IOException { + public User postAppleLogin(MultiValueMap formData) throws BadRequestException { AppleRequest appleRequest = appleService.getAppleRequest(formData); AppleKeyListDTO appleKeyListDTO = appleService.getAppleIdentityToken(); AppleSubjectDTO appleSubjectDTO = appleService.verifyIdentityToken(appleRequest, @@ -38,6 +40,10 @@ public User postAppleLogin(MultiValueMap formData) throws IOExce User user; if (registeredUser.isPresent()) { user = registeredUser.get(); + + if (user.getExpoToken() != null && user.getExpoToken().contains("ExponentPushToken")) { + throw new BadRequestException(ErrorCode.USER_ALREADY_LOGINED.getErrorCode()); + } } else { user = userService.createNewUser( appleRequest.getUsername(), diff --git a/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java b/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java index a4b17cb2..146fb000 100644 --- a/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/KakaoMapper.java @@ -29,7 +29,7 @@ public User postKakaoLogin(KakaoRequest kakaoRequest) { KakaoUserDTO kakaoUserDTO = kakaoService.getKakaoUserCode(kakaoTokenDTO); Optional registeredUser = userService.findUserByAuthenticationCodeNullable( - kakaoUserDTO.getAuthenticationCode()); + kakaoUserDTO.getAuthenticationCode()); User user; if (registeredUser.isPresent()) { @@ -40,9 +40,9 @@ public User postKakaoLogin(KakaoRequest kakaoRequest) { } } else { user = userService.createNewUser( - kakaoUserDTO.getKakaoAccount().getProfile().getNickname(), - kakaoUserDTO.getAuthenticationCode(), - "kakao"); + kakaoUserDTO.getKakaoAccount().getProfile().getNickname(), + kakaoUserDTO.getAuthenticationCode(), + "kakao"); } return user; diff --git a/src/main/java/com/ceos/bankids/mapper/UserMapper.java b/src/main/java/com/ceos/bankids/mapper/UserMapper.java index 61dec7ce..190ce615 100644 --- a/src/main/java/com/ceos/bankids/mapper/UserMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/UserMapper.java @@ -106,11 +106,11 @@ public LoginDTO updateUserToken(User user) { LoginDTO loginDTO; if (updatedUser.getIsKid() == null || updatedUser.getIsKid() == false) { loginDTO = new LoginDTO(updatedUser.getIsKid(), newAccessToken, - updatedUser.getProvider()); + updatedUser.getProvider()); } else { loginDTO = new LoginDTO(updatedUser.getIsKid(), newAccessToken, - updatedUser.getKid().getLevel(), - updatedUser.getProvider()); + updatedUser.getKid().getLevel(), + updatedUser.getProvider()); } return loginDTO; } @@ -144,20 +144,20 @@ public void deleteFamilyUserIfExists(User user) { if (familyUser.isPresent()) { Family family = familyUser.get().getFamily(); List familyUserList = familyUserService.getFamilyUserListExclude(family, - user); + user); if (user.getIsKid()) { List challengeList = challengeUserService.readAllChallengeUserListToChallengeList( - user); + user); challengeUserService.deleteAllChallengeUserOfUser(user); ChallengeCompleteDeleteByKidMapperDTO challengeCompleteDeleteByKidMapperDTO = challengeService.challengeCompleteDeleteByKid( - challengeList); + challengeList); kidService.updateInitKid(user); parentService.updateParentForDeleteFamilyUserByKid(familyUserList, - challengeCompleteDeleteByKidMapperDTO); + challengeCompleteDeleteByKidMapperDTO); } else { List challengeUserList = challengeUserService.getChallengeUserListByContractUser( - user); + user); kidService.updateKidForDeleteFamilyUserByParent(challengeUserList); parentService.updateInitParent(user); challengeService.challengeCompleteDeleteByParent(challengeUserList); @@ -175,12 +175,12 @@ public UserDTO deleteUserAccount(User user, WithdrawalRequest withdrawalRequest) if (user.getIsKid()) { KidBackupDTO kidBackupDTO = kidBackupService.backupKidUser(user); slackService.sendWithdrawalMessage("KidBackup ", kidBackupDTO.getId(), - withdrawalRequest.getMessage()); + withdrawalRequest.getMessage()); kidService.deleteKid(user); } else { ParentBackupDTO parentBackupDTO = parentBackupService.backupParentUser(user); slackService.sendWithdrawalMessage("ParentBackup ", parentBackupDTO.getId(), - withdrawalRequest.getMessage()); + withdrawalRequest.getMessage()); parentService.deleteParent(user); } From a7f7eea37545a8ac0f719f66af558a1b588cb728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A3=BC=EC=96=B4=EB=9E=91?= <63996052+ozzing@users.noreply.github.com> Date: Mon, 12 Dec 2022 03:33:54 +0900 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=EC=95=B1=EC=8A=A4=ED=86=A0?= =?UTF-8?q?=EC=96=B4=20=EB=A7=81=ED=81=AC=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a65ebd92..dcb05f75 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ | AD | Instagram | Web | iOS App | Android App | | :--: | :-------: | :---------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | -| - | - | [bankidz.com](https://bankidz.com/) | Download on the App Store | 다운로드하기 Google Play | +| - | - | [bankidz.com](https://bankidz.com/) | Download on the App Store | 다운로드하기 Google Play | From 06389058e5ff5f5411bc09b4b661d4c15df7848e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A4=80?= Date: Fri, 30 Dec 2022 11:34:28 +0900 Subject: [PATCH 4/4] =?UTF-8?q?:hammer:=20fix:=20=EB=8F=99=EB=93=B1=20?= =?UTF-8?q?=EC=97=B0=EC=82=B0=EC=9E=90=20'=3D=3D'=20=3D>=20Object.equal?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ceos/bankids/mapper/ChallengeMapper.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java index 6c583d10..316213ed 100644 --- a/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/ChallengeMapper.java @@ -85,7 +85,7 @@ public ChallengeDTO deleteChallengeMapper(User authUser, Long challengeId) { userRoleValidation(authUser, true); ChallengeUser challengeUser = challengeUserService.readChallengeUser(challengeId); Challenge deleteChallenge = challengeUser.getChallenge(); - if (challengeUser.getUser().getId() != authUser.getId()) { + if (!Objects.equals(challengeUser.getUser().getId(), authUser.getId())) { throw new ForbiddenException(ErrorCode.NOT_MATCH_CHALLENGE_USER.getErrorCode()); } if (deleteChallenge.getChallengeStatus() == ChallengeStatus.WALKING) { @@ -165,7 +165,7 @@ public List readChallengeListMapper(User authUser, String status) @Transactional public ChallengeDTO readChallengeDetail(User authUser, Long challengeId) { ChallengeUser challengeUser = challengeUserService.readChallengeUser(challengeId); - if (authUser.getId() != challengeUser.getUser().getId()) { + if (!Objects.equals(authUser.getId(), challengeUser.getUser().getId())) { throw new ForbiddenException(ErrorCode.NOT_MATCH_CHALLENGE_USER.getErrorCode()); } return challengeService.readChallengeDetail(challengeId); @@ -208,7 +208,7 @@ public KidChallengeListDTO readKidChallengeListMapper(User authUser, Long kidId, challengeList.stream() .filter(challenge -> challenge.getChallengeStatus() != ChallengeStatus.REJECTED) .forEach(challenge -> { - if (challenge.getContractUser().getId() == authUser.getId()) { + if (Objects.equals(challenge.getContractUser().getId(), authUser.getId())) { ChallengeListMapperDTO challengeListMapperDTO = challengeService.readPendingChallenge( challenge); ChallengeDTO challengeDTO = new ChallengeDTO( @@ -232,7 +232,7 @@ public ChallengeDTO updateChallengeStatusMapper(User authUser, Long challengeId, ChallengeUser challengeUser = challengeUserService.readChallengeUser(challengeId); User user = challengeUser.getUser(); Challenge challenge = challengeService.readChallenge(challengeId); - if (challenge.getContractUser().getId() != authUser.getId()) { + if (!Objects.equals(challenge.getContractUser().getId(), authUser.getId())) { throw new ForbiddenException(ErrorCode.NOT_MATCH_CONTRACT_USER.getErrorCode()); } if (kidChallengeRequest.getAccept()) {