/**좋아요 목록 조회*/
@GetMapping("/user/favorite")
public ResponseEntity<List<ResponseProductSummary>> myFavorite(HttpServletRequest request){
User user = (User) request.getAttribute("user");
List<ResponseProductSummary> productList = favoriteService.myFavorite(user);
return (!productList.isEmpty()) ?
ResponseEntity.status(HttpStatus.OK).body(productList) :
ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
}
유저 객체를 사용해 해당 유저가 좋아요 등록한 상품 목록을 조회
@Override
@Transactional(readOnly = true)
public List<ResponseProductSummary> myFavorite(User user) {
return favoriteRepository.findAllFavorite(user.getUsername());
}
@Override
public List<ResponseProductSummary> findAllFavorite(String username) {
BooleanExpression status_user = eqUsername(username);
if (status_user == null) {
return null;
}
return queryFactory.select(Projections.fields(ResponseProductSummary.class,
favorite.product.id,
favorite.product.name,
favorite.product.price,
favorite.product.favorite,
favorite.product.imgKey
))
.from(favorite)
.innerJoin(favorite.product,product)
.innerJoin(favorite.user,user)
.where(status_user,favorite.product.stock.gt(0))
.fetch();
}