Skip to content

Commit

Permalink
Merge pull request #107 from IRECIPE/fix/106
Browse files Browse the repository at this point in the history
[FIX] 사용자 관심, 작성글 DTO 수정
  • Loading branch information
Iaminjae authored Feb 16, 2024
2 parents 85483f1 + a42865e commit 18d8929
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import umc.IRECIPE_Server.apiPayLoad.exception.handler.PostHandler;
import umc.IRECIPE_Server.common.S3.S3Service;
import umc.IRECIPE_Server.converter.MemberConverter;
import umc.IRECIPE_Server.converter.PostConverter;
import umc.IRECIPE_Server.dto.MemberRequest;
import umc.IRECIPE_Server.dto.MemberResponse;
import umc.IRECIPE_Server.dto.MemberLoginRequestDto;
Expand Down Expand Up @@ -113,15 +114,15 @@ public ApiResponse<MemberResponse.JoinResultDto> joinLogin(

@Operation(summary = "작성 글 API",description = "사용자가 작성한 글 보기")
@GetMapping(value = "/written")
public ApiResponse<List<MemberResponse.getPostsDto>> showWrittenPosts(
public ApiResponse<?> showWrittenPosts(
@RequestParam(name = "page") Integer page
){
if(page < 0) throw new PostHandler(ErrorStatus.INVALID_PAGE);
//사용자 id 찾기
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String userId = authentication.getName();//personal id

return ApiResponse.onSuccess(MemberConverter.postsListDto(memberService.getWrittenPostList(userId, page)));
return memberService.getWrittenPostList(userId, page);
}

@Operation(summary = "관심 글 API",description = "사용자가 좋아요 누른 글 보기")
Expand All @@ -134,7 +135,7 @@ public ApiResponse<?> showLikedPosts(
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String userId = authentication.getName();//personal id

return ApiResponse.onSuccess(MemberConverter.postsLikedListDto(memberService.getLikedPostList(userId, page)));
return memberService.getLikedPostList(userId, page);
}

@Operation(summary = "토큰 재발급 API", description = "토큰 재발급")
Expand Down
32 changes: 0 additions & 32 deletions src/main/java/umc/IRECIPE_Server/converter/MemberConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -103,36 +103,4 @@ public static MemberResponse.getPostsDto postsDto(Post post){
.build();
}

public static List<MemberResponse.getPostsDto> postsListDto(Page<Post> postPage){
return postPage.stream()
.map(val -> MemberResponse.getPostsDto.builder()
.title(val.getTitle())
.subhead(val.getSubhead())
.level(val.getLevel())
.score(val.getScore())
.content(val.getContent())
.likes(val.getLikes())
.imageUrl(val.getImageUrl())
.category(val.getCategory())
.fileName(val.getFileName())
.build())
.collect(Collectors.toList());
}

public static List<MemberResponse.getPostsDto> postsLikedListDto(List<Post> postList){
return postList.stream()
.map(val -> MemberResponse.getPostsDto.builder()
.title(val.getTitle())
.subhead(val.getSubhead())
.level(val.getLevel())
.score(val.getScore())
.content(val.getContent())
.likes(val.getLikes())
.imageUrl(val.getImageUrl())
.category(val.getCategory())
.fileName(val.getFileName())
.build())
.collect(Collectors.toList());
}

}
21 changes: 21 additions & 0 deletions src/main/java/umc/IRECIPE_Server/converter/PostConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,27 @@ public static PostResponseDTO.updateDTO toUpdateResponseDTO(Post post){
.build();
}

public static List<PostResponseDTO.getDTO> toGetAllPostListDTO(Member member, List<Post> postPage, Map<Long, Boolean> likeMap){
return postPage.stream()
.map(m -> PostResponseDTO.getDTO.builder()
.postId(m.getId())
.title(m.getTitle())
.subhead(m.getSubhead())
.imageUrl(m.getImageUrl())
.likes(m.getLikes())
.score(m.getScore())
.reviewsCount(m.getReviewList().size())
.writerImage(m.getMember().getProfileImage())
.writerNickName(m.getMember().getNickname())
.createdAt(m.getCreatedAt().toLocalDate())
.likeOrNot(likeMap.get(m.getId()))
.category(m.getCategory())
.content(m.getContent())
.myPost(m.getMember().equals(member))
.build())
.collect(Collectors.toList());
}

public static List<PostResponseDTO.getAllPostDTO> toGetAllPostDTO(Page<Post> postPage, Map<Long, Boolean> likeMap){
return postPage.stream()
.map(m -> PostResponseDTO.getAllPostDTO.builder()
Expand Down
29 changes: 25 additions & 4 deletions src/main/java/umc/IRECIPE_Server/service/MemberService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.Flow.Publisher;
import lombok.RequiredArgsConstructor;
Expand All @@ -14,6 +16,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import umc.IRECIPE_Server.apiPayLoad.ApiResponse;
import umc.IRECIPE_Server.apiPayLoad.code.status.ErrorStatus;
import umc.IRECIPE_Server.apiPayLoad.exception.handler.AllergyHandler;
import umc.IRECIPE_Server.apiPayLoad.exception.handler.MemberHandler;
Expand All @@ -22,6 +25,7 @@
import umc.IRECIPE_Server.common.enums.Status;
import umc.IRECIPE_Server.converter.MemberAllergyConverter;
import umc.IRECIPE_Server.converter.MemberConverter;
import umc.IRECIPE_Server.converter.PostConverter;
import umc.IRECIPE_Server.dto.MemberRequest;
import umc.IRECIPE_Server.dto.MemberResponse;
import umc.IRECIPE_Server.dto.MemberLoginRequestDto;
Expand Down Expand Up @@ -188,7 +192,7 @@ public Member login(MemberLoginRequestDto.JoinLoginDto request){
}

@Transactional
public Page<Post> getWrittenPostList(String personalId, Integer page) {
public ApiResponse<?> getWrittenPostList(String personalId, Integer page) {
Page<Post> postPage;
Pageable pageable = PageRequest.of(page, 10);

Expand All @@ -205,11 +209,19 @@ public Page<Post> getWrittenPostList(String personalId, Integer page) {
else if(page == 0) throw new PostHandler(ErrorStatus.MEMBER_DONT_HAVE_POSTS);
}

return postPage;
// memberLike 에서 찾으면 관심 눌렀던 게시글, 못 찾으면 관심 안 누른 게시글
Map<Long, Boolean> likeMap = new HashMap<>();
for (Post post : postPage) {
Boolean likeOrNot = memberLikesRepository.findByMemberAndPost(mem, post).isPresent();
likeMap.put(post.getId(), likeOrNot);
}

return ApiResponse.onSuccess(PostConverter.toGetAllPostDTO(postPage, likeMap));
}

//회원 관심글 보기
@Transactional
public List<Post> getLikedPostList(String personalId, Integer page) {
public ApiResponse<?> getLikedPostList(String personalId, Integer page) {
Page<MemberLikes> postIdPage;
Pageable pageable = PageRequest.of(page, 10);

Expand Down Expand Up @@ -237,9 +249,17 @@ public List<Post> getLikedPostList(String personalId, Integer page) {
throw new MemberHandler(ErrorStatus.POST_NOT_FOUND);
}

return postList;
// memberLike 에서 찾으면 관심 눌렀던 게시글, 못 찾으면 관심 안 누른 게시글
Map<Long, Boolean> likeMap = new HashMap<>();
for (Post post : postList) {
Boolean likeOrNot = memberLikesRepository.findByMemberAndPost(mem, post).isPresent();
likeMap.put(post.getId(), likeOrNot);
}

return ApiResponse.onSuccess(PostConverter.toGetAllPostListDTO(mem, postList, likeMap));
}

//토큰 재발급
@Transactional
public Member refresh(Member member){
if(tokenRepository.existsByMember(member)){ // 이미 refresh token이 있다면
Expand All @@ -251,6 +271,7 @@ public Member refresh(Member member){
return member;
}

//회원 탈퇴
@Transactional
public void deleteMember(String personalId){
Optional<Member> member = memberRepository.findByPersonalId(personalId);
Expand Down

0 comments on commit 18d8929

Please sign in to comment.