|
3 | 3 | import com.fund.stockProject.auth.dto.*; |
4 | 4 | import com.fund.stockProject.user.entity.User; |
5 | 5 | import com.fund.stockProject.user.repository.UserRepository; |
| 6 | +import com.fund.stockProject.experiment.repository.ExperimentRepository; |
| 7 | +import com.fund.stockProject.experiment.repository.ExperimentTradeItemRepository; |
6 | 8 | import com.fund.stockProject.preference.repository.PreferenceRepository; |
7 | 9 | import com.fund.stockProject.notification.repository.NotificationRepository; |
8 | 10 | import com.fund.stockProject.notification.repository.UserDeviceTokenRepository; |
@@ -31,6 +33,8 @@ public class AuthService { |
31 | 33 | private final PreferenceRepository preferenceRepository; |
32 | 34 | private final NotificationRepository notificationRepository; |
33 | 35 | private final UserDeviceTokenRepository userDeviceTokenRepository; |
| 36 | + private final ExperimentRepository experimentRepository; |
| 37 | + private final ExperimentTradeItemRepository experimentTradeItemRepository; |
34 | 38 | private final RefreshTokenRepository refreshTokenRepository; |
35 | 39 | private final S3Service s3Service; |
36 | 40 | private final PasswordEncoder passwordEncoder; |
@@ -74,19 +78,25 @@ public void withdrawUser(String email) { |
74 | 78 |
|
75 | 79 | Integer userId = user.getId(); |
76 | 80 |
|
77 | | - // 1. Preference 데이터 삭제 (외래 키 제약 조건 때문에 가장 먼저 삭제) |
| 81 | + // 1. ExperimentTradeItem 삭제 (외래 키 제약 조건 때문에 가장 먼저 삭제) |
| 82 | + experimentTradeItemRepository.deleteByUserId(userId); |
| 83 | + |
| 84 | + // 2. Experiment 삭제 |
| 85 | + experimentRepository.deleteByUserId(userId); |
| 86 | + |
| 87 | + // 3. Preference 데이터 삭제 |
78 | 88 | preferenceRepository.deleteByUserId(userId); |
79 | 89 |
|
80 | | - // 2. Notification 데이터 삭제 |
| 90 | + // 4. Notification 데이터 삭제 |
81 | 91 | notificationRepository.deleteByUserId(userId); |
82 | 92 |
|
83 | | - // 3. UserDeviceToken 데이터 삭제 |
| 93 | + // 5. UserDeviceToken 데이터 삭제 |
84 | 94 | userDeviceTokenRepository.deleteByUserId(userId); |
85 | 95 |
|
86 | | - // 4. RefreshToken 데이터 삭제 (email 기반) |
| 96 | + // 6. RefreshToken 데이터 삭제 (email 기반) |
87 | 97 | refreshTokenRepository.deleteByEmail(email); |
88 | 98 |
|
89 | | - // 5. 마지막으로 User 삭제 |
| 99 | + // 7. 마지막으로 User 삭제 |
90 | 100 | userRepository.delete(user); |
91 | 101 | } |
92 | 102 |
|
|
0 commit comments