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 : 내가 보낸 매칭, 성사된 매칭 삭제 기능 추가 #396

Merged
merged 1 commit into from
Aug 29, 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
13 changes: 11 additions & 2 deletions src/docs/asciidoc/docs.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -464,16 +464,25 @@ include::{snippets}/matching-controller-test/get-team-success-contact-response/p
include::{snippets}/matching-controller-test/get-team-success-contact-response/http-response.adoc[]
include::{snippets}/matching-controller-test/get-team-success-contact-response/response-fields.adoc[]

=== 10.19. 내 이력서 - 매칭 삭제 (matchingType : PROFILE) / 보낸 매칭, 성사된 매칭 모두 적용
=== 10.19. 내가 보낸 매칭 - 매칭 삭제 (matchingType: PROFILE)
==== 요청
include::{snippets}/matching-controller-test/delete-request-private-matching/http-request.adoc[]
include::{snippets}/matching-controller-test/delete-request-private-matching/path-parameters.adoc[]

==== 10.20. 팀 소개서 - 매칭 삭제 (matchingType : TEAM_PROFILE) / 보낸 매칭, 성사된 매칭 모두 적용
=== 10.20. 내가 보낸 매칭 - 매칭 삭제 (matchingType: TEAM_PROFILE)
==== 요청
include::{snippets}/matching-controller-test/delete-request-team-matching/http-request.adoc[]
include::{snippets}/matching-controller-test/delete-request-team-matching/path-parameters.adoc[]

=== 10.21. 성사된 매칭 - 매칭 삭제 (matchingType: PROFILE)
==== 요청
include::{snippets}/matching-controller-test/delete-success-private-matching/http-request.adoc[]
include::{snippets}/matching-controller-test/delete-success-private-matching/path-parameters.adoc[]

=== 10.22. 성사된 매칭 - 매칭 삭제 (matchingType: TEAM_PROFILE)
include::{snippets}/matching-controller-test/delete-request-team-matching/http-request.adoc[]
include::{snippets}/matching-controller-test/delete-request-team-matching/path-parameters.adoc[]

== 11. 찜하기
=== 11.1. 내 이력서 (미니 프로필 ID) 찜하기 생성
==== 요청
Expand Down
7,634 changes: 7,184 additions & 450 deletions src/docs/asciidoc/docs.html

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,19 @@ public class QPrivateMatching extends EntityPathBase<PrivateMatching> {

public final liaison.linkit.profile.domain.QProfile profile;

public final EnumPath<liaison.linkit.matching.domain.type.ReceiverDeleteStatusType> receiverDeleteStatusType = createEnum("receiverDeleteStatusType", liaison.linkit.matching.domain.type.ReceiverDeleteStatusType.class);

public final StringPath requestMessage = createString("requestMessage");

public final EnumPath<liaison.linkit.matching.domain.type.RequestSenderDeleteStatusType> requestSenderDeleteStatusType = createEnum("requestSenderDeleteStatusType", liaison.linkit.matching.domain.type.RequestSenderDeleteStatusType.class);

public final EnumPath<liaison.linkit.matching.domain.type.SenderType> senderType = createEnum("senderType", liaison.linkit.matching.domain.type.SenderType.class);

//inherited
public final EnumPath<liaison.linkit.global.type.StatusType> status = _super.status;

public final EnumPath<liaison.linkit.matching.domain.type.SuccessReceiverDeleteStatusType> successReceiverDeleteStatusType = createEnum("successReceiverDeleteStatusType", liaison.linkit.matching.domain.type.SuccessReceiverDeleteStatusType.class);

public final EnumPath<liaison.linkit.matching.domain.type.SuccessSenderDeleteStatusType> successSenderDeleteStatusType = createEnum("successSenderDeleteStatusType", liaison.linkit.matching.domain.type.SuccessSenderDeleteStatusType.class);

public QPrivateMatching(String variable) {
this(PrivateMatching.class, forVariable(variable), INITS);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,19 @@ public class QTeamMatching extends EntityPathBase<TeamMatching> {
//inherited
public final DateTimePath<java.time.LocalDateTime> modifiedAt = _super.modifiedAt;

public final EnumPath<liaison.linkit.matching.domain.type.ReceiverDeleteStatusType> receiverDeleteStatusType = createEnum("receiverDeleteStatusType", liaison.linkit.matching.domain.type.ReceiverDeleteStatusType.class);

public final StringPath requestMessage = createString("requestMessage");

public final EnumPath<liaison.linkit.matching.domain.type.RequestSenderDeleteStatusType> requestSenderDeleteStatusType = createEnum("requestSenderDeleteStatusType", liaison.linkit.matching.domain.type.RequestSenderDeleteStatusType.class);

public final EnumPath<liaison.linkit.matching.domain.type.SenderType> senderType = createEnum("senderType", liaison.linkit.matching.domain.type.SenderType.class);

//inherited
public final EnumPath<liaison.linkit.global.type.StatusType> status = _super.status;

public final EnumPath<liaison.linkit.matching.domain.type.SuccessReceiverDeleteStatusType> successReceiverDeleteStatusType = createEnum("successReceiverDeleteStatusType", liaison.linkit.matching.domain.type.SuccessReceiverDeleteStatusType.class);

public final EnumPath<liaison.linkit.matching.domain.type.SuccessSenderDeleteStatusType> successSenderDeleteStatusType = createEnum("successSenderDeleteStatusType", liaison.linkit.matching.domain.type.SuccessSenderDeleteStatusType.class);

public final liaison.linkit.team.domain.announcement.QTeamMemberAnnouncement teamMemberAnnouncement;

public QTeamMatching(String variable) {
Expand Down
45 changes: 36 additions & 9 deletions src/main/java/liaison/linkit/matching/domain/PrivateMatching.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import jakarta.persistence.*;
import liaison.linkit.global.BaseEntity;
import liaison.linkit.matching.domain.type.MatchingStatusType;
import liaison.linkit.matching.domain.type.MatchingType;
import liaison.linkit.matching.domain.type.ReceiverDeleteStatusType;
import liaison.linkit.matching.domain.type.SenderType;
import liaison.linkit.matching.domain.type.*;
import liaison.linkit.member.domain.Member;
import liaison.linkit.profile.domain.Profile;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -59,9 +56,20 @@ public class PrivateMatching extends BaseEntity {
@Enumerated(value = STRING)
private MatchingStatusType matchingStatusType;

@Column(name = "receiver_delete_status_type")
// 내가 보낸 매칭 삭제 관리 컬럼 (발신자)
@Column(name = "request_sender_delete_status_type")
@Enumerated(value = STRING)
private ReceiverDeleteStatusType receiverDeleteStatusType;
private RequestSenderDeleteStatusType requestSenderDeleteStatusType;

// 성사된 매칭 삭제 관리 컬럼 (발신자)
@Column(name = "success_sender_delete_status_type")
@Enumerated(value = STRING)
private SuccessSenderDeleteStatusType successSenderDeleteStatusType;

// 성사된 매칭 삭제 관리 컬럼 (수신자)
@Column(name = "success_receiver_delete_status_type")
@Enumerated(value = STRING)
private SuccessReceiverDeleteStatusType successReceiverDeleteStatusType;

// 이 매칭 요청을 보낸 사람이 열람을 했나요?
@Column(name = "is_sender_check", columnDefinition = "Boolean default false")
Expand All @@ -79,11 +87,30 @@ public void updateMatchingStatus(final boolean isAllow) {
}
}

public void updateReceiverDeleteStatusType(final boolean isDeleted) {
// 내가 보낸 매칭에서 발신자가 삭제한 경우
public void updateRequestSenderDeleteStatusType(final boolean isDeleted) {
if (isDeleted) {
this.requestSenderDeleteStatusType = RequestSenderDeleteStatusType.DELETED;
} else {
this.requestSenderDeleteStatusType = RequestSenderDeleteStatusType.REMAINED;
}
}

// 성사된 매칭에서 발신자가 삭제한 경우
public void updateSuccessSenderDeleteStatusType(final boolean isDeleted) {
if (isDeleted) {
this.successSenderDeleteStatusType = SuccessSenderDeleteStatusType.DELETED;
} else {
this.successSenderDeleteStatusType = SuccessSenderDeleteStatusType.REMAINED;
}
}

// 성사된 매칭에서 수신자가 삭제한 경우
public void updateSuccessReceiverDeleteStatusType(final boolean isDeleted) {
if (isDeleted) {
this.receiverDeleteStatusType = ReceiverDeleteStatusType.DELETED;
this.successReceiverDeleteStatusType = SuccessReceiverDeleteStatusType.DELETED;
} else {
this.receiverDeleteStatusType = ReceiverDeleteStatusType.REMAINED;
this.successReceiverDeleteStatusType = SuccessReceiverDeleteStatusType.REMAINED;
}
}
}
46 changes: 37 additions & 9 deletions src/main/java/liaison/linkit/matching/domain/TeamMatching.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import jakarta.persistence.*;
import liaison.linkit.global.BaseEntity;
import liaison.linkit.matching.domain.type.MatchingStatusType;
import liaison.linkit.matching.domain.type.MatchingType;
import liaison.linkit.matching.domain.type.ReceiverDeleteStatusType;
import liaison.linkit.matching.domain.type.SenderType;
import liaison.linkit.matching.domain.type.*;
import liaison.linkit.member.domain.Member;
import liaison.linkit.team.domain.announcement.TeamMemberAnnouncement;
import lombok.AllArgsConstructor;
Expand Down Expand Up @@ -58,9 +55,20 @@ public class TeamMatching extends BaseEntity {
@Enumerated(value = STRING)
private MatchingStatusType matchingStatusType;

@Column(name = "receiver_delete_status_type")
// 내가 보낸 매칭 삭제 관리 컬럼 (발신자)
@Column(name = "request_sender_delete_status_type")
@Enumerated(value = STRING)
private ReceiverDeleteStatusType receiverDeleteStatusType;
private RequestSenderDeleteStatusType requestSenderDeleteStatusType;

// 성사된 매칭 삭제 관리 컬럼 (발신자)
@Column(name = "success_sender_delete_status_type")
@Enumerated(value = STRING)
private SuccessSenderDeleteStatusType successSenderDeleteStatusType;

// 성사된 매칭 삭제 관리 컬럼 (수신자)
@Column(name = "success_receiver_delete_status_type")
@Enumerated(value = STRING)
private SuccessReceiverDeleteStatusType successReceiverDeleteStatusType;

// 이 매칭 요청을 보낸 사람이 열람을 했나요?
@Column(name = "is_sender_check", columnDefinition = "boolean default false")
Expand All @@ -78,11 +86,31 @@ public void updateMatchingStatus(final boolean isAllow) {
}
}

public void updateReceiverDeleteStatusType(final boolean isDeleted) {

// 내가 보낸 매칭에서 발신자가 삭제한 경우
public void updateRequestSenderDeleteStatusType(final boolean isDeleted) {
if (isDeleted) {
this.requestSenderDeleteStatusType = RequestSenderDeleteStatusType.DELETED;
} else {
this.requestSenderDeleteStatusType = RequestSenderDeleteStatusType.REMAINED;
}
}

// 성사된 매칭에서 발신자가 삭제한 경우
public void updateSuccessSenderDeleteStatusType(final boolean isDeleted) {
if (isDeleted) {
this.successSenderDeleteStatusType = SuccessSenderDeleteStatusType.DELETED;
} else {
this.successSenderDeleteStatusType = SuccessSenderDeleteStatusType.REMAINED;
}
}

// 성사된 매칭에서 수신자가 삭제한 경우
public void updateSuccessReceiverDeleteStatusType(final boolean isDeleted) {
if (isDeleted) {
this.receiverDeleteStatusType = ReceiverDeleteStatusType.DELETED;
this.successReceiverDeleteStatusType = SuccessReceiverDeleteStatusType.DELETED;
} else {
this.receiverDeleteStatusType = ReceiverDeleteStatusType.REMAINED;
this.successReceiverDeleteStatusType = SuccessReceiverDeleteStatusType.REMAINED;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import liaison.linkit.matching.domain.PrivateMatching;
import liaison.linkit.matching.domain.QPrivateMatching;
import liaison.linkit.matching.domain.type.MatchingStatusType;
import liaison.linkit.matching.domain.type.ReceiverDeleteStatusType;
import liaison.linkit.matching.domain.type.RequestSenderDeleteStatusType;
import liaison.linkit.matching.domain.type.SuccessReceiverDeleteStatusType;
import liaison.linkit.matching.domain.type.SuccessSenderDeleteStatusType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
Expand Down Expand Up @@ -37,7 +39,7 @@ public List<PrivateMatching> findByMemberIdAndMatchingStatus(final Long memberId
.selectFrom(privateMatching)
.where(privateMatching.member.id.eq(memberId)
.and(privateMatching.matchingStatusType.eq(MatchingStatusType.REQUESTED))
.and(privateMatching.receiverDeleteStatusType.eq(ReceiverDeleteStatusType.REMAINED)))
.and(privateMatching.requestSenderDeleteStatusType.eq(RequestSenderDeleteStatusType.REMAINED)))
.fetch();
}

Expand All @@ -48,7 +50,8 @@ public List<PrivateMatching> findSuccessReceivedMatching(final Long profileId) {
return jpaQueryFactory
.selectFrom(privateMatching)
.where(privateMatching.profile.id.eq(profileId)
.and(privateMatching.matchingStatusType.eq(MatchingStatusType.SUCCESSFUL)))
.and(privateMatching.matchingStatusType.eq(MatchingStatusType.SUCCESSFUL))
.and(privateMatching.successReceiverDeleteStatusType.eq(SuccessReceiverDeleteStatusType.REMAINED)))
.fetch();
}

Expand All @@ -59,10 +62,11 @@ public List<PrivateMatching> findSuccessRequestMatching(final Long memberId) {
return jpaQueryFactory
.selectFrom(privateMatching)
.where(privateMatching.member.id.eq(memberId)
.and(privateMatching.matchingStatusType.eq(MatchingStatusType.SUCCESSFUL)))
.and(privateMatching.matchingStatusType.eq(MatchingStatusType.SUCCESSFUL))
.and(privateMatching.successSenderDeleteStatusType.eq(SuccessSenderDeleteStatusType.REMAINED)))
.fetch();
}

@Override
public boolean existsByProfileId(final Long profileId) {
QPrivateMatching privateMatching = QPrivateMatching.privateMatching;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import liaison.linkit.matching.domain.QTeamMatching;
import liaison.linkit.matching.domain.TeamMatching;
import liaison.linkit.matching.domain.type.MatchingStatusType;
import liaison.linkit.matching.domain.type.ReceiverDeleteStatusType;
import liaison.linkit.matching.domain.type.RequestSenderDeleteStatusType;
import liaison.linkit.matching.domain.type.SuccessReceiverDeleteStatusType;
import liaison.linkit.matching.domain.type.SuccessSenderDeleteStatusType;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -25,8 +27,7 @@ public List<TeamMatching> findAllByTeamMemberAnnouncementIds(final List<Long> te
return jpaQueryFactory
.selectFrom(teamMatching)
.where(teamMatching.teamMemberAnnouncement.id.in(teamMemberAnnouncementIds)
.and(teamMatching.matchingStatusType.eq(MatchingStatusType.REQUESTED))
.and(teamMatching.receiverDeleteStatusType.eq(ReceiverDeleteStatusType.REMAINED)))
.and(teamMatching.matchingStatusType.eq(MatchingStatusType.REQUESTED)))
.fetch();
}

Expand All @@ -37,7 +38,8 @@ public List<TeamMatching> findByMemberIdAndMatchingStatus(final Long memberId) {
return jpaQueryFactory
.selectFrom(teamMatching)
.where(teamMatching.member.id.eq(memberId)
.and(teamMatching.matchingStatusType.eq(MatchingStatusType.REQUESTED)))
.and(teamMatching.matchingStatusType.eq(MatchingStatusType.REQUESTED))
.and(teamMatching.requestSenderDeleteStatusType.eq(RequestSenderDeleteStatusType.REMAINED)))
.fetch();
}

Expand All @@ -48,7 +50,8 @@ public List<TeamMatching> findSuccessReceivedMatching(final List<Long> teamMembe
return jpaQueryFactory
.selectFrom(teamMatching)
.where(teamMatching.matchingStatusType.eq(MatchingStatusType.SUCCESSFUL)
.and(teamMatching.teamMemberAnnouncement.id.in(teamMemberAnnouncementIds)))
.and(teamMatching.teamMemberAnnouncement.id.in(teamMemberAnnouncementIds))
.and(teamMatching.successReceiverDeleteStatusType.eq(SuccessReceiverDeleteStatusType.REMAINED)))
.fetch();
}

Expand All @@ -59,7 +62,8 @@ public List<TeamMatching> findSuccessRequestMatching(final Long memberId) {
return jpaQueryFactory
.selectFrom(teamMatching)
.where(teamMatching.matchingStatusType.eq(MatchingStatusType.SUCCESSFUL)
.and(teamMatching.member.id.eq(memberId)))
.and(teamMatching.member.id.eq(memberId))
.and(teamMatching.successSenderDeleteStatusType.eq(SuccessSenderDeleteStatusType.REMAINED)))
.fetch();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package liaison.linkit.matching.domain.type;

public enum ReceiverDeleteStatusType {
public enum RequestSenderDeleteStatusType {
DELETED,
REMAINED
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package liaison.linkit.matching.domain.type;

public enum SuccessReceiverDeleteStatusType {
DELETED,
REMAINED
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package liaison.linkit.matching.domain.type;

public enum SuccessSenderDeleteStatusType {
DELETED,
REMAINED

}
Loading
Loading