22
33import NextLevel .demo .follow .FollowService ;
44import NextLevel .demo .funding .service .FundingRollbackService ;
5+ import NextLevel .demo .img .entity .ImgEntity ;
56import NextLevel .demo .img .service .ImgPath ;
67import NextLevel .demo .img .service .ImgService ;
78import NextLevel .demo .img .service .ImgTransaction ;
89import NextLevel .demo .project .project .service .ProjectDeleteService ;
910import NextLevel .demo .social .service .SocialService ;
1011import NextLevel .demo .user .entity .UserEntity ;
12+ import NextLevel .demo .user .repository .UserHistoryRepository ;
1113import NextLevel .demo .user .repository .UserRepository ;
14+ import jakarta .persistence .EntityManager ;
15+ import jakarta .persistence .PersistenceContext ;
1216import lombok .RequiredArgsConstructor ;
1317import org .springframework .stereotype .Service ;
1418import org .springframework .transaction .annotation .Transactional ;
@@ -24,31 +28,40 @@ public class UserDeleteService {
2428 private final SocialService socialService ;
2529 private final ProjectDeleteService projectDeleteService ;
2630 private final ImgService imgService ;
31+ private final UserHistoryRepository userHistoryRepository ;
32+
33+ @ PersistenceContext
34+ private EntityManager entityManager ;
2735
2836 @ Transactional
2937 @ ImgTransaction
3038 public void deleteUser (Long userId , ImgPath imgPath ) {
3139 UserEntity user = userValidateService .findUserWithUserId (userId );
3240
3341 // project 삭제
34- projectDeleteService .deleteAllProjectByUser (user );
42+ projectDeleteService .deleteAllProjectByUser (user , imgPath );
3543
3644 // funding 삭제
3745 fundingRollbackService .rollbackByUser (user );
3846
3947 // social삭제
40- socialService .deleteAllByUser (user );
48+ socialService .deleteAllByUser (user , imgPath );
4149
4250 // follow (user like)삭제
4351 followService .deleteFollowByUserId (user );
4452
45- // img 삭제
46- imgService . deleteImg (user . getImg (), imgPath );
53+ // user history
54+ userHistoryRepository . deleteAllByUser (user );
4755
4856 // coupon -> cascade
4957 //user_detail삭제 -> cascade 적용
5058
59+ ImgEntity img = user .getImg ();
60+
5161 //user 삭제
5262 userRepository .delete (user );
63+ entityManager .flush ();
64+
65+ imgService .deleteImg (img , imgPath );
5366 }
5467}
0 commit comments