Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat : 크루 탈퇴하기 #74

Merged
merged 3 commits into from
Aug 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ public enum BaseExceptionResponseStatus implements ResponseStatus{
ALREADY_EXIST_IN_CREW(10002, HttpStatus.BAD_REQUEST.value(), "해당 크루에 이미 등록된 멤버입니다."),
NOT_MEMBERCREW_CAPTAIN(10003, HttpStatus.BAD_REQUEST.value(), "크루 수정,삭제에 접근할수없는 권한입니다."),
NOT_CREW_MEMBERCREW(10004, HttpStatus.BAD_REQUEST.value(), "해당 크루에 참여 상태가 아닙니다."),
CANNOT_CREW_CANCEL(10005, HttpStatus.BAD_REQUEST.value(), "해당 크루를 탈퇴 할 수 없습니다. 크루 삭제를 이용해주세요."),

/**
* 11000 : Review 관련
Expand Down
24 changes: 15 additions & 9 deletions src/main/java/com/example/likelion12/service/CrewService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.example.likelion12.domain.*;
import com.example.likelion12.domain.base.BaseGender;
import com.example.likelion12.domain.base.BaseLevel;
import com.example.likelion12.domain.base.BaseRole;
import com.example.likelion12.domain.base.BaseStatus;
import com.example.likelion12.dto.crew.GetCrewDetailResponse;
import com.example.likelion12.dto.crew.PostCrewRequest;
Expand Down Expand Up @@ -194,22 +195,27 @@ public void cancelCrew(Long memberId, Long crewId) {

// 크루를 탈퇴하고자 하는 member
Member member = memberRepository.findByMemberIdAndStatus(memberId, BaseStatus.ACTIVE)
.orElseThrow(()-> new MemberException(CANNOT_FOUND_MEMBER));
.orElseThrow(() -> new MemberException(CANNOT_FOUND_MEMBER));

//탈퇴하고자 하는 크루
Crew crew = crewRepository.findByCrewIdAndStatus(crewId, BaseStatus.ACTIVE)
.orElseThrow(()->new CrewException(CANNOT_FOUND_CREW));
.orElseThrow(() -> new CrewException(CANNOT_FOUND_CREW));

//탈퇴하고자 하는 크루의 멤버크루
//해당크루와 관계없음(해당크루에 등록되있지 않음), 멤버크루가 존재하지않음
MemberCrew memberCrew = memberCrewRepository.findByMember_MemberIdAndCrew_CrewIdAndStatus( memberId, crewId, BaseStatus.ACTIVE)
.orElseThrow(()->new MemberCrewException(NOT_CREW_MEMBERCREW));
MemberCrew memberCrew = memberCrewRepository.findByMember_MemberIdAndCrew_CrewIdAndStatus(memberId, crewId, BaseStatus.ACTIVE)
.orElseThrow(() -> new MemberCrewException(NOT_CREW_MEMBERCREW));

//CAPTAIN일 경우 크루 삭제
if(memberCrewService.ConfirmCaptainMemberCrew(memberCrew))
deleteCrew(memberId,crewId);
else //크루 탈퇴
memberCrewRepository.delete(memberCrew);
//CAPTAIN일 경우 예외처리 --> 크루삭제
if (BaseRole.CAPTAIN.equals(memberCrew.getRole())){
throw new MemberCrewException(CANNOT_CREW_CANCEL);
}
//크루 탈퇴
else {
//멤버크루 삭제
memberCrew.DeleteMemberCrewInfo(BaseStatus.DELETE);
memberCrewRepository.save(memberCrew);
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,11 @@ public void createMemberCrew(Member member, Crew crew){
/**
* 크루 수정,삭제 시 접근하는 member가 CAPTAIN 인지 확인
*/
public boolean ConfirmCaptainMemberCrew(MemberCrew memberCrew) {
public void ConfirmCaptainMemberCrew(MemberCrew memberCrew) {
log.info("[MemberCrewService.ConfirmCaptainMemberCrew]");

if (!BaseRole.CAPTAIN.equals(memberCrew.getRole())) {
throw new MemberCrewException(NOT_MEMBERCREW_CAPTAIN);
}
return true;
}
}
Loading