From 93abbb5647fa7d0731b9a16b151dc3547cc5ee53 Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Mon, 14 Aug 2023 15:29:05 +0900 Subject: [PATCH 1/7] =?UTF-8?q?#11=20refactor:=20home=20=ED=95=98=EB=82=98?= =?UTF-8?q?=EB=A1=9C=20=EB=A7=8C=EB=93=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../place/home/controller/HomeController.java | 27 +++++----- .../place/home/dto/GetHomeUserDetailsRes.java | 53 +++++++++++++++++++ 2 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java diff --git a/place/src/main/java/com/umc/place/home/controller/HomeController.java b/place/src/main/java/com/umc/place/home/controller/HomeController.java index ad7550b..53b7107 100644 --- a/place/src/main/java/com/umc/place/home/controller/HomeController.java +++ b/place/src/main/java/com/umc/place/home/controller/HomeController.java @@ -1,6 +1,7 @@ package com.umc.place.home.controller; import com.umc.place.common.BaseResponse; +import com.umc.place.home.dto.GetHomeUserDetailsRes; import com.umc.place.home.dto.GetHomeUserLikeDetailRes; import com.umc.place.home.dto.GetHomeUserRecentDetailRes; import com.umc.place.home.dto.GetHomeUserViewDetailRes; @@ -18,18 +19,18 @@ public class HomeController { private final HomeService homeService; @ResponseBody - @GetMapping("userRecent") - public BaseResponse getHomeUserRecentDetail(){ - return new BaseResponse<>(homeService.getHomeUserRecentDetail()); - } - @ResponseBody - @GetMapping("userView") - public BaseResponse getHomeUserViewDetailRes(){ - return new BaseResponse<>(homeService.getHomeUserViewDetailRes()); - } - @ResponseBody - @GetMapping("userLike") - public BaseResponse getHomeUserLikeDetailRes(){ - return new BaseResponse<>(homeService.getHomeUserLikeDetailRes()); + @GetMapping("userDetails") + public BaseResponse getHomeUserRecentDetail(){ + return new BaseResponse<>(homeService.getHomeUserRecentDetail(),homeService.getHomeUserLikeDetailRes(),homeService.getHomeUserViewDetailRes()); } +// @ResponseBody +// @GetMapping("userView") +// public BaseResponse getHomeUserViewDetailRes(){ +// return new BaseResponse<>(homeService.getHomeUserViewDetailRes()); +// } +// @ResponseBody +// @GetMapping("userLike") +// public BaseResponse getHomeUserLikeDetailRes(){ +// return new BaseResponse<>(homeService.getHomeUserLikeDetailRes()); +// } } diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java new file mode 100644 index 0000000..1bc0840 --- /dev/null +++ b/place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java @@ -0,0 +1,53 @@ +package com.umc.place.home.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +public class GetHomeUserDetailsRes { + private List userRecentLists; + private List userLikeLists; + private List userViewLists; + + @AllArgsConstructor + @NoArgsConstructor + @Getter + @Setter + public static class UserRecentList{ + private String exhibitionImg; + private String exhibitionName; + private String location; + private String artist; + } + @AllArgsConstructor + @NoArgsConstructor + @Getter + @Setter + public static class UserViewList{ + private String exhibitionImg; + private String exhibitionName; + private String location; + private String artist; + } + @AllArgsConstructor + @NoArgsConstructor + @Getter + public static class UserLikeList{ + + private String exhibitionImg; + private String exhibitionName; + + private String location; + + private String artist; + + } + + +} From b27a9c2d0f5245fea4e94ac06796de4655c3a526 Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Sun, 20 Aug 2023 16:04:47 +0900 Subject: [PATCH 2/7] =?UTF-8?q?#18=20refactor:=20=EC=9B=90=EB=9E=98?= =?UTF-8?q?=EB=8C=80=EB=A1=9C=20=EB=90=98=EB=8F=8C=EB=A6=AC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../place/home/controller/HomeController.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/place/src/main/java/com/umc/place/home/controller/HomeController.java b/place/src/main/java/com/umc/place/home/controller/HomeController.java index 53b7107..540c44d 100644 --- a/place/src/main/java/com/umc/place/home/controller/HomeController.java +++ b/place/src/main/java/com/umc/place/home/controller/HomeController.java @@ -19,18 +19,18 @@ public class HomeController { private final HomeService homeService; @ResponseBody - @GetMapping("userDetails") - public BaseResponse getHomeUserRecentDetail(){ - return new BaseResponse<>(homeService.getHomeUserRecentDetail(),homeService.getHomeUserLikeDetailRes(),homeService.getHomeUserViewDetailRes()); + @GetMapping("userRecent") + public BaseResponse getHomeUserRecentDetail(){ + return new BaseResponse<>(homeService.getHomeUserRecentDetail()); + } + @ResponseBody + @GetMapping("userView") + public BaseResponse getHomeUserViewDetailRes(){ + return new BaseResponse<>(homeService.getHomeUserViewDetailRes()); + } + @ResponseBody + @GetMapping("userLike") + public BaseResponse getHomeUserLikeDetailRes(){ + return new BaseResponse<>(homeService.getHomeUserLikeDetailRes()); } -// @ResponseBody -// @GetMapping("userView") -// public BaseResponse getHomeUserViewDetailRes(){ -// return new BaseResponse<>(homeService.getHomeUserViewDetailRes()); -// } -// @ResponseBody -// @GetMapping("userLike") -// public BaseResponse getHomeUserLikeDetailRes(){ -// return new BaseResponse<>(homeService.getHomeUserLikeDetailRes()); -// } } From 6ec795ede4cd669057d3d3ebf033f62404e52a74 Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Tue, 22 Aug 2023 01:20:28 +0900 Subject: [PATCH 3/7] =?UTF-8?q?#11=20fix:=20home=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/dto/GetHomeUserRecentDetailRes.java | 2 +- .../umc/place/home/service/HomeService.java | 24 +++++++++++++------ .../story/repository/StoryRepository.java | 1 + 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java index 3cb77a7..9049bd7 100644 --- a/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java +++ b/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java @@ -27,7 +27,7 @@ public class GetHomeUserRecentDetailRes { @Setter public static class UserRecentList{ private String exhibitionImg; - private String exhibitionName; + private String userImg; private String location; private String artist; } diff --git a/place/src/main/java/com/umc/place/home/service/HomeService.java b/place/src/main/java/com/umc/place/home/service/HomeService.java index 05c227f..dc1f6ae 100644 --- a/place/src/main/java/com/umc/place/home/service/HomeService.java +++ b/place/src/main/java/com/umc/place/home/service/HomeService.java @@ -5,6 +5,8 @@ import com.umc.place.home.dto.GetHomeUserLikeDetailRes; import com.umc.place.home.dto.GetHomeUserRecentDetailRes; import com.umc.place.home.dto.GetHomeUserViewDetailRes; +import com.umc.place.story.entity.Story; +import com.umc.place.story.repository.StoryRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -14,18 +16,26 @@ @Service @RequiredArgsConstructor public class HomeService { - private final ExhibitionRepository exhibitionRepository; + private final StoryRepository storyRepository; public GetHomeUserRecentDetailRes getHomeUserRecentDetail() { - List userRecentList = exhibitionRepository.findTop4ByOrderByCreatedDateDesc(); - List getuserRecentList = userRecentList.stream() - .map(userRecent -> new GetHomeUserRecentDetailRes.UserRecentList(userRecent.getExhibitionImg(), userRecent.getExhibitionName(), userRecent.getLocation(), userRecent.getArtist())) - .collect(Collectors.toList()); - return new GetHomeUserRecentDetailRes(getuserRecentList); +// List userRecentList = exhibitionRepository.findTop4ByOrderByCreatedDateDesc(); +// List getuserRecentList = userRecentList.stream() +// .map(userRecent -> new GetHomeUserRecentDetailRes.UserRecentList(userRecent.getExhibitionImg(), userRecent.getExhibitionName(), userRecent.getLocation(), userRecent.getArtist())) +// .collect(Collectors.toList()); +// return new GetHomeUserRecentDetailRes(getuserRecentList); + List stories = storyRepository.findTop4ByOrderByCreatedDateDesc(); + List getUserRecentList = stories.stream() + .map(userRecent -> new GetHomeUserRecentDetailRes.UserRecentList(userRecent.getExhibition().getExhibitionImg(), + userRecent.getUser().getUserImg(), + userRecent.getExhibition().getLocation(), + userRecent.getUser().getNickname())) + .collect(Collectors.toList());; + return new GetHomeUserRecentDetailRes(getUserRecentList); } public GetHomeUserViewDetailRes getHomeUserViewDetailRes() { - List userViewList = exhibitionRepository.findTop4ByOrderByViewCountDesc(); + List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); List getuserViewList = userViewList.stream() .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibitionImg(), userView.getExhibitionName(), userView.getLocation(), userView.getArtist())) .collect(Collectors.toList()); diff --git a/place/src/main/java/com/umc/place/story/repository/StoryRepository.java b/place/src/main/java/com/umc/place/story/repository/StoryRepository.java index 3091486..ca6d71b 100644 --- a/place/src/main/java/com/umc/place/story/repository/StoryRepository.java +++ b/place/src/main/java/com/umc/place/story/repository/StoryRepository.java @@ -16,4 +16,5 @@ public interface StoryRepository extends JpaRepository { Optional findFirstByUserOrderByCreatedDateDesc(User user); List findByUserOrderByCreatedDateDesc(User user); + List findTop4ByOrderByCreatedDateDesc(); } From c0be0262db5e047b6c5392e8858521ba3cf6a8f2 Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Tue, 22 Aug 2023 22:43:40 +0900 Subject: [PATCH 4/7] =?UTF-8?q?#11=20refactor:=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=EC=88=98,=20=EC=A2=8B=EC=95=84=EC=9A=94=EC=88=98=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/dto/GetHomeUserViewDetailRes.java | 2 +- .../umc/place/home/service/HomeService.java | 21 ++++++++++++------- .../story/controller/StoryController.java | 1 + .../com/umc/place/story/entity/Story.java | 9 ++++++++ .../story/repository/StoryRepository.java | 2 ++ .../umc/place/story/service/StoryService.java | 8 +++++++ 6 files changed, 34 insertions(+), 9 deletions(-) diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java index 3c8c661..b0fbfb2 100644 --- a/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java +++ b/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java @@ -26,7 +26,7 @@ public class GetHomeUserViewDetailRes { @Setter public static class UserViewList{ private String exhibitionImg; - private String exhibitionName; + private String userImg; private String location; private String artist; } diff --git a/place/src/main/java/com/umc/place/home/service/HomeService.java b/place/src/main/java/com/umc/place/home/service/HomeService.java index dc1f6ae..43a50bd 100644 --- a/place/src/main/java/com/umc/place/home/service/HomeService.java +++ b/place/src/main/java/com/umc/place/home/service/HomeService.java @@ -35,18 +35,23 @@ public GetHomeUserRecentDetailRes getHomeUserRecentDetail() { } public GetHomeUserViewDetailRes getHomeUserViewDetailRes() { - List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); - List getuserViewList = userViewList.stream() - .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibitionImg(), userView.getExhibitionName(), userView.getLocation(), userView.getArtist())) +// List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); +// List getuserViewList = userViewList.stream() +// .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibitionImg(), userView.getExhibitionName(), userView.getLocation(), userView.getArtist())) +// .collect(Collectors.toList()); +// return new GetHomeUserViewDetailRes(getuserViewList); + List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); + List getUserViewList = userViewList.stream() + .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibition().getExhibitionImg(), userView.getUser().getUserImg(), userView.getExhibition().getLocation(), userView.getUser().getNickname())) .collect(Collectors.toList()); - return new GetHomeUserViewDetailRes(getuserViewList); + return new GetHomeUserViewDetailRes(getUserViewList); } public GetHomeUserLikeDetailRes getHomeUserLikeDetailRes() { - List userLikeList = exhibitionRepository.findTop4ByOrderByLikeCountDesc(); - List getuserLikeList = userLikeList.stream() - .map(userLike -> new GetHomeUserLikeDetailRes.UserLikeList(userLike.getExhibitionImg(), userLike.getExhibitionName(), userLike.getLocation(), userLike.getArtist())) + List userLikeList = storyRepository.findTop4ByOrderByLikeCountDesc(); + List getLikeViewList = userLikeList.stream() + .map(userLike -> new GetHomeUserLikeDetailRes.UserLikeList(userLike.getExhibition().getExhibitionImg(), userLike.getUser().getUserImg(), userLike.getExhibition().getLocation(), userLike.getUser().getNickname())) .collect(Collectors.toList()); - return new GetHomeUserLikeDetailRes(getuserLikeList); + return new GetHomeUserLikeDetailRes(getLikeViewList); } } diff --git a/place/src/main/java/com/umc/place/story/controller/StoryController.java b/place/src/main/java/com/umc/place/story/controller/StoryController.java index f9fdfd2..5894da6 100644 --- a/place/src/main/java/com/umc/place/story/controller/StoryController.java +++ b/place/src/main/java/com/umc/place/story/controller/StoryController.java @@ -39,6 +39,7 @@ public BaseResponse uploadStory(@RequestBody StoryUpload @GetMapping("/{storyIdx}") public BaseResponse getStoryDetail(@PathVariable Long storyIdx, @RequestParam Long userId) { try { + System.out.println("storyIdx = " + storyIdx); return new BaseResponse<>(storyService.getStoryDetail(storyIdx, userId)); } catch (BaseException e) { return new BaseResponse<>(e.getStatus()); diff --git a/place/src/main/java/com/umc/place/story/entity/Story.java b/place/src/main/java/com/umc/place/story/entity/Story.java index 03aaff5..efea686 100644 --- a/place/src/main/java/com/umc/place/story/entity/Story.java +++ b/place/src/main/java/com/umc/place/story/entity/Story.java @@ -43,6 +43,8 @@ public class Story extends BaseEntity { @OneToMany(mappedBy = "story") // 양방향 매핑 private List likes = new ArrayList<>(); + private int viewCount; // 조회수 + private int likeCount; // 좋아요 수 @Builder public Story(User user, Exhibition exhibition, String storyImg) { this.user = user; @@ -52,4 +54,11 @@ public Story(User user, Exhibition exhibition, String storyImg) { public void setStoryImg(String storyImg){ this.storyImg = storyImg; } + + public void setViewCount(int viewCount){ + this.viewCount = viewCount; + } + public void setLikeCount(int viewCount){ + this.likeCount = likeCount; + } } diff --git a/place/src/main/java/com/umc/place/story/repository/StoryRepository.java b/place/src/main/java/com/umc/place/story/repository/StoryRepository.java index ca6d71b..e0f8b24 100644 --- a/place/src/main/java/com/umc/place/story/repository/StoryRepository.java +++ b/place/src/main/java/com/umc/place/story/repository/StoryRepository.java @@ -17,4 +17,6 @@ public interface StoryRepository extends JpaRepository { List findByUserOrderByCreatedDateDesc(User user); List findTop4ByOrderByCreatedDateDesc(); + List findTop4ByOrderByViewCountDesc(); + List findTop4ByOrderByLikeCountDesc(); } diff --git a/place/src/main/java/com/umc/place/story/service/StoryService.java b/place/src/main/java/com/umc/place/story/service/StoryService.java index 3809497..618c2a0 100644 --- a/place/src/main/java/com/umc/place/story/service/StoryService.java +++ b/place/src/main/java/com/umc/place/story/service/StoryService.java @@ -70,6 +70,14 @@ public StoryDetailResponseDto getStoryDetail(Long storyIdx, Long userId) throws .map(comment -> new CommentResDto(comment)) .collect(Collectors.toList()); + + //조회수 증가 + findStoryById.setViewCount(findStoryById.getViewCount()+1); + + if (storyLikeRepository.existsByUserAndStory(findUserById, findStoryById)){ // 좋아요를 누르면 + findStoryById.setLikeCount(findStoryById.getLikeCount()+1); // 조회수 증가 + } + return StoryDetailResponseDto.builder() .storyImg(findStoryById.getStoryImg()) .exhibitionAddress(findStoryById.getExhibition().getLocation()) From 8c728198adc8fd6a492b8f0aefbee4b2e55216ba Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Tue, 22 Aug 2023 22:44:44 +0900 Subject: [PATCH 5/7] Delete GetHomeUserDetailsRes.java --- .../place/home/dto/GetHomeUserDetailsRes.java | 53 ------------------- 1 file changed, 53 deletions(-) delete mode 100644 place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java deleted file mode 100644 index 1bc0840..0000000 --- a/place/src/main/java/com/umc/place/home/dto/GetHomeUserDetailsRes.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.umc.place.home.dto; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -@NoArgsConstructor -@AllArgsConstructor -@Getter -public class GetHomeUserDetailsRes { - private List userRecentLists; - private List userLikeLists; - private List userViewLists; - - @AllArgsConstructor - @NoArgsConstructor - @Getter - @Setter - public static class UserRecentList{ - private String exhibitionImg; - private String exhibitionName; - private String location; - private String artist; - } - @AllArgsConstructor - @NoArgsConstructor - @Getter - @Setter - public static class UserViewList{ - private String exhibitionImg; - private String exhibitionName; - private String location; - private String artist; - } - @AllArgsConstructor - @NoArgsConstructor - @Getter - public static class UserLikeList{ - - private String exhibitionImg; - private String exhibitionName; - - private String location; - - private String artist; - - } - - -} From 9f5bf47673960177717c1178a6c10566daf890f1 Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Wed, 23 Aug 2023 22:29:54 +0900 Subject: [PATCH 6/7] =?UTF-8?q?#11=20fix:=20=EC=96=B4=EB=85=B8=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EC=85=98=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/umc/place/home/controller/HomeController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/place/src/main/java/com/umc/place/home/controller/HomeController.java b/place/src/main/java/com/umc/place/home/controller/HomeController.java index 540c44d..ad7550b 100644 --- a/place/src/main/java/com/umc/place/home/controller/HomeController.java +++ b/place/src/main/java/com/umc/place/home/controller/HomeController.java @@ -1,7 +1,6 @@ package com.umc.place.home.controller; import com.umc.place.common.BaseResponse; -import com.umc.place.home.dto.GetHomeUserDetailsRes; import com.umc.place.home.dto.GetHomeUserLikeDetailRes; import com.umc.place.home.dto.GetHomeUserRecentDetailRes; import com.umc.place.home.dto.GetHomeUserViewDetailRes; From 6ea43280873fbcd12ee07c895fb0a8d9bcb2dfed Mon Sep 17 00:00:00 2001 From: lsn5963 <77337977+lsn5963@users.noreply.github.com> Date: Mon, 28 Aug 2023 14:11:58 +0900 Subject: [PATCH 7/7] =?UTF-8?q?#18=20refactor:=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=EC=97=AC=EB=B6=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../place/home/controller/HomeController.java | 31 +++++-- .../home/dto/GetHomeUserLikeDetailRes.java | 4 +- .../home/dto/GetHomeUserRecentDetailRes.java | 2 + .../home/dto/GetHomeUserViewDetailRes.java | 2 + .../umc/place/home/service/HomeService.java | 86 +++++++++++++++---- .../story/controller/StoryController.java | 62 +++++++++---- 6 files changed, 148 insertions(+), 39 deletions(-) diff --git a/place/src/main/java/com/umc/place/home/controller/HomeController.java b/place/src/main/java/com/umc/place/home/controller/HomeController.java index ad7550b..6c1c6ca 100644 --- a/place/src/main/java/com/umc/place/home/controller/HomeController.java +++ b/place/src/main/java/com/umc/place/home/controller/HomeController.java @@ -1,10 +1,12 @@ package com.umc.place.home.controller; +import com.umc.place.common.BaseException; import com.umc.place.common.BaseResponse; import com.umc.place.home.dto.GetHomeUserLikeDetailRes; import com.umc.place.home.dto.GetHomeUserRecentDetailRes; import com.umc.place.home.dto.GetHomeUserViewDetailRes; import com.umc.place.home.service.HomeService; +import com.umc.place.user.service.AuthService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,20 +18,37 @@ @RequestMapping("/home") public class HomeController { private final HomeService homeService; + private final AuthService authService; @ResponseBody @GetMapping("userRecent") - public BaseResponse getHomeUserRecentDetail(){ - return new BaseResponse<>(homeService.getHomeUserRecentDetail()); + public BaseResponse getHomeUserRecentDetail() throws BaseException { + + if (authService.isMember()){ //로그인이 된 경우 + Long userIdx = authService.getUserIdx(); // 로그인을 한 유저 id 찾기 + return new BaseResponse<>(homeService.getHomeUserRecentDetail(userIdx)); + }else{ + return new BaseResponse<>(homeService.getHomeUserRecentDetail()); + } } @ResponseBody @GetMapping("userView") - public BaseResponse getHomeUserViewDetailRes(){ - return new BaseResponse<>(homeService.getHomeUserViewDetailRes()); + public BaseResponse getHomeUserViewDetailRes() throws BaseException { + if (authService.isMember()) { //로그인이 된 경우 + Long userIdx = authService.getUserIdx(); // 로그인을 한 유저 id 찾기 + return new BaseResponse<>(homeService.getHomeUserViewDetailRes(userIdx)); + }else{ + return new BaseResponse<>(homeService.getHomeUserViewDetailRes()); + } } @ResponseBody @GetMapping("userLike") - public BaseResponse getHomeUserLikeDetailRes(){ - return new BaseResponse<>(homeService.getHomeUserLikeDetailRes()); + public BaseResponse getHomeUserLikeDetailRes() throws BaseException { + if (authService.isMember()) { //로그인이 된 경우 + Long userIdx = authService.getUserIdx(); // 로그인을 한 유저 id 찾기 + return new BaseResponse<>(homeService.getHomeUserLikeDetailRes(userIdx)); + }else{ + return new BaseResponse<>(homeService.getHomeUserLikeDetailRes()); + } } } diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserLikeDetailRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserLikeDetailRes.java index cca788d..12add1c 100644 --- a/place/src/main/java/com/umc/place/home/dto/GetHomeUserLikeDetailRes.java +++ b/place/src/main/java/com/umc/place/home/dto/GetHomeUserLikeDetailRes.java @@ -24,9 +24,11 @@ public class GetHomeUserLikeDetailRes { @Getter public static class UserLikeList{ private String exhibitionImg; - private String exhibitionName; + private String userImg; private String location; private String artist; + private Boolean isLike; + private Boolean isLogin; } } diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java index 9049bd7..9a0829f 100644 --- a/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java +++ b/place/src/main/java/com/umc/place/home/dto/GetHomeUserRecentDetailRes.java @@ -30,6 +30,8 @@ public static class UserRecentList{ private String userImg; private String location; private String artist; + private Boolean isLike; + private Boolean isLogin; } } diff --git a/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java b/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java index b0fbfb2..8098840 100644 --- a/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java +++ b/place/src/main/java/com/umc/place/home/dto/GetHomeUserViewDetailRes.java @@ -29,6 +29,8 @@ public static class UserViewList{ private String userImg; private String location; private String artist; + private Boolean isLike; + private Boolean isLogin; } } diff --git a/place/src/main/java/com/umc/place/home/service/HomeService.java b/place/src/main/java/com/umc/place/home/service/HomeService.java index 43a50bd..34fe2ee 100644 --- a/place/src/main/java/com/umc/place/home/service/HomeService.java +++ b/place/src/main/java/com/umc/place/home/service/HomeService.java @@ -1,57 +1,109 @@ package com.umc.place.home.service; +import com.umc.place.common.BaseException; import com.umc.place.exhibition.entity.Exhibition; import com.umc.place.exhibition.repository.ExhibitionRepository; import com.umc.place.home.dto.GetHomeUserLikeDetailRes; import com.umc.place.home.dto.GetHomeUserRecentDetailRes; import com.umc.place.home.dto.GetHomeUserViewDetailRes; import com.umc.place.story.entity.Story; +import com.umc.place.story.repository.StoryLikeRepository; import com.umc.place.story.repository.StoryRepository; +import com.umc.place.user.entity.User; +import com.umc.place.user.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; +import static com.umc.place.common.BaseResponseStatus.INVALID_USER_IDX; + @Service @RequiredArgsConstructor public class HomeService { private final StoryRepository storyRepository; + private final UserRepository userRepository; + private final StoryLikeRepository storyLikeRepository; + + public GetHomeUserRecentDetailRes getHomeUserRecentDetail() { //로그인을 안하고 들어온경우 + List stories = storyRepository.findTop4ByOrderByCreatedDateDesc(); + List getUserRecentList = stories.stream() + .map(userRecent -> new GetHomeUserRecentDetailRes.UserRecentList(userRecent.getExhibition().getExhibitionImg(), + userRecent.getUser().getUserImg(), + userRecent.getExhibition().getLocation(), + userRecent.getUser().getNickname(), + false,//하트를 보여주지않는다 + false))// 로그인을 안한상태 + .collect(Collectors.toList()); + return new GetHomeUserRecentDetailRes(getUserRecentList); + } - public GetHomeUserRecentDetailRes getHomeUserRecentDetail() { -// List userRecentList = exhibitionRepository.findTop4ByOrderByCreatedDateDesc(); -// List getuserRecentList = userRecentList.stream() -// .map(userRecent -> new GetHomeUserRecentDetailRes.UserRecentList(userRecent.getExhibitionImg(), userRecent.getExhibitionName(), userRecent.getLocation(), userRecent.getArtist())) -// .collect(Collectors.toList()); -// return new GetHomeUserRecentDetailRes(getuserRecentList); + public GetHomeUserRecentDetailRes getHomeUserRecentDetail(Long userId) throws BaseException { //로그인을 하고 들어온 경우 + User user = userRepository.findById(userId).orElseThrow(() -> new BaseException(INVALID_USER_IDX)); List stories = storyRepository.findTop4ByOrderByCreatedDateDesc(); List getUserRecentList = stories.stream() .map(userRecent -> new GetHomeUserRecentDetailRes.UserRecentList(userRecent.getExhibition().getExhibitionImg(), userRecent.getUser().getUserImg(), userRecent.getExhibition().getLocation(), - userRecent.getUser().getNickname())) - .collect(Collectors.toList());; + userRecent.getUser().getNickname(), + storyLikeRepository.existsByUserAndStory(user,userRecent), + true)) // 하트를 눌렀는지 확인 + .collect(Collectors.toList()); return new GetHomeUserRecentDetailRes(getUserRecentList); } - public GetHomeUserViewDetailRes getHomeUserViewDetailRes() { -// List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); -// List getuserViewList = userViewList.stream() -// .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibitionImg(), userView.getExhibitionName(), userView.getLocation(), userView.getArtist())) -// .collect(Collectors.toList()); -// return new GetHomeUserViewDetailRes(getuserViewList); + public GetHomeUserViewDetailRes getHomeUserViewDetailRes() { //로그인을 안하고 들어온경우 List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); List getUserViewList = userViewList.stream() - .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibition().getExhibitionImg(), userView.getUser().getUserImg(), userView.getExhibition().getLocation(), userView.getUser().getNickname())) + .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibition().getExhibitionImg(), + userView.getUser().getUserImg(), + userView.getExhibition().getLocation(), + userView.getUser().getNickname(), + false, + false)) .collect(Collectors.toList()); return new GetHomeUserViewDetailRes(getUserViewList); } - public GetHomeUserLikeDetailRes getHomeUserLikeDetailRes() { + public GetHomeUserViewDetailRes getHomeUserViewDetailRes(Long userId) throws BaseException { //로그인을 하고 들어온경우 + User user = userRepository.findById(userId).orElseThrow(() -> new BaseException(INVALID_USER_IDX)); + List userViewList = storyRepository.findTop4ByOrderByViewCountDesc(); + List getUserViewList = userViewList.stream() + .map(userView -> new GetHomeUserViewDetailRes.UserViewList(userView.getExhibition().getExhibitionImg(), + userView.getUser().getUserImg(), + userView.getExhibition().getLocation(), + userView.getUser().getNickname(), + storyLikeRepository.existsByUserAndStory(user,userView), + true)) + .collect(Collectors.toList()); + return new GetHomeUserViewDetailRes(getUserViewList); + } + + public GetHomeUserLikeDetailRes getHomeUserLikeDetailRes() { //로그인을 안하고 들어온경우 List userLikeList = storyRepository.findTop4ByOrderByLikeCountDesc(); List getLikeViewList = userLikeList.stream() - .map(userLike -> new GetHomeUserLikeDetailRes.UserLikeList(userLike.getExhibition().getExhibitionImg(), userLike.getUser().getUserImg(), userLike.getExhibition().getLocation(), userLike.getUser().getNickname())) + .map(userLike -> new GetHomeUserLikeDetailRes.UserLikeList(userLike.getExhibition().getExhibitionImg(), + userLike.getUser().getUserImg(), + userLike.getExhibition().getLocation(), + userLike.getUser().getNickname(), + false, + false)) .collect(Collectors.toList()); return new GetHomeUserLikeDetailRes(getLikeViewList); } + public GetHomeUserLikeDetailRes getHomeUserLikeDetailRes(Long userId) throws BaseException { //로그인을 하고 들어온경우 + User user = userRepository.findById(userId).orElseThrow(() -> new BaseException(INVALID_USER_IDX)); + List userLikeList = storyRepository.findTop4ByOrderByLikeCountDesc(); + List getLikeViewList = userLikeList.stream() + .map(userLike -> new GetHomeUserLikeDetailRes.UserLikeList(userLike.getExhibition().getExhibitionImg(), + userLike.getUser().getUserImg(), + userLike.getExhibition().getLocation(), + userLike.getUser().getNickname(), + storyLikeRepository.existsByUserAndStory(user,userLike), + true)) + .collect(Collectors.toList()); + return new GetHomeUserLikeDetailRes(getLikeViewList); + } + } diff --git a/place/src/main/java/com/umc/place/story/controller/StoryController.java b/place/src/main/java/com/umc/place/story/controller/StoryController.java index fc25307..91dd416 100644 --- a/place/src/main/java/com/umc/place/story/controller/StoryController.java +++ b/place/src/main/java/com/umc/place/story/controller/StoryController.java @@ -5,11 +5,13 @@ import com.umc.place.comment.service.CommentService; import com.umc.place.common.BaseException; import com.umc.place.common.BaseResponse; +import com.umc.place.common.service.S3Upload; import com.umc.place.exhibition.dto.SearchExhibitionsByNameResDto; import com.umc.place.story.dto.StoryDetailResponseDto; import com.umc.place.story.dto.StoryUploadRequestDto; import com.umc.place.story.dto.StoryUploadResponseDto; import com.umc.place.story.service.StoryService; +import com.umc.place.user.service.AuthService; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; @@ -30,19 +32,29 @@ public class StoryController { private final S3Upload s3Upload; @PostMapping("") - public BaseResponse uploadStory(@RequestBody StoryUploadRequestDto storyUploadRequestDto, - @RequestParam Long userId) { + public BaseResponse uploadStory(@RequestBody StoryUploadRequestDto storyUploadRequestDto) { try { - return new BaseResponse<>(storyService.uploadStory(storyUploadRequestDto, userId)); + if (!authService.isMember()) { // 로그인 하지 않은 경우 + throw new BaseException(NULL_TOKEN); + } + String imgPath = s3Upload.upload(storyUploadRequestDto.getImgFile(), "story"); + return new BaseResponse<>( + storyService.uploadStory(storyUploadRequestDto, authService.getUserIdx(), imgPath)); } catch (BaseException e) { return new BaseResponse<>(e.getStatus()); + } catch (IOException e) { + return new BaseResponse<>(S3_ERROR); } } @GetMapping("/{storyIdx}") - public BaseResponse getStoryDetail(@PathVariable Long storyIdx, @RequestParam Long userId) { + public BaseResponse getStoryDetail(@PathVariable Long storyIdx) { try { - return new BaseResponse<>(storyService.getStoryDetail(storyIdx, userId)); + Long loginUserId = null; + if (authService.isMember()) { + loginUserId = authService.getUserIdx(); + } + return new BaseResponse<>(storyService.getStoryDetail(storyIdx, loginUserId)); } catch (BaseException e) { return new BaseResponse<>(e.getStatus()); } @@ -61,20 +73,37 @@ public BaseResponse getExhibitionWhenUploadStory( @PostMapping("/{storyIdx}/comment") public BaseResponse uploadStoryComment(@PathVariable Long storyIdx, - @RequestBody CommentUploadReqDto reqDto, - @RequestParam Long userId) { + @RequestBody CommentUploadReqDto reqDto) { + try { + if (!authService.isMember()) { // 로그인 하지 않은 경우 + throw new BaseException(NULL_TOKEN); + } + return new BaseResponse<>(commentService.uploadComment(storyIdx, reqDto, authService.getUserIdx())); + } catch (BaseException e) { + return new BaseResponse<>(e.getStatus()); + } + } + + @DeleteMapping("{storyIdx}/{commentIdx}") + public BaseResponse deleteStoryComment(@PathVariable Long storyIdx, + @PathVariable Long commentIdx) { try { - return new BaseResponse<>(commentService.uploadComment(storyIdx, reqDto, userId)); + if (!authService.isMember()) { // 로그인 하지 않은 경우 + throw new BaseException(NULL_TOKEN); + } + return new BaseResponse<>(commentService.deleteComment(storyIdx, commentIdx, authService.getUserIdx())); } catch (BaseException e) { return new BaseResponse<>(e.getStatus()); } } @PostMapping("/{storyIdx}/like") - public BaseResponse likeStory(@PathVariable Long storyIdx, - @RequestParam Long userIdx) { + public BaseResponse likeStory(@PathVariable Long storyIdx) { try { - storyService.likeStory(storyIdx, userIdx); + if (!authService.isMember()) { // 로그인 하지 않은 경우 + throw new BaseException(NULL_TOKEN); + } + storyService.likeStory(storyIdx, authService.getUserIdx()); return new BaseResponse<>(SUCCESS); } catch (BaseException e) { return new BaseResponse<>(e.getStatus()); @@ -82,10 +111,13 @@ public BaseResponse likeStory(@PathVariable Long storyIdx, } @GetMapping("/uploadView") - public BaseResponse getStoryUploadView(@RequestParam Long userId) { + public BaseResponse getStoryUploadView() { try { - StoryUploadResponseDto storyView = storyService.getStoryView(userId); - if (storyView.getLatestStoryName().isBlank()) { // 유저가 스토리를 업로드하지 않았다면 + if (!authService.isMember()) { // 로그인 하지 않은 경우 + throw new BaseException(NULL_TOKEN); + } + StoryUploadResponseDto storyView = storyService.getStoryView(authService.getUserIdx()); + if (storyView.getLatestExhibitionName() == null) { // 유저가 스토리를 업로드하지 않았다면 return new BaseResponse<>(storyView, NULL_STORY); } return new BaseResponse<>(storyView); @@ -93,4 +125,4 @@ public BaseResponse getStoryUploadView(@RequestParam Lon return new BaseResponse<>(e.getStatus()); } } -} +} \ No newline at end of file