@@ -193,6 +193,11 @@ public void bulkUpdateMemberStatus(List<Long> memberIds, MemberStatus status) {
193193 generationMemberRepository .save (generationMember );
194194 });
195195 }
196+
197+ // 미수료(NOT_RETIRED)로 변경 시 모든 활동 기수에서 제외
198+ if (status == MemberStatus .NOT_RETIRED ) {
199+ generationMemberRepository .deleteAllByMemberIn (members );
200+ }
196201 }
197202
198203 @ Transactional
@@ -281,6 +286,10 @@ public void updateActiveMemberInfo(Long generationMemberId, String name, Gender
281286 }
282287 if (status != null ) {
283288 member .updateStatus (status );
289+ // 미수료(NOT_RETIRED)로 변경 시 모든 활동 기수에서 제외
290+ if (status == MemberStatus .NOT_RETIRED ) {
291+ generationMemberRepository .deleteAllByMemberIn (List .of (member ));
292+ }
284293 }
285294
286295 memberRepository .save (member );
@@ -309,11 +318,13 @@ public void removeActiveMember(Long generationMemberId) {
309318 // GenerationMember 삭제
310319 generationMemberRepository .delete (generationMember );
311320
312- // 다른 기수에 활동 기록이 없으면 RETIRED로 변경
313- boolean hasOtherGenerations = generationMemberRepository .existsByMemberAndIdNot (member , generationMemberId );
314- if (!hasOtherGenerations ) {
315- member .updateStatus (MemberStatus .RETIRED );
316- memberRepository .save (member );
321+ // 다른 기수에 활동 기록이 없으면 RETIRED로 변경 (미수료 상태는 유지)
322+ if (member .getStatus () != MemberStatus .NOT_RETIRED ) {
323+ boolean hasOtherGenerations = generationMemberRepository .existsByMemberAndIdNot (member , generationMemberId );
324+ if (!hasOtherGenerations ) {
325+ member .updateStatus (MemberStatus .RETIRED );
326+ memberRepository .save (member );
327+ }
317328 }
318329 }
319330}
0 commit comments