diff --git a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/scheduler/MemberScheduler.java b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/scheduler/MemberScheduler.java index 75e70c9d0..ffa17c593 100644 --- a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/scheduler/MemberScheduler.java +++ b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/scheduler/MemberScheduler.java @@ -25,7 +25,7 @@ public class MemberScheduler { @Scheduled(cron = "0 0 0 * * *") @Transactional public void removeInactiveUsersFromDB() { - List inactiveMembers = memberManageService.getInactiveMember(); + List inactiveMembers = memberManageService.getInactiveMembers(); for (Member member : inactiveMembers) { log.debug("[Delete] user name : " + member.getName()); // TODO : 관련 삭제 @@ -33,4 +33,14 @@ public void removeInactiveUsersFromDB() { } } + @Scheduled(cron = "0 0 * * * *") + @Transactional + public void removePendingUsersFromDB() { + List pendingMembers = memberManageService.getPendingMembers(); + for (Member member : pendingMembers) { + log.debug("[Delete PENDING] user name: {}", member.getName()); + memberManageService.removeMember(member); + } + } + } diff --git a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/service/MemberManageService.java b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/service/MemberManageService.java index 6459c300f..98243ca14 100644 --- a/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/service/MemberManageService.java +++ b/application/external-api-v2/src/main/java/com/namo/spring/application/external/api/user/service/MemberManageService.java @@ -67,10 +67,14 @@ public Optional getMemberByEmailAndSocialType(String email, SocialType s return memberRepository.findMemberByEmailAndSocialType(email, socialType); } - public List getInactiveMember() { + public List getInactiveMembers() { return memberRepository.findMembersByStatusAndDate(MemberStatus.INACTIVE, LocalDateTime.now().minusDays(3)); } + public List getPendingMembers() { + return memberRepository.findMembersByStatusAndDate(MemberStatus.PENDING, LocalDateTime.now().minusHours(1)); + } + public Member saveMember(Member member) { return memberRepository.save(member); } diff --git a/storage/db-mysql-v2/src/main/java/com/namo/spring/db/mysql/domains/user/entity/Member.java b/storage/db-mysql-v2/src/main/java/com/namo/spring/db/mysql/domains/user/entity/Member.java index 6d9c23131..dfa2b44dd 100644 --- a/storage/db-mysql-v2/src/main/java/com/namo/spring/db/mysql/domains/user/entity/Member.java +++ b/storage/db-mysql-v2/src/main/java/com/namo/spring/db/mysql/domains/user/entity/Member.java @@ -49,7 +49,6 @@ @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @DynamicInsert -@SQLDelete(sql = "UPDATE member SET deleted_at = NOW(), status = 'INACVTIVE' WHERE id = ?") public class Member extends BaseTimeEntity implements User { @Id