Skip to content

Commit 92dcb21

Browse files
authored
Merge pull request #139 from Team-Shaka/fix/138
🐛 Fix: 회원 가입은 했으나 소속 트리하우스가 없는 경우에 대한 처리
2 parents 6de4b0e + 7667ee5 commit 92dcb21

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

src/main/java/treehouse/server/api/user/business/UserService.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,24 @@ public UserResponseDTO.checkUserStatus checkUserStatus(UserRequestDTO.checkUserS
9999
Boolean isNewUser = !userQueryAdapter.existByPhoneNumber(request.getPhoneNumber());
100100
Boolean isInvited = invitationQueryAdapter.existByPhoneNumber(request.getPhoneNumber());
101101

102+
// User가 존재하지만, 해당 User와 연결된 Member가 하나도 없는 경우
103+
if (!isNewUser) {
104+
User user = userQueryAdapter.findByPhoneNumber(request.getPhoneNumber());
105+
// 해당 User와 연관된 Member가 없는지 확인
106+
if (user.getMemberList().isEmpty()) {
107+
List<Invitation> receivedInvitations = invitationQueryAdapter.findAllByPhone(request.getPhoneNumber());
108+
receivedInvitations.forEach(invitation -> {
109+
invitation.setReceiver(null);
110+
invitationCommandAdapter.saveInvitation(invitation);
111+
});
112+
fcmService.deleteAllFcmToken(user);
113+
userCommandAdapter.delete(user); // User 삭제
114+
115+
isNewUser = true; // 삭제했으므로 isNewUser를 true로 변경
116+
}
117+
}
118+
119+
102120
return UserMapper.toCheckUserStatus(isNewUser, isInvited);
103121
}
104122

src/main/java/treehouse/server/api/user/implement/UserCommandAdapter.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ public TokenDTO reissueToken(User user, RefreshToken refreshToken){
4949
}
5050

5151
public void withdraw(User user) {
52+
user.withdraw();
53+
}
54+
55+
public void delete(User user) {
5256
userRepository.delete(user);
5357
}
5458
}

src/main/java/treehouse/server/global/entity/User/User.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
@AllArgsConstructor
2222
@NoArgsConstructor
2323
@Table(name = "user")
24-
@SQLDelete(sql = "UPDATE user SET inactivated_at = NOW(), status = 'WITHDRAWAL' WHERE id = ?")
2524
public class User extends BaseDateTimeEntity {
2625

2726
@Id
@@ -67,6 +66,11 @@ public class User extends BaseDateTimeEntity {
6766
@OneToMany(mappedBy = "receiver")
6867
List<Notification> notificationList;
6968

69+
public void withdraw() {
70+
this.status = UserStatus.WITHDRAWAL;
71+
this.inactivatedAt = LocalDateTime.now();
72+
}
73+
7074
public void addMember(Member member) {
7175
memberList.add(member);
7276
}

0 commit comments

Comments
 (0)