From 9507c22d99c409f397cd7712dd74f6f8a321a47e Mon Sep 17 00:00:00 2001 From: Dongseok Kang Date: Wed, 27 Dec 2023 01:55:39 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20domain=EB=B3=84=20state=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20(#52)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor: 각 domain state column 추가 post, member state 추가 * Refactor: 저장 및 조회 state 확인 절차 추가 생성시 state A 추가, entity에 Where annotation 사용하여 컬럼 조회시 state 확인하여 조회하게끔 수정 --- .../com/fubao/project/domain/entity/Member.java | 13 +++++++++++-- .../java/com/fubao/project/domain/entity/Post.java | 13 +++++++++++-- .../project/domain/repository/PostRepository.java | 4 ++++ .../domain/service/OAuthLoginServiceImp.java | 2 ++ .../project/domain/service/PostServiceImp.java | 6 ++---- .../project/global/common/constant/State.java | 14 ++++++++++++++ 6 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/fubao/project/global/common/constant/State.java diff --git a/src/main/java/com/fubao/project/domain/entity/Member.java b/src/main/java/com/fubao/project/domain/entity/Member.java index ac50778..c670cbc 100644 --- a/src/main/java/com/fubao/project/domain/entity/Member.java +++ b/src/main/java/com/fubao/project/domain/entity/Member.java @@ -2,9 +2,11 @@ import com.fubao.project.global.common.constant.MemberRole; import com.fubao.project.global.common.constant.OAuthProvider; +import com.fubao.project.global.common.constant.State; import com.fubao.project.global.common.entity.BaseEntity; import jakarta.persistence.*; import lombok.*; +import org.hibernate.annotations.Where; import java.util.ArrayList; import java.util.List; @@ -14,6 +16,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "member") +@Where(clause = "state = 'A'") public class Member extends BaseEntity { @Id @@ -31,26 +34,32 @@ public class Member extends BaseEntity { @Enumerated(EnumType.STRING) private MemberRole memberRole; + @Column(name = "state") + @Enumerated(EnumType.STRING) + private State state; + @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) List postList = new ArrayList<>(); public static Member of( - UUID id, OAuthProvider oAuthProvider, String providerId, MemberRole memberRole + UUID id, OAuthProvider oAuthProvider, String providerId, MemberRole memberRole, State state ) { return Member.builder() .id(id) .memberRole(memberRole) .providerId(providerId) .oAuthProvider(oAuthProvider) + .state(state) .build(); } @Builder - public Member(UUID id, OAuthProvider oAuthProvider, String providerId, MemberRole memberRole, List postList) { + public Member(UUID id, OAuthProvider oAuthProvider, String providerId, MemberRole memberRole, List postList, State state) { this.id = id; this.oauthProvider = oAuthProvider; this.providerId = providerId; this.memberRole = memberRole; + this.state = state; if (postList.isEmpty()) { this.postList = postList; } else { diff --git a/src/main/java/com/fubao/project/domain/entity/Post.java b/src/main/java/com/fubao/project/domain/entity/Post.java index c619e48..cff2866 100644 --- a/src/main/java/com/fubao/project/domain/entity/Post.java +++ b/src/main/java/com/fubao/project/domain/entity/Post.java @@ -1,8 +1,10 @@ package com.fubao.project.domain.entity; import com.fubao.project.global.common.entity.BaseEntity; +import com.fubao.project.global.common.constant.State; import jakarta.persistence.*; import lombok.*; +import org.hibernate.annotations.Where; import static jakarta.persistence.GenerationType.IDENTITY; @@ -10,6 +12,7 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "post") +@Where(clause = "state = 'A'") public class Post extends BaseEntity { @Id() @GeneratedValue(strategy = IDENTITY) @@ -26,20 +29,26 @@ public class Post extends BaseEntity { @Column(name = "content") private String content; + @Column(name = "state") + @Enumerated(EnumType.STRING) + private State state; + public static Post of( - Long id, Member member, String imageUrl, String content + Long id, Member member, String imageUrl, String content, State state ) { return Post.builder() .id(id) .member(member) .imageUrl(imageUrl) .content(content) + .state(state) .build(); } @Builder - public Post(Long id, Member member, String imageUrl, String content) { + public Post(Long id, Member member, String imageUrl, String content, State state) { this.id = id; + this.state = state; this.member = member; this.imageUrl = imageUrl; this.content = content; diff --git a/src/main/java/com/fubao/project/domain/repository/PostRepository.java b/src/main/java/com/fubao/project/domain/repository/PostRepository.java index 92e1733..94313f5 100644 --- a/src/main/java/com/fubao/project/domain/repository/PostRepository.java +++ b/src/main/java/com/fubao/project/domain/repository/PostRepository.java @@ -1,8 +1,12 @@ package com.fubao.project.domain.repository; import com.fubao.project.domain.entity.Post; +import com.fubao.project.global.common.constant.State; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; public interface PostRepository extends JpaRepository { + Page findAllByState(Pageable pageable, State state); } diff --git a/src/main/java/com/fubao/project/domain/service/OAuthLoginServiceImp.java b/src/main/java/com/fubao/project/domain/service/OAuthLoginServiceImp.java index 919aefc..b1c2aea 100644 --- a/src/main/java/com/fubao/project/domain/service/OAuthLoginServiceImp.java +++ b/src/main/java/com/fubao/project/domain/service/OAuthLoginServiceImp.java @@ -6,6 +6,7 @@ import com.fubao.project.domain.repository.MemberRepository; import com.fubao.project.domain.service.oauth.RequestOAuthInfoService; import com.fubao.project.global.common.constant.MemberRole; +import com.fubao.project.global.common.constant.State; import com.fubao.project.global.common.exception.ResponseCode; import com.fubao.project.global.common.exception.CustomException; import com.fubao.project.global.common.oauth.OAuthInfoResponse; @@ -61,6 +62,7 @@ private Member signUp(OAuthInfoResponse oAuthInfoResponse) { .oAuthProvider(oAuthInfoResponse.getOAuthProvider()) .providerId(oAuthInfoResponse.getProviderId()) .memberRole(MemberRole.MEMBER) + .state(State.A) .build(); return memberRepository.save(member); } diff --git a/src/main/java/com/fubao/project/domain/service/PostServiceImp.java b/src/main/java/com/fubao/project/domain/service/PostServiceImp.java index 7e25ead..2cd36da 100644 --- a/src/main/java/com/fubao/project/domain/service/PostServiceImp.java +++ b/src/main/java/com/fubao/project/domain/service/PostServiceImp.java @@ -6,6 +6,7 @@ import com.fubao.project.domain.entity.Post; import com.fubao.project.domain.repository.MemberRepository; import com.fubao.project.domain.repository.PostRepository; +import com.fubao.project.global.common.constant.State; import com.fubao.project.global.common.exception.ResponseCode; import com.fubao.project.global.common.exception.CustomException; import com.fubao.project.global.util.S3Util; @@ -42,6 +43,7 @@ public PostWriteResponse post(MultipartFile images, PostWriteRequest postWriteRe post = Post.builder() .content(postWriteRequest.getContent()) .member(member) + .state(State.A) .imageUrl(imageUrl).build(); save(post); @@ -128,10 +130,6 @@ private Post findPostById(Long postId) { return postRepository.findById(postId).orElseThrow(() -> new CustomException(ResponseCode.POST_NOT_FOUND)); } - private boolean existPost(Long postId) { - return postRepository.existsById(postId); - } - private String uploadS3Image(MultipartFile images) { return s3Util.uploadFileToS3(DIR, images); } diff --git a/src/main/java/com/fubao/project/global/common/constant/State.java b/src/main/java/com/fubao/project/global/common/constant/State.java new file mode 100644 index 0000000..f02f5f2 --- /dev/null +++ b/src/main/java/com/fubao/project/global/common/constant/State.java @@ -0,0 +1,14 @@ +package com.fubao.project.global.common.constant; + +import lombok.Getter; + +@Getter +public enum State { + A("ACTIVE"), + D("DELETE"); + private final String name; + + State(String name) { + this.name = name; + } +}