From 8129bb86fb28ce82b21d8d0d51c7da4f5a4d35f8 Mon Sep 17 00:00:00 2001 From: SunKyu Choi <98688494+luke0408@users.noreply.github.com> Date: Sun, 10 Dec 2023 14:16:18 +0900 Subject: [PATCH 1/5] =?UTF-8?q?FEAT:=20mypage=20=EB=82=B4=20=EA=B2=8C?= =?UTF-8?q?=EC=8B=9C=EB=AC=BC=20=EC=A1=B0=ED=9A=8C=20(#95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mypage/controller/MypageController.java | 33 +++++++++++++++++++ .../converter/MypageResponseConverter.java | 27 +++++++++++++++ .../fo_domain/mypage/dto/MypageRequest.java | 5 +++ .../fo_domain/mypage/dto/MypageResponse.java | 17 ++++++++++ .../mypage/exception/MypageHandler.java | 11 +++++++ .../mypage/service/MypageService.java | 25 ++++++++++++++ .../fo_domain/review/domain/Review.java | 6 +++- .../review/repository/ReviewRepository.java | 9 +++++ .../review/service/ReviewService.java | 4 +++ 9 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java create mode 100644 src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java create mode 100644 src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageRequest.java create mode 100644 src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageResponse.java create mode 100644 src/main/java/com/example/betteriter/fo_domain/mypage/exception/MypageHandler.java create mode 100644 src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java new file mode 100644 index 0000000..830dfe9 --- /dev/null +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java @@ -0,0 +1,33 @@ +package com.example.betteriter.fo_domain.mypage.controller; + + +import com.example.betteriter.fo_domain.mypage.converter.MypageResponseConverter; +import com.example.betteriter.fo_domain.mypage.dto.MypageResponse; +import com.example.betteriter.fo_domain.mypage.service.MypageService; +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.global.common.response.ResponseDto; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +@Tag(name = "MypageControllers", description = "Mypage API") +@Slf4j +@RequestMapping("/mypage") +@RequiredArgsConstructor +@RestController +public class MypageController { + + private final MypageService mypageService; + + @GetMapping("/review/mine") + public ResponseDto> getMyReview() { + List reviewList = mypageService.getMyReviewList(); + return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); + } +} diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java b/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java new file mode 100644 index 0000000..a93e584 --- /dev/null +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java @@ -0,0 +1,27 @@ +package com.example.betteriter.fo_domain.mypage.converter; + +import com.example.betteriter.fo_domain.mypage.dto.MypageResponse; +import com.example.betteriter.fo_domain.review.domain.Review; + +import java.util.ArrayList; +import java.util.List; + +public class MypageResponseConverter { + + public static List toMyReviewDtoList(List reviewList) { + List myReviewList = new ArrayList<>(); + + reviewList.forEach(r -> { + MypageResponse.MyReviewDto myReviewDto = MypageResponse.MyReviewDto.builder() + .review_id(r.getId()) + .title(r.getProductName()) + .profile_image(r.getReviewImages().get(0).getImgUrl()) + .like_count(r.getReviewLiked().stream().count()) + .scrap_count(r.getReviewScraped().stream().count()) + .build(); + myReviewList.add(myReviewDto); + }); + + return myReviewList; + } +} diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageRequest.java b/src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageRequest.java new file mode 100644 index 0000000..80ebd03 --- /dev/null +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageRequest.java @@ -0,0 +1,5 @@ +package com.example.betteriter.fo_domain.mypage.dto; + +public class MypageRequest { + +} diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageResponse.java b/src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageResponse.java new file mode 100644 index 0000000..ca2b7c8 --- /dev/null +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/dto/MypageResponse.java @@ -0,0 +1,17 @@ +package com.example.betteriter.fo_domain.mypage.dto; + +import lombok.Builder; +import lombok.Getter; + +public class MypageResponse { + + @Getter + @Builder + public static class MyReviewDto{ + private Long review_id; + private String title; + private String profile_image; + private Long like_count; + private Long scrap_count; + } +} diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/exception/MypageHandler.java b/src/main/java/com/example/betteriter/fo_domain/mypage/exception/MypageHandler.java new file mode 100644 index 0000000..568269f --- /dev/null +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/exception/MypageHandler.java @@ -0,0 +1,11 @@ +package com.example.betteriter.fo_domain.mypage.exception; + +import com.example.betteriter.global.common.code.status.ErrorStatus; +import com.example.betteriter.global.common.exception.GeneralException; + +public class MypageHandler extends GeneralException { + + public MypageHandler(ErrorStatus errorStatus) { + super(errorStatus); + } +} diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java new file mode 100644 index 0000000..96560dc --- /dev/null +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java @@ -0,0 +1,25 @@ +package com.example.betteriter.fo_domain.mypage.service; + +import com.example.betteriter.fo_domain.review.domain.Review; +import com.example.betteriter.fo_domain.review.service.ReviewService; +import com.example.betteriter.fo_domain.user.domain.Users; +import com.example.betteriter.fo_domain.user.service.UserService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@RequiredArgsConstructor +@Service +public class MypageService { + + private final UserService userService; + private final ReviewService reviewService; + + public List getMyReviewList() { + Users user = userService.getCurrentUser(); + return reviewService.getReviewList(user.getId()); + } +} diff --git a/src/main/java/com/example/betteriter/fo_domain/review/domain/Review.java b/src/main/java/com/example/betteriter/fo_domain/review/domain/Review.java index 96e6ee7..0f64635 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/domain/Review.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/domain/Review.java @@ -6,6 +6,7 @@ import com.example.betteriter.fo_domain.user.domain.Users; import com.example.betteriter.global.common.entity.BaseEntity; import com.example.betteriter.global.constant.Category; +import com.example.betteriter.global.constant.Status; import lombok.*; import lombok.extern.slf4j.Slf4j; @@ -53,7 +54,6 @@ public class Review extends BaseEntity { @Column(name = "short_review", nullable = false) private String shortReview; - @Lob // 최대 500 자 @Column(name = "good_point", nullable = false) private String goodPoint; @@ -62,6 +62,10 @@ public class Review extends BaseEntity { @Column(name = "bad_point", nullable = false) private String badPoint; + @Column(name = "status", nullable = false) + @Enumerated(EnumType.STRING) + private Status status; // ACTIVE, DELETED + // --------------- Review 관련 엔티티 ---------------- // @OneToMany(mappedBy = "review") private List reviewImages; diff --git a/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java b/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java index 5bd9da1..3a55c8e 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java @@ -24,4 +24,13 @@ public interface ReviewRepository extends JpaRepository { "left join r.reviewLiked rl group by r " + "ORDER BY COALESCE(SUM(rs.id), 0) + COALESCE(SUM(rl.id), 0) DESC") List findTop7ReviewHavingMostScrapedAndLiked(Pageable pageable); + + @Query("select r " + + "from REVIEW r " + + "left join r.reviewScraped rs " + + "left join r.reviewLiked rl " + + "where r.status != 'DELETED' " + + "group by r " + + "order by r.createdAt desc ") + List findAllByWriterId(Long id); } diff --git a/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java b/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java index 6717ead..bb76081 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java @@ -100,4 +100,8 @@ public Review findReviewById(Long reviewId) { return this.reviewRepository.findById(reviewId) .orElseThrow(() -> new ReviewHandler(REVIEW_NOT_FOUND)); } + + public List getReviewList(Long id) { + return this.reviewRepository.findAllByWriterId(id); + } } From 4c6dafb369b86ad89cfb3b688e3b97177629107c Mon Sep 17 00:00:00 2001 From: SunKyu Choi <98688494+luke0408@users.noreply.github.com> Date: Sun, 10 Dec 2023 19:16:40 +0900 Subject: [PATCH 2/5] =?UTF-8?q?FEAT:=20mypage=20=EC=A1=B0=ED=9A=8C=20(#95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fo_domain/mypage/converter/MypageResponseConverter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java b/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java index a93e584..bd5feaf 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/converter/MypageResponseConverter.java @@ -7,7 +7,6 @@ import java.util.List; public class MypageResponseConverter { - public static List toMyReviewDtoList(List reviewList) { List myReviewList = new ArrayList<>(); @@ -15,7 +14,9 @@ public static List toMyReviewDtoList(List re MypageResponse.MyReviewDto myReviewDto = MypageResponse.MyReviewDto.builder() .review_id(r.getId()) .title(r.getProductName()) - .profile_image(r.getReviewImages().get(0).getImgUrl()) + .profile_image((r.getReviewImages().size() > 0) ? + r.getReviewImages().get(0).getImgUrl(): + "none") .like_count(r.getReviewLiked().stream().count()) .scrap_count(r.getReviewScraped().stream().count()) .build(); From 5ca0052bd93c44d91f2368b53e2fdbd45ecb3f81 Mon Sep 17 00:00:00 2001 From: SunKyu Choi <98688494+luke0408@users.noreply.github.com> Date: Sun, 10 Dec 2023 19:32:28 +0900 Subject: [PATCH 3/5] =?UTF-8?q?REFACTOR:=20mypage=20=EC=A1=B0=ED=9A=8C=20t?= =?UTF-8?q?o=20=ED=8A=B9=EC=A0=95=20=EC=9C=A0=EC=A0=80=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20(#95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fo_domain/mypage/controller/MypageController.java | 9 ++++++--- .../fo_domain/mypage/service/MypageService.java | 4 ++-- .../betteriter/fo_domain/user/service/UserService.java | 6 ++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java index 830dfe9..530542e 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java @@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -25,9 +26,11 @@ public class MypageController { private final MypageService mypageService; - @GetMapping("/review/mine") - public ResponseDto> getMyReview() { - List reviewList = mypageService.getMyReviewList(); + @GetMapping("/review?user_id={user_id}") + public ResponseDto> getMyReview( + @RequestParam(value = "user_id", required = false) Long user_id + ) { + List reviewList = mypageService.getMyReviewList(user_id); return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); } } diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java index 96560dc..9843d9a 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java @@ -18,8 +18,8 @@ public class MypageService { private final UserService userService; private final ReviewService reviewService; - public List getMyReviewList() { - Users user = userService.getCurrentUser(); + public List getMyReviewList(Long user_id) { + Users user = userService.getUserById(user_id); return reviewService.getReviewList(user.getId()); } } diff --git a/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java b/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java index 9a8bece..ff3eec5 100644 --- a/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java +++ b/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java @@ -81,4 +81,10 @@ public Users getCurrentUser() { public UsersDetail getCurrentUsersDetail() { return this.getCurrentUser().getUsersDetail(); } + + /* 회원 정보 가져오기 */ + public Users getUserById(Long userId) { + return this.usersRepository.findById(userId) + .orElseThrow(() -> new UserHandler(ErrorStatus._USER_NOT_FOUND)); + } } From 184abc43c40b9300b8e4ab66fcb19493ec11b8ed Mon Sep 17 00:00:00 2001 From: SunKyu Choi <98688494+luke0408@users.noreply.github.com> Date: Sun, 10 Dec 2023 20:36:53 +0900 Subject: [PATCH 4/5] =?UTF-8?q?FEAT:=20mypage=20review=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EC=99=84=EB=A3=8C=20(#95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - getReview : 유저가 작성한 리뷰 - 자기 자신 조회 분기 처리 - 타인 조회 분기 처리 - getScrapReview : 스크랩한 리뷰 - getLikeReview : 좋아요한 리뷰 --- .../mypage/controller/MypageController.java | 24 +++++++++- .../mypage/service/MypageService.java | 24 +++++++++- .../review/repository/ReviewRepository.java | 45 +++++++++++++++---- .../review/service/ReviewService.java | 14 +++++- 4 files changed, 93 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java index 530542e..95d091d 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java @@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.List; @@ -27,10 +28,29 @@ public class MypageController { private final MypageService mypageService; @GetMapping("/review?user_id={user_id}") - public ResponseDto> getMyReview( + public ResponseDto> getReview( @RequestParam(value = "user_id", required = false) Long user_id ) { - List reviewList = mypageService.getMyReviewList(user_id); + List reviewList; + if (mypageService.checkUserSelf(user_id)) reviewList = mypageService.getMyReviewList(); + else reviewList = mypageService.getTargetReviewList(user_id); + + return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); + } + + @GetMapping("/review/scrap/user_id={user_id}") + public ResponseDto> getScrapReview( + @RequestParam(value = "user_id", required = false) Long user_id + ) { + List reviewList = mypageService.getScrapReviewList(user_id); + return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); + } + + @GetMapping("/review/like/user_id={user_id}") + public ResponseDto> getLikeReview( + @RequestParam(value = "user_id", required = false) Long user_id + ) { + List reviewList = mypageService.getLikeReviewList(user_id); return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); } } diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java index 9843d9a..e94bf7d 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java @@ -18,8 +18,28 @@ public class MypageService { private final UserService userService; private final ReviewService reviewService; - public List getMyReviewList(Long user_id) { - Users user = userService.getUserById(user_id); + public List getMyReviewList() { + Users user = userService.getCurrentUser(); return reviewService.getReviewList(user.getId()); } + + public List getScrapReviewList(Long userId) { + Users user = userService.getUserById(userId); + return reviewService.getScrapReviewList(user); + } + + public List getLikeReviewList(Long userId) { + Users user = userService.getUserById(userId); + return reviewService.getLikeReviewList(user); + } + + public List getTargetReviewList(Long userId) { + Users user = userService.getUserById(userId); + return reviewService.getTargetReviewList(user.getId()); + } + + public boolean checkUserSelf(Long userId) { + Users user = userService.getCurrentUser(); + return user.getId().equals(userId); + } } diff --git a/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java b/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java index 4ea4a60..dce35bf 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/repository/ReviewRepository.java @@ -25,15 +25,6 @@ public interface ReviewRepository extends JpaRepository { "ORDER BY (COALESCE(COUNT(rs), 0) + COALESCE(COUNT(rl), 0)) DESC") List findTop7ReviewHavingMostScrapedAndLiked(Pageable pageable); - @Query("select r " + - "from REVIEW r " + - "left join r.reviewScraped rs " + - "left join r.reviewLiked rl " + - "where r.status != 'DELETED' " + - "group by r " + - "order by r.createdAt desc ") - List findAllByWriterId(Long id); - @Query("select r from REVIEW r " + "LEFT JOIN r.reviewLiked rl " + "LEFT JOIN r.reviewScraped rs " + @@ -44,4 +35,40 @@ public interface ReviewRepository extends JpaRepository { Slice findReviewByCategory(Category category, Pageable pageable); Slice findFirst20ByProductNameOrderByClickCountDescCreatedAtDesc(String productName, Pageable pageable); + + @Query("SELECT r FROM REVIEW r " + + "LEFT JOIN r.reviewLiked rl " + + "LEFT JOIN r.reviewScraped rs " + + "WHERE rs.users = :user AND " + + " r.status = 'ACTIVE'" + + "GROUP BY r.id " + + "ORDER BY r.createdAt DESC") + List findAllByTargetId(Long id); + + @Query("SELECT r FROM REVIEW r " + + "LEFT JOIN r.reviewLiked rl " + + "LEFT JOIN r.reviewScraped rs " + + "WHERE rs.users = :user AND " + + " r.status != 'DELETED'" + + "GROUP BY r.id " + + "ORDER BY r.createdAt DESC") + List findAllByUser(Long id); + + @Query("SELECT r FROM REVIEW r " + + "LEFT JOIN r.reviewLiked rl " + + "LEFT JOIN r.reviewScraped rs " + + "WHERE rs.users = :user AND " + + " r.status = 'ACTIVE'" + + "GROUP BY r.id " + + "ORDER BY r.createdAt DESC") + List findAllByReviewScrapedUser(Users user); + + @Query("SELECT r FROM REVIEW r " + + "LEFT JOIN r.reviewLiked rl " + + "LEFT JOIN r.reviewScraped rs " + + "WHERE rl.users = :user AND " + + " r.status = 'ACTIVE'" + + "GROUP BY r.id " + + "ORDER BY r.createdAt DESC") + List findAllByReviewLikedUser(Users user); } diff --git a/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java b/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java index f62c901..1b7066b 100644 --- a/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java +++ b/src/main/java/com/example/betteriter/fo_domain/review/service/ReviewService.java @@ -155,6 +155,18 @@ public Review findReviewById(Long reviewId) { } public List getReviewList(Long id) { - return this.reviewRepository.findAllByWriterId(id); + return this.reviewRepository.findAllByUser(id); + } + + public List getScrapReviewList(Users user) { + return this.reviewRepository.findAllByReviewScrapedUser(user); + } + + public List getLikeReviewList(Users user) { + return this.reviewRepository.findAllByReviewLikedUser(user); + } + + public List getTargetReviewList(Long id) { + return this.reviewRepository.findAllByTargetId(id); } } From af27ada73068288b59b91cbb25c949bc571a5153 Mon Sep 17 00:00:00 2001 From: SunKyu Choi <98688494+luke0408@users.noreply.github.com> Date: Mon, 18 Dec 2023 13:48:47 +0900 Subject: [PATCH 5/5] =?UTF-8?q?Refactor:=20mypage=20review=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EC=88=98=EC=A0=95=20(#95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - getReview : id -> email 조회 - getScrapReview : id -> email 조회 - getLikeReview : id -> email 조회 --- .../mypage/controller/MypageController.java | 21 ++++++++++--------- .../mypage/service/MypageService.java | 16 +++++++------- .../fo_domain/user/service/UserService.java | 5 +++++ 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java index 95d091d..556310a 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/controller/MypageController.java @@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.validation.constraints.Email; import java.util.ArrayList; import java.util.List; @@ -27,30 +28,30 @@ public class MypageController { private final MypageService mypageService; - @GetMapping("/review?user_id={user_id}") + @GetMapping("/review?email={email}") public ResponseDto> getReview( - @RequestParam(value = "user_id", required = false) Long user_id + @RequestParam(value = "email", required = false) @Email String email ) { List reviewList; - if (mypageService.checkUserSelf(user_id)) reviewList = mypageService.getMyReviewList(); - else reviewList = mypageService.getTargetReviewList(user_id); + if (mypageService.checkUserSelf(email)) reviewList = mypageService.getMyReviewList(); + else reviewList = mypageService.getTargetReviewList(email); return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); } - @GetMapping("/review/scrap/user_id={user_id}") + @GetMapping("/review/scrap?user_id={user_id}") public ResponseDto> getScrapReview( - @RequestParam(value = "user_id", required = false) Long user_id + @RequestParam(value = "email", required = false) @Email String email ) { - List reviewList = mypageService.getScrapReviewList(user_id); + List reviewList = mypageService.getScrapReviewList(email); return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); } - @GetMapping("/review/like/user_id={user_id}") + @GetMapping("/review/like?email={email}") public ResponseDto> getLikeReview( - @RequestParam(value = "user_id", required = false) Long user_id + @RequestParam(value = "email", required = false) @Email String email ) { - List reviewList = mypageService.getLikeReviewList(user_id); + List reviewList = mypageService.getLikeReviewList(email); return ResponseDto.onSuccess(MypageResponseConverter.toMyReviewDtoList(reviewList)); } } diff --git a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java index e94bf7d..745892a 100644 --- a/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java +++ b/src/main/java/com/example/betteriter/fo_domain/mypage/service/MypageService.java @@ -23,23 +23,23 @@ public List getMyReviewList() { return reviewService.getReviewList(user.getId()); } - public List getScrapReviewList(Long userId) { - Users user = userService.getUserById(userId); + public List getScrapReviewList(String email) { + Users user = userService.getUserByEmail(email); return reviewService.getScrapReviewList(user); } - public List getLikeReviewList(Long userId) { - Users user = userService.getUserById(userId); + public List getLikeReviewList(String email) { + Users user = userService.getUserByEmail(email); return reviewService.getLikeReviewList(user); } - public List getTargetReviewList(Long userId) { - Users user = userService.getUserById(userId); + public List getTargetReviewList(String email) { + Users user = userService.getUserByEmail(email); return reviewService.getTargetReviewList(user.getId()); } - public boolean checkUserSelf(Long userId) { + public boolean checkUserSelf(String email) { Users user = userService.getCurrentUser(); - return user.getId().equals(userId); + return user.getEmail().equals(email); } } diff --git a/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java b/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java index ff3eec5..7375bd2 100644 --- a/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java +++ b/src/main/java/com/example/betteriter/fo_domain/user/service/UserService.java @@ -87,4 +87,9 @@ public Users getUserById(Long userId) { return this.usersRepository.findById(userId) .orElseThrow(() -> new UserHandler(ErrorStatus._USER_NOT_FOUND)); } + + public Users getUserByEmail(String email) { + return this.usersRepository.findByEmail(email) + .orElseThrow(() -> new UserHandler(ErrorStatus._USER_NOT_FOUND)); + } }