From dafaeba5d86e486a290bbad7994f5390b6b55365 Mon Sep 17 00:00:00 2001 From: youbeen Date: Tue, 17 Jun 2025 16:54:38 +0900 Subject: [PATCH] tag update --- dump.rdb | Bin 92 -> 294 bytes logs/recommend-service.log.2025-06-16.0.gz | Bin 0 -> 5675 bytes .../ktds/hi/store/biz/service/TagService.java | 4 +- .../hi/store/biz/usecase/in/TagUseCase.java | 2 +- .../biz/usecase/out/ExternalPlatformPort.java | 188 +++++++++--------- .../biz/usecase/out/TagRepositoryPort.java | 2 +- .../store/infra/controller/TagController.java | 6 +- .../gateway/ExternalPlatformAdapter.java | 2 + .../infra/gateway/TagRepositoryAdapter.java | 4 +- .../gateway/repository/TagJpaRepository.java | 5 +- store/src/main/resources/application.yml | 1 + 11 files changed, 109 insertions(+), 105 deletions(-) create mode 100644 logs/recommend-service.log.2025-06-16.0.gz diff --git a/dump.rdb b/dump.rdb index 5c686cf3bf8d8ba093e8e6eb235efa7941364f4d..1d341a29a40cc58a63ed21c79d805bd7915fa567 100644 GIT binary patch delta 253 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 ROpD!v{{Za)ebK0q004@@>*@di literal 0 HcmV?d00001 diff --git a/store/src/main/java/com/ktds/hi/store/biz/service/TagService.java b/store/src/main/java/com/ktds/hi/store/biz/service/TagService.java index 9fcf1a9..6a18647 100644 --- a/store/src/main/java/com/ktds/hi/store/biz/service/TagService.java +++ b/store/src/main/java/com/ktds/hi/store/biz/service/TagService.java @@ -29,10 +29,10 @@ public class TagService implements TagUseCase { private final TagRepositoryPort tagRepositoryPort; @Override - public List getTopClickedTags() { + public List getTopClickedTags(Integer storeId) { log.info("가장 많이 클릭된 상위 5개 태그 조회 시작"); - List topTags = tagRepositoryPort.findTopClickedTags(); + List topTags = tagRepositoryPort.findTopClickedTags(storeId); AtomicInteger rank = new AtomicInteger(1); diff --git a/store/src/main/java/com/ktds/hi/store/biz/usecase/in/TagUseCase.java b/store/src/main/java/com/ktds/hi/store/biz/usecase/in/TagUseCase.java index ac15128..5e7ba78 100644 --- a/store/src/main/java/com/ktds/hi/store/biz/usecase/in/TagUseCase.java +++ b/store/src/main/java/com/ktds/hi/store/biz/usecase/in/TagUseCase.java @@ -16,7 +16,7 @@ public interface TagUseCase { /** * 가장 많이 클릭된 상위 5개 태그 조회 */ - List getTopClickedTags(); + List getTopClickedTags(Integer storeId); /** * 태그 클릭 이벤트 처리 diff --git a/store/src/main/java/com/ktds/hi/store/biz/usecase/out/ExternalPlatformPort.java b/store/src/main/java/com/ktds/hi/store/biz/usecase/out/ExternalPlatformPort.java index b0f2f60..f535187 100644 --- a/store/src/main/java/com/ktds/hi/store/biz/usecase/out/ExternalPlatformPort.java +++ b/store/src/main/java/com/ktds/hi/store/biz/usecase/out/ExternalPlatformPort.java @@ -1,108 +1,108 @@ -package com.ktds.hi.store.biz.usecase.out; + package com.ktds.hi.store.biz.usecase.out; -import java.util.List; -import java.util.Map; - -/** - * 외부 플랫폼 포트 인터페이스 - * 외부 플랫폼 연동 기능을 정의 - * - * @author 하이오더 개발팀 - * @version 1.0.0 - */ -public interface ExternalPlatformPort { + import java.util.List; + import java.util.Map; /** - * 네이버 리뷰 동기화 + * 외부 플랫폼 포트 인터페이스 + * 외부 플랫폼 연동 기능을 정의 * - * @param storeId 매장 ID - * @param externalStoreId 외부 매장 ID - * @return 동기화된 리뷰 수 + * @author 하이오더 개발팀 + * @version 1.0.0 */ - int syncNaverReviews(Long storeId, String externalStoreId); + public interface ExternalPlatformPort { - /** - * 카카오 리뷰 동기화 - * - * @param storeId 매장 ID - * @param externalStoreId 외부 매장 ID - * @return 동기화된 리뷰 수 - */ - int syncKakaoReviews(Long storeId, String externalStoreId); + /** + * 네이버 리뷰 동기화 + * + * @param storeId 매장 ID + * @param externalStoreId 외부 매장 ID + * @return 동기화된 리뷰 수 + */ + int syncNaverReviews(Long storeId, String externalStoreId); - /** - * 구글 리뷰 동기화 - * - * @param storeId 매장 ID - * @param externalStoreId 외부 매장 ID - * @return 동기화된 리뷰 수 - */ - int syncGoogleReviews(Long storeId, String externalStoreId); + /** + * 카카오 리뷰 동기화 + * + * @param storeId 매장 ID + * @param externalStoreId 외부 매장 ID + * @return 동기화된 리뷰 수 + */ + int syncKakaoReviews(Long storeId, String externalStoreId); - /** - * 하이오더 리뷰 동기화 - * - * @param storeId 매장 ID - * @param externalStoreId 외부 매장 ID - * @return 동기화된 리뷰 수 - */ - int syncHiorderReviews(Long storeId, String externalStoreId); + /** + * 구글 리뷰 동기화 + * + * @param storeId 매장 ID + * @param externalStoreId 외부 매장 ID + * @return 동기화된 리뷰 수 + */ + int syncGoogleReviews(Long storeId, String externalStoreId); - /** - * 네이버 계정 연동 - * - * @param storeId 매장 ID - * @param username 사용자명 - * @param password 비밀번호 - * @return 연동 성공 여부 - */ - boolean connectNaverAccount(Long storeId, String username, String password); + /** + * 하이오더 리뷰 동기화 + * + * @param storeId 매장 ID + * @param externalStoreId 외부 매장 ID + * @return 동기화된 리뷰 수 + */ + int syncHiorderReviews(Long storeId, String externalStoreId); - /** - * 카카오 계정 연동 - * - * @param storeId 매장 ID - * @param username 사용자명 - * @param password 비밀번호 - * @return 연동 성공 여부 - */ - boolean connectKakaoAccount(Long storeId, String username, String password); + /** + * 네이버 계정 연동 + * + * @param storeId 매장 ID + * @param username 사용자명 + * @param password 비밀번호 + * @return 연동 성공 여부 + */ + boolean connectNaverAccount(Long storeId, String username, String password); - /** - * 구글 계정 연동 - * - * @param storeId 매장 ID - * @param username 사용자명 - * @param password 비밀번호 - * @return 연동 성공 여부 - */ - boolean connectGoogleAccount(Long storeId, String username, String password); + /** + * 카카오 계정 연동 + * + * @param storeId 매장 ID + * @param username 사용자명 + * @param password 비밀번호 + * @return 연동 성공 여부 + */ + boolean connectKakaoAccount(Long storeId, String username, String password); - /** - * 하이오더 계정 연동 - * - * @param storeId 매장 ID - * @param username 사용자명 - * @param password 비밀번호 - * @return 연동 성공 여부 - */ - boolean connectHiorderAccount(Long storeId, String username, String password); + /** + * 구글 계정 연동 + * + * @param storeId 매장 ID + * @param username 사용자명 + * @param password 비밀번호 + * @return 연동 성공 여부 + */ + boolean connectGoogleAccount(Long storeId, String username, String password); - /** - * 외부 플랫폼 연동 해제 - * - * @param storeId 매장 ID - * @param platform 플랫폼명 (NAVER, KAKAO, GOOGLE, HIORDER) - * @return 연동 해제 성공 여부 - */ - boolean disconnectPlatform(Long storeId, String platform); - /** - * 연동된 플랫폼 목록 조회 - * - * @param storeId 매장 ID - * @return 연동된 플랫폼 목록 - */ - List getConnectedPlatforms(Long storeId); + /** + * 하이오더 계정 연동 + * + * @param storeId 매장 ID + * @param username 사용자명 + * @param password 비밀번호 + * @return 연동 성공 여부 + */ + boolean connectHiorderAccount(Long storeId, String username, String password); - public List> getTempReviews(Long storeId, String platform); -} \ No newline at end of file + /** + * 외부 플랫폼 연동 해제 + * + * @param storeId 매장 ID + * @param platform 플랫폼명 (NAVER, KAKAO, GOOGLE, HIORDER) + * @return 연동 해제 성공 여부 + */ + boolean disconnectPlatform(Long storeId, String platform); + /** + * 연동된 플랫폼 목록 조회 + * + * @param storeId 매장 ID + * @return 연동된 플랫폼 목록 + */ + List getConnectedPlatforms(Long storeId); + + public List> getTempReviews(Long storeId, String platform); + } \ No newline at end of file diff --git a/store/src/main/java/com/ktds/hi/store/biz/usecase/out/TagRepositoryPort.java b/store/src/main/java/com/ktds/hi/store/biz/usecase/out/TagRepositoryPort.java index c511d33..62516c3 100644 --- a/store/src/main/java/com/ktds/hi/store/biz/usecase/out/TagRepositoryPort.java +++ b/store/src/main/java/com/ktds/hi/store/biz/usecase/out/TagRepositoryPort.java @@ -33,7 +33,7 @@ public interface TagRepositoryPort { /** * 가장 많이 클릭된 상위 5개 태그 조회 */ - List findTopClickedTags(); + List findTopClickedTags(Integer storeId); /** * 태그 클릭 수 증가 diff --git a/store/src/main/java/com/ktds/hi/store/infra/controller/TagController.java b/store/src/main/java/com/ktds/hi/store/infra/controller/TagController.java index ad467ba..2babfda 100644 --- a/store/src/main/java/com/ktds/hi/store/infra/controller/TagController.java +++ b/store/src/main/java/com/ktds/hi/store/infra/controller/TagController.java @@ -29,11 +29,11 @@ public class TagController { /** * 가장 많이 클릭된 상위 5개 태그 조회 API */ - @GetMapping("/top-clicked") + @GetMapping("/top-clicked/{storeId}") @Operation(summary = "인기 태그 조회", description = "가장 많이 클릭된 상위 5개 태그를 조회합니다.") - public ResponseEntity>> getTopClickedTags() { + public ResponseEntity>> getTopClickedTags(Integer storeId) { - List topTags = tagUseCase.getTopClickedTags(); + List topTags = tagUseCase.getTopClickedTags(storeId); return ResponseEntity.ok(ApiResponse.success(topTags)); } diff --git a/store/src/main/java/com/ktds/hi/store/infra/gateway/ExternalPlatformAdapter.java b/store/src/main/java/com/ktds/hi/store/infra/gateway/ExternalPlatformAdapter.java index 8530edb..6669a02 100644 --- a/store/src/main/java/com/ktds/hi/store/infra/gateway/ExternalPlatformAdapter.java +++ b/store/src/main/java/com/ktds/hi/store/infra/gateway/ExternalPlatformAdapter.java @@ -67,6 +67,8 @@ public class ExternalPlatformAdapter implements ExternalPlatformPort { return 0; } } + + //*****// @Override public int syncKakaoReviews(Long storeId, String externalStoreId) { log.info("카카오 리뷰 동기화 시작: storeId={}, externalStoreId={}", storeId, externalStoreId); diff --git a/store/src/main/java/com/ktds/hi/store/infra/gateway/TagRepositoryAdapter.java b/store/src/main/java/com/ktds/hi/store/infra/gateway/TagRepositoryAdapter.java index d81799d..cd90fec 100644 --- a/store/src/main/java/com/ktds/hi/store/infra/gateway/TagRepositoryAdapter.java +++ b/store/src/main/java/com/ktds/hi/store/infra/gateway/TagRepositoryAdapter.java @@ -57,10 +57,10 @@ public class TagRepositoryAdapter implements TagRepositoryPort { } @Override - public List findTopClickedTags() { + public List findTopClickedTags(Integer storeId) { log.info("가장 많이 클릭된 상위 5개 태그 조회"); - List entities = tagJpaRepository.findTop5ByOrderByClickCountDesc( + List entities = tagJpaRepository.findTop5ByOrderByClickCountDesc(storeId, PageRequest.of(0, 5) ); diff --git a/store/src/main/java/com/ktds/hi/store/infra/gateway/repository/TagJpaRepository.java b/store/src/main/java/com/ktds/hi/store/infra/gateway/repository/TagJpaRepository.java index 9653d85..01e3019 100644 --- a/store/src/main/java/com/ktds/hi/store/infra/gateway/repository/TagJpaRepository.java +++ b/store/src/main/java/com/ktds/hi/store/infra/gateway/repository/TagJpaRepository.java @@ -4,6 +4,7 @@ import com.ktds.hi.store.domain.TagCategory; import com.ktds.hi.store.infra.gateway.entity.TagEntity; import io.lettuce.core.dynamic.annotation.Param; import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -55,6 +56,6 @@ public interface TagJpaRepository extends JpaRepository { /** * 클릭 수 기준 상위 5개 태그 조회 */ - @Query("SELECT t FROM TagEntity t WHERE t.isActive = true ORDER BY t.clickCount DESC") - List findTop5ByOrderByClickCountDesc(PageRequest pageRequest); + @Query("SELECT t FROM TagEntity t JOIN t.stores s WHERE s.id = :storeId AND t.isActive = true ORDER BY t.clickCount DESC") + List findTop5ByStoreIdOrderByClickCountDesc(@Param("storeId") Long storeId, Pageable pageable); List findTop5ByOrderByClickCountDesc(Integer storeId, PageRequest pageRequest); } diff --git a/store/src/main/resources/application.yml b/store/src/main/resources/application.yml index ee056a3..5293339 100644 --- a/store/src/main/resources/application.yml +++ b/store/src/main/resources/application.yml @@ -24,6 +24,7 @@ spring: eventhub: connection-string: ${AZURE_EVENTHUB_CONNECTION_STRING} + data: redis: host: ${REDIS_HOST:localhost}