From 89f20b8a472993b283394e2638652c11ea826887 Mon Sep 17 00:00:00 2001 From: junho <2171168@hansung.ac.kr> Date: Thu, 21 Aug 2025 22:28:03 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=82=B4=EA=B0=80=20=EC=9E=91=EC=84=B1=ED=95=9C=20?= =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/card/controller/CardController.java | 8 ++++++++ .../domain/card/repository/CardRepository.java | 4 ++++ .../spring/domain/card/service/CardService.java | 1 + .../domain/card/service/CardServiceImpl.java | 17 +++++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/src/main/java/EatPic/spring/domain/card/controller/CardController.java b/src/main/java/EatPic/spring/domain/card/controller/CardController.java index 6393f32..31cb0c1 100644 --- a/src/main/java/EatPic/spring/domain/card/controller/CardController.java +++ b/src/main/java/EatPic/spring/domain/card/controller/CardController.java @@ -151,5 +151,13 @@ public ApiResponse getProfileCardsList(@PathVar return ApiResponse.onSuccess(cardService.getProfileCardList(userId, size, cursor)); } + @GetMapping("/mypage/feeds") + @Operation(summary = "내가 작성한 피드 보기", description = "내가 작성한 피드 전체 조회(미리보기)") + public ApiResponse getMyCardsList(HttpServletRequest request, + @RequestParam(required = false) Long cursor, + @RequestParam(defaultValue = "15") int size) { + return ApiResponse.onSuccess(cardService.getMyProfileCardList(request, size, cursor)); + } + } diff --git a/src/main/java/EatPic/spring/domain/card/repository/CardRepository.java b/src/main/java/EatPic/spring/domain/card/repository/CardRepository.java index 8170d01..4a23be4 100644 --- a/src/main/java/EatPic/spring/domain/card/repository/CardRepository.java +++ b/src/main/java/EatPic/spring/domain/card/repository/CardRepository.java @@ -115,6 +115,10 @@ SELECT ch.hashtag.id, COUNT(ch.card.id) Slice findByUserIdAndIsSharedTrueAndIsDeletedFalseOrderByIdDesc(Long userId, Pageable pageable); Slice findByUserIdAndIsSharedTrueAndIsDeletedFalseAndIdLessThanOrderByIdDesc(Long userId, Long cursor, Pageable pageable); + Slice findByUserIdAndIsDeletedFalseOrderByIdDesc(Long userId, Pageable pageable); + Slice findByUserIdAndIsDeletedFalseAndIdLessThanOrderByIdDesc(Long userId, Long cursor, Pageable pageable); + + @Query(""" select count(c) from Card c diff --git a/src/main/java/EatPic/spring/domain/card/service/CardService.java b/src/main/java/EatPic/spring/domain/card/service/CardService.java index eba237a..4c301b0 100644 --- a/src/main/java/EatPic/spring/domain/card/service/CardService.java +++ b/src/main/java/EatPic/spring/domain/card/service/CardService.java @@ -26,4 +26,5 @@ public interface CardService { CardResponse.PagedCardFeedResponseDto getCardFeedByCursor(HttpServletRequest request, Long userId, int size, Long cursor); List getRecommendedCardPreviews(Long userId); CardResponse.ProfileCardListDTO getProfileCardList(Long userId, int size, Long cursor); + CardResponse.ProfileCardListDTO getMyProfileCardList(HttpServletRequest request,int size, Long cursor); } diff --git a/src/main/java/EatPic/spring/domain/card/service/CardServiceImpl.java b/src/main/java/EatPic/spring/domain/card/service/CardServiceImpl.java index 8e8200c..4609b9e 100644 --- a/src/main/java/EatPic/spring/domain/card/service/CardServiceImpl.java +++ b/src/main/java/EatPic/spring/domain/card/service/CardServiceImpl.java @@ -264,6 +264,23 @@ public CardResponse.ProfileCardListDTO getProfileCardList(Long userId, int size, return CardConverter.toProfileCardList(userId, cardSlice); } + @Override + public CardResponse.ProfileCardListDTO getMyProfileCardList(HttpServletRequest request,int size, Long cursor) { + User me = userService.getLoginUser(request); + + Slice cardSlice; + Pageable pageable = PageRequest.of(0, size); + + if (cursor == null) { + cardSlice = cardRepository.findByUserIdAndIsDeletedFalseOrderByIdDesc(me.getId(), pageable); + } else { + cardSlice = cardRepository.findByUserIdAndIsDeletedFalseAndIdLessThanOrderByIdDesc(me.getId(), cursor, pageable); + } + return CardConverter.toProfileCardList(me.getId(), cardSlice); + } + + + @Override @Transactional public CardDeleteResponse deleteCard(Long cardId, Long userId) {