From d5b8fcd476293cb23de5cbd4f04b50aca63aca19 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 15 Dec 2025 16:27:06 +0900 Subject: [PATCH] OBP GW Metric Repository --- .../obp/repository/ObpGwMetricRepository.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java diff --git a/src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java b/src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java new file mode 100644 index 0000000..17fbecc --- /dev/null +++ b/src/main/java/com/eactive/apim/portal/obp/repository/ObpGwMetricRepository.java @@ -0,0 +1,44 @@ +package com.eactive.apim.portal.obp.repository; + +import com.eactive.apim.portal.obp.entity.ObpGwMetric; +import com.eactive.eai.data.jpa.BaseRepository; +import com.eactive.eai.rms.data.EMSDataSource; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Optional; + +/** + * ObpGwMetric Repository + * API Gateway 시간별 거래량 지표 조회/저장 + */ +@EMSDataSource +public interface ObpGwMetricRepository extends BaseRepository { + + /** + * UPSERT 판단을 위한 기존 데이터 조회 + * Unique Key: (timeslice, api_id, client_id, hostname, org_id) + */ + Optional findByTimesliceAndApiIdAndClientIdAndHostnameAndOrgId( + LocalDateTime timeslice, + String apiId, + String clientId, + String hostname, + String orgId + ); + + /** + * 특정 시간대의 모든 지표 조회 (REST API 용) + */ + List findByTimeslice(LocalDateTime timeslice); + + /** + * 특정 시간대 범위의 지표 조회 + */ + List findByTimesliceBetween(LocalDateTime startTime, LocalDateTime endTime); + + /** + * API ID로 지표 조회 + */ + List findByApiIdAndTimeslice(String apiId, LocalDateTime timeslice); +}