feat : 리뷰 파싱 및 리뷰 조회 로직 수정
This commit is contained in:
parent
3a59c0f279
commit
c8952d21c1
@ -522,8 +522,6 @@ public class AnalyticsService implements AnalyticsUseCase {
|
|||||||
// 1. 리뷰 데이터 수집
|
// 1. 리뷰 데이터 수집
|
||||||
List<String> reviewData = externalReviewPort.getRecentReviews(storeId, days);
|
List<String> reviewData = externalReviewPort.getRecentReviews(storeId, days);
|
||||||
|
|
||||||
log.info("review Data check ===> {}", reviewData);
|
|
||||||
|
|
||||||
if (reviewData.isEmpty()) {
|
if (reviewData.isEmpty()) {
|
||||||
log.warn("AI 피드백 생성을 위한 리뷰 데이터가 없습니다: storeId={}", storeId);
|
log.warn("AI 피드백 생성을 위한 리뷰 데이터가 없습니다: storeId={}", storeId);
|
||||||
return createDefaultAIFeedback(storeId);
|
return createDefaultAIFeedback(storeId);
|
||||||
@ -533,6 +531,7 @@ public class AnalyticsService implements AnalyticsUseCase {
|
|||||||
AiFeedback aiFeedback = aiServicePort.generateFeedback(reviewData);
|
AiFeedback aiFeedback = aiServicePort.generateFeedback(reviewData);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 3. 도메인 객체 속성 설정
|
// 3. 도메인 객체 속성 설정
|
||||||
AiFeedback completeAiFeedback = AiFeedback.builder()
|
AiFeedback completeAiFeedback = AiFeedback.builder()
|
||||||
.storeId(storeId)
|
.storeId(storeId)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -88,6 +88,9 @@ public class ExternalReviewAdapter implements ExternalReviewPort {
|
|||||||
.filter(review -> review.getCreatedAt() != null && review.getCreatedAt().isAfter(cutoffDate))
|
.filter(review -> review.getCreatedAt() != null && review.getCreatedAt().isAfter(cutoffDate))
|
||||||
.map(ReviewListResponse::getContent)
|
.map(ReviewListResponse::getContent)
|
||||||
.filter(content -> content != null && !content.trim().isEmpty())
|
.filter(content -> content != null && !content.trim().isEmpty())
|
||||||
|
.map(content -> content.replace("`", "")
|
||||||
|
.replace("\\", "")
|
||||||
|
.replace("\"", ""))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -80,7 +80,7 @@ public class ReviewInteractor implements CreateReviewUseCase, DeleteReviewUseCas
|
|||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public List<ReviewListResponse> getStoreReviews(Long storeId, Integer page, Integer size) {
|
public List<ReviewListResponse> getStoreReviews(Long storeId, Integer page, Integer size) {
|
||||||
Pageable pageable = PageRequest.of(page != null ? page : 0, size != null ? size : 20);
|
Pageable pageable = PageRequest.of(page != null ? page : 0, size != null ? size : 20);
|
||||||
Page<Review> reviews = reviewRepository.findReviewsByStoreId(storeId, pageable);
|
Page<Review> reviews = reviewRepository.findReviewsByStoreIdOrderByCreatedAtDesc(storeId, pageable);
|
||||||
|
|
||||||
return reviews.stream()
|
return reviews.stream()
|
||||||
.filter(review -> review.getStatus() == ReviewStatus.ACTIVE)
|
.filter(review -> review.getStatus() == ReviewStatus.ACTIVE)
|
||||||
|
|||||||
@ -27,7 +27,13 @@ public interface ReviewRepository {
|
|||||||
* 매장 ID로 리뷰 목록 조회
|
* 매장 ID로 리뷰 목록 조회
|
||||||
*/
|
*/
|
||||||
Page<Review> findReviewsByStoreId(Long storeId, Pageable pageable);
|
Page<Review> findReviewsByStoreId(Long storeId, Pageable pageable);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 매장 ID로 리뷰 목록 조회
|
||||||
|
*/
|
||||||
|
Page<Review> findReviewsByStoreIdOrderByCreatedAtDesc(Long storeId, Pageable pageable);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 회원 ID로 리뷰 목록 조회
|
* 회원 ID로 리뷰 목록 조회
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -40,6 +40,13 @@ public class ReviewRepositoryAdapter implements ReviewRepository {
|
|||||||
Page<ReviewEntity> entities = reviewJpaRepository.findByStoreIdAndStatus(storeId, ReviewStatus.ACTIVE, pageable);
|
Page<ReviewEntity> entities = reviewJpaRepository.findByStoreIdAndStatus(storeId, ReviewStatus.ACTIVE, pageable);
|
||||||
return entities.map(this::toDomain);
|
return entities.map(this::toDomain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<Review> findReviewsByStoreIdOrderByCreatedAtDesc(Long storeId, Pageable pageable) {
|
||||||
|
Page<ReviewEntity> entities = reviewJpaRepository.findByStoreIdAndStatus(storeId, ReviewStatus.ACTIVE,
|
||||||
|
pageable);
|
||||||
|
return entities.map(this::toDomain);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<Review> findReviewsByMemberId(Long memberId, Pageable pageable) {
|
public Page<Review> findReviewsByMemberId(Long memberId, Pageable pageable) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user