From 525c173e54e7ba4110b0ddb498e3c450939fa99a Mon Sep 17 00:00:00 2001 From: giwoong Date: Sat, 4 May 2024 20:37:22 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=B0=A8?= =?UTF-8?q?=EB=8B=A8=20=EB=8F=84=EB=A9=94=EC=9D=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/domain/QBlockedMemberMapping.java | 54 +++++++++++++++++++ .../member/domain/BlockedMemberMapping.java | 33 ++++++++++++ .../example/copro/member/domain/Member.java | 20 +++++++ .../BlockedMemberMappingRepository.java | 7 +++ 4 files changed, 114 insertions(+) create mode 100644 src/main/generated/com/example/copro/member/domain/QBlockedMemberMapping.java create mode 100644 src/main/java/com/example/copro/member/domain/BlockedMemberMapping.java create mode 100644 src/main/java/com/example/copro/member/domain/repository/BlockedMemberMappingRepository.java diff --git a/src/main/generated/com/example/copro/member/domain/QBlockedMemberMapping.java b/src/main/generated/com/example/copro/member/domain/QBlockedMemberMapping.java new file mode 100644 index 0000000..6b31009 --- /dev/null +++ b/src/main/generated/com/example/copro/member/domain/QBlockedMemberMapping.java @@ -0,0 +1,54 @@ +package com.example.copro.member.domain; + +import static com.querydsl.core.types.PathMetadataFactory.*; + +import com.querydsl.core.types.dsl.*; + +import com.querydsl.core.types.PathMetadata; +import javax.annotation.processing.Generated; +import com.querydsl.core.types.Path; +import com.querydsl.core.types.dsl.PathInits; + + +/** + * QBlockedMemberMapping is a Querydsl query type for BlockedMemberMapping + */ +@Generated("com.querydsl.codegen.DefaultEntitySerializer") +public class QBlockedMemberMapping extends EntityPathBase { + + private static final long serialVersionUID = 16622364L; + + private static final PathInits INITS = PathInits.DIRECT2; + + public static final QBlockedMemberMapping blockedMemberMapping = new QBlockedMemberMapping("blockedMemberMapping"); + + public final QMember blockedMember; + + public final NumberPath id = createNumber("id", Long.class); + + public final QMember member; + + public QBlockedMemberMapping(String variable) { + this(BlockedMemberMapping.class, forVariable(variable), INITS); + } + + public QBlockedMemberMapping(Path path) { + this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS)); + } + + public QBlockedMemberMapping(PathMetadata metadata) { + this(metadata, PathInits.getFor(metadata, INITS)); + } + + public QBlockedMemberMapping(PathMetadata metadata, PathInits inits) { + this(BlockedMemberMapping.class, metadata, inits); + } + + public QBlockedMemberMapping(Class type, PathMetadata metadata, PathInits inits) { + super(type, metadata, inits); + this.blockedMember = inits.isInitialized("blockedMember") ? new QMember(forProperty("blockedMember")) : null; + this.member = inits.isInitialized("member") ? new QMember(forProperty("member")) : null; + } + +} + diff --git a/src/main/java/com/example/copro/member/domain/BlockedMemberMapping.java b/src/main/java/com/example/copro/member/domain/BlockedMemberMapping.java new file mode 100644 index 0000000..6a78633 --- /dev/null +++ b/src/main/java/com/example/copro/member/domain/BlockedMemberMapping.java @@ -0,0 +1,33 @@ +package com.example.copro.member.domain; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class BlockedMemberMapping { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(name = "member_id") + private Member member; + + @ManyToOne + @JoinColumn(name = "blocked_member_id") + private Member blockedMember; + + public BlockedMemberMapping(Member member, Member blockedMember) { + this.member = member; + this.blockedMember = blockedMember; + } +} diff --git a/src/main/java/com/example/copro/member/domain/Member.java b/src/main/java/com/example/copro/member/domain/Member.java index c2a32c1..d2915ba 100644 --- a/src/main/java/com/example/copro/member/domain/Member.java +++ b/src/main/java/com/example/copro/member/domain/Member.java @@ -92,6 +92,9 @@ public class Member { @OneToMany(mappedBy = "member", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true) private List memberLikes = new ArrayList<>(); + @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) + private List blockedMemberMappings = new ArrayList<>(); + @Builder private Member(Role role, String email, String name, String picture, SocialType socialType, boolean firstLogin, int career, int viewType) { this.role = role; @@ -193,6 +196,23 @@ private MemberScrapBoard findScrapBoard(Board board) { .orElse(null); } + public void addBlockedMember(Member blockedMember) { + BlockedMemberMapping blockedMemberMapping = new BlockedMemberMapping(this, blockedMember); + this.blockedMemberMappings.add(blockedMemberMapping); + } + + public void cancelBlockedMember(Member blockedMember) { + BlockedMemberMapping blockedMemberMapping = findBlockedMember(blockedMember); + this.blockedMemberMappings.remove(blockedMemberMapping); + } + + private BlockedMemberMapping findBlockedMember(Member blockedMember) { + return blockedMemberMappings.stream() + .filter(blockedMemberMapping -> blockedMemberMapping.getBlockedMember().equals(blockedMember)) + .findFirst() + .orElse(null); + } + public void updateImage(String picture) { this.picture = picture; } diff --git a/src/main/java/com/example/copro/member/domain/repository/BlockedMemberMappingRepository.java b/src/main/java/com/example/copro/member/domain/repository/BlockedMemberMappingRepository.java new file mode 100644 index 0000000..1e883b3 --- /dev/null +++ b/src/main/java/com/example/copro/member/domain/repository/BlockedMemberMappingRepository.java @@ -0,0 +1,7 @@ +package com.example.copro.member.domain.repository; + +import com.example.copro.member.domain.BlockedMemberMapping; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface BlockedMemberMappingRepository extends JpaRepository { +}