diff --git a/src/main/java/ussum/homepage/application/post/service/PostManageService.java b/src/main/java/ussum/homepage/application/post/service/PostManageService.java index e2a2855..81dcc84 100644 --- a/src/main/java/ussum/homepage/application/post/service/PostManageService.java +++ b/src/main/java/ussum/homepage/application/post/service/PostManageService.java @@ -176,7 +176,7 @@ public PostDetailRes getPost(Long userId, String boardCode, Long postId) { public PostCreateResponse createBoardPost(Long userId, String boardCode, PostCreateRequest postCreateRequest){ Board board = boardReader.getBoardWithBoardCode(boardCode); Post post = postAppender.createPost(postCreateRequest.toDomain(board, userId)); - postFileAppender.updatePostIdForIds(postCreateRequest.postFileList(), post.getId()); + postFileAppender.updatePostIdForIds(postCreateRequest.postFileList(), post.getId(), FileCategory.자료집아님); return PostCreateResponse.of(post.getId(), boardCode); } @@ -272,14 +272,14 @@ public Long editBoardPost(String boardCode, Long postId, PostUpdateRequest postU Post post = postReader.getPostWithId(postId); Board board = boardReader.getBoardWithBoardCode(boardCode); Post newPost = postModifier.updatePost(postUpdateRequest.toDomain(post, board)); - postFileAppender.updatePostIdForIds(postUpdateRequest.postFileList(), newPost.getId()); + postFileAppender.updatePostIdForIds(postUpdateRequest.postFileList(), newPost.getId(), FileCategory.자료집아님); return post.getId(); } @Transactional public Long editBoardDatePost(String fileCategory, Long postId, PostUpdateRequest postUpdateRequest){ Post post = postReader.getPostWithId(postId); Post newPost = postModifier.updateDataPost(post, postUpdateRequest.categoryCode()); - postFileAppender.updatePostIdForIds(postUpdateRequest.postFileList(), newPost.getId()); + postFileAppender.updatePostIdForIds(postUpdateRequest.postFileList(), newPost.getId(), FileCategory.fromString(fileCategory)); return post.getId(); } diff --git a/src/main/java/ussum/homepage/application/post/service/dto/response/DataPostResponse.java b/src/main/java/ussum/homepage/application/post/service/dto/response/DataPostResponse.java index bcc39c7..70629e8 100644 --- a/src/main/java/ussum/homepage/application/post/service/dto/response/DataPostResponse.java +++ b/src/main/java/ussum/homepage/application/post/service/dto/response/DataPostResponse.java @@ -19,11 +19,11 @@ private DataPostResponse(Long postId, String title, String content, String date, this.files = files; } - public static DataPostResponse of(Post post, List files) { + public static DataPostResponse of(Post post, List files, String content) { return DataPostResponse.builder() .postId(post.getId()) .title(post.getTitle()) - .content(post.getContent()) + .content(content) .category(post.getCategory()) .date(post.getCreatedAt()) .isNotice(post.getTitle().equals("총학생회칙")) diff --git a/src/main/java/ussum/homepage/domain/post/PostFileRepository.java b/src/main/java/ussum/homepage/domain/post/PostFileRepository.java index 24888a8..eef294b 100644 --- a/src/main/java/ussum/homepage/domain/post/PostFileRepository.java +++ b/src/main/java/ussum/homepage/domain/post/PostFileRepository.java @@ -10,6 +10,6 @@ public interface PostFileRepository { Long deleteAllByUrl(List urlList); Optional findById(Long id); List saveAll(List postFiles); - void updatePostIdForIds(List postFileIds, Long postId); + void updatePostIdForIds(List postFileIds, Long postId, FileCategory fileCategory); void updatePostIdAndFileCategoryForIds(List postFileIds, Long postId, FileCategory fileCategory); } diff --git a/src/main/java/ussum/homepage/domain/post/service/PostFileAppender.java b/src/main/java/ussum/homepage/domain/post/service/PostFileAppender.java index b76e069..a783641 100644 --- a/src/main/java/ussum/homepage/domain/post/service/PostFileAppender.java +++ b/src/main/java/ussum/homepage/domain/post/service/PostFileAppender.java @@ -22,8 +22,8 @@ public List saveAllPostFile(List fileList) { } @Transactional - public void updatePostIdForIds(List postFileIds, Long postId) { - postFileRepository.updatePostIdForIds(postFileIds, postId); + public void updatePostIdForIds(List postFileIds, Long postId, FileCategory fileCategory) { + postFileRepository.updatePostIdForIds(postFileIds, postId, fileCategory); } @Transactional diff --git a/src/main/java/ussum/homepage/domain/post/service/factory/postList/DataPostResponseFactory.java b/src/main/java/ussum/homepage/domain/post/service/factory/postList/DataPostResponseFactory.java index 7c79e3d..b19c7f5 100644 --- a/src/main/java/ussum/homepage/domain/post/service/factory/postList/DataPostResponseFactory.java +++ b/src/main/java/ussum/homepage/domain/post/service/factory/postList/DataPostResponseFactory.java @@ -21,6 +21,7 @@ public PostListResDto createResponse(Post post, PostReader postReader, PostReact @Override public PostListResDto createDataResponse(Post post, List postFiles) { List fileResponses = postFiles.stream().map(postFile -> FileResponse.of(postFile)).toList(); - return DataPostResponse.of(post, fileResponses); + String content = postFiles.get(0).getFileCategory(); + return DataPostResponse.of(post, fileResponses, content); } } diff --git a/src/main/java/ussum/homepage/infra/jpa/post/PostFileRepositoryImpl.java b/src/main/java/ussum/homepage/infra/jpa/post/PostFileRepositoryImpl.java index 2903e48..da221d5 100644 --- a/src/main/java/ussum/homepage/infra/jpa/post/PostFileRepositoryImpl.java +++ b/src/main/java/ussum/homepage/infra/jpa/post/PostFileRepositoryImpl.java @@ -54,10 +54,11 @@ public List saveAll(List fileList) { } @Override - public void updatePostIdForIds(List postFileIds, Long postId) { + public void updatePostIdForIds(List postFileIds, Long postId, FileCategory fileCategory) { queryFactory .update(postFileEntity) .set(postFileEntity.postEntity.id, postId) + .set(postFileEntity.fileCategory, fileCategory) .where(postFileEntity.id.in(postFileIds)) .execute(); } diff --git a/src/main/java/ussum/homepage/infra/jpa/post/entity/FileCategory.java b/src/main/java/ussum/homepage/infra/jpa/post/entity/FileCategory.java index e791814..061ae6e 100644 --- a/src/main/java/ussum/homepage/infra/jpa/post/entity/FileCategory.java +++ b/src/main/java/ussum/homepage/infra/jpa/post/entity/FileCategory.java @@ -57,7 +57,9 @@ public enum FileCategory { 단과대회의록("단과대", "접속계정", "회의록"), 예결산안("단과대", "접속계정", "예결산안"), 단과대활동보고("단과대", "접속계정", "활동보고"), - 대표자회의결과보고("단과대", "접속계정", "대표자회의결과보고"); + 대표자회의결과보고("단과대", "접속계정", "대표자회의결과보고"), + + 자료집아님("","",""); private final String majorCategory; private final String middleCategory; private final String subCategory; @@ -97,4 +99,12 @@ public static List getFileCategoriesByCategories(String majorCateg private static boolean matchCategory(String categoryValue, String filterValue) { return filterValue == null || categoryValue.equals(filterValue); } + + public static FileCategory fromString(String value) { + try { + return FileCategory.valueOf(value); + } catch (IllegalArgumentException e) { + throw new InvalidValueException(INVALID_FILE_CATEGORY); + } + } } diff --git a/src/main/java/ussum/homepage/infra/jpa/post/entity/PostEntity.java b/src/main/java/ussum/homepage/infra/jpa/post/entity/PostEntity.java index 87cfe4d..61b96c1 100644 --- a/src/main/java/ussum/homepage/infra/jpa/post/entity/PostEntity.java +++ b/src/main/java/ussum/homepage/infra/jpa/post/entity/PostEntity.java @@ -40,6 +40,9 @@ public class PostEntity extends BaseEntity { @JoinColumn(name = "board_id") private BoardEntity boardEntity; + public PostEntity(Long postId) { + } + public static PostEntity from(Long id){ return new PostEntity(id, null, null, null, null, null, null, null, null, null); }