From 466bbe85e7637dd9821b4e642a0bc974887fc866 Mon Sep 17 00:00:00 2001 From: MuuiGong Date: Sat, 24 Jan 2026 16:32:20 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=EC=8B=A4=ED=97=98=20=EC=A7=84=ED=96=89?= =?UTF-8?q?=20=EC=A4=91=EC=9D=B4=EB=8D=98=20=ED=9A=8C=EC=9B=90=20=ED=83=88?= =?UTF-8?q?=ED=87=B4=20=EB=B6=88=EA=B0=80=ED=95=98=EB=8D=98=20=EC=9D=98?= =?UTF-8?q?=EC=A1=B4=EC=84=B1=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/service/AuthService.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/fund/stockProject/auth/service/AuthService.java b/src/main/java/com/fund/stockProject/auth/service/AuthService.java index 1faa8e8..cb43ab6 100644 --- a/src/main/java/com/fund/stockProject/auth/service/AuthService.java +++ b/src/main/java/com/fund/stockProject/auth/service/AuthService.java @@ -3,6 +3,8 @@ import com.fund.stockProject.auth.dto.*; import com.fund.stockProject.user.entity.User; import com.fund.stockProject.user.repository.UserRepository; +import com.fund.stockProject.experiment.repository.ExperimentRepository; +import com.fund.stockProject.experiment.repository.ExperimentTradeItemRepository; import com.fund.stockProject.preference.repository.PreferenceRepository; import com.fund.stockProject.notification.repository.NotificationRepository; import com.fund.stockProject.notification.repository.UserDeviceTokenRepository; @@ -31,6 +33,8 @@ public class AuthService { private final PreferenceRepository preferenceRepository; private final NotificationRepository notificationRepository; private final UserDeviceTokenRepository userDeviceTokenRepository; + private final ExperimentRepository experimentRepository; + private final ExperimentTradeItemRepository experimentTradeItemRepository; private final RefreshTokenRepository refreshTokenRepository; private final S3Service s3Service; private final PasswordEncoder passwordEncoder; @@ -74,19 +78,25 @@ public void withdrawUser(String email) { Integer userId = user.getId(); - // 1. Preference 데이터 삭제 (외래 키 제약 조건 때문에 가장 먼저 삭제) + // 1. ExperimentTradeItem 삭제 (외래 키 제약 조건 때문에 가장 먼저 삭제) + experimentTradeItemRepository.deleteByUserId(userId); + + // 2. Experiment 삭제 + experimentRepository.deleteByUserId(userId); + + // 3. Preference 데이터 삭제 preferenceRepository.deleteByUserId(userId); - // 2. Notification 데이터 삭제 + // 4. Notification 데이터 삭제 notificationRepository.deleteByUserId(userId); - // 3. UserDeviceToken 데이터 삭제 + // 5. UserDeviceToken 데이터 삭제 userDeviceTokenRepository.deleteByUserId(userId); - // 4. RefreshToken 데이터 삭제 (email 기반) + // 6. RefreshToken 데이터 삭제 (email 기반) refreshTokenRepository.deleteByEmail(email); - // 5. 마지막으로 User 삭제 + // 7. 마지막으로 User 삭제 userRepository.delete(user); }