From fbe886afc83d6614a8415bab9ae0fc70ba770c82 Mon Sep 17 00:00:00 2001 From: Sanghyun Yi Date: Tue, 7 Oct 2025 13:41:12 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20item=20info=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=20=EC=83=9D=EC=84=B1=20flyway=20script=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/AuctionHistoryScheduler.java | 5 ++--- .../service/AuctionHistoryService.java | 3 +-- .../fetcher/AuctionHistoryFetcher.java | 5 ++--- .../persister/AuctionHistoryPersister.java | 3 +-- .../domain/entity/AuctionHistory.java | 5 ++--- .../domain/mapper/AuctionHistoryMapper.java | 3 +-- .../mapper/OpenApiAuctionHistoryMapper.java | 5 ++--- .../AuctionHistoryRepositoryPort.java | 7 +++---- .../AuctionHistoryDuplicateChecker.java | 5 ++--- .../fetcher/AuctionHistoryFetcherPort.java | 3 +-- .../AuctionHistoryPersisterPort.java | 3 +-- .../AuctionHistoryJpaRepository.java | 7 +++---- .../AuctionHistoryQueryDslRepository.java | 3 +-- .../AuctionHistoryRepositoryPortImpl.java | 7 +++---- .../OpenApiAuctionHistoryListResponse.java | 1 - .../dto/OpenApiAuctionHistoryResponse.java | 3 +-- .../AuctionHistoryDetailResponse.java | 1 - .../domain/entity/AuctionItem.java | 5 ++--- .../eternity/common/enums/ItemCategory.java | 5 ++--- .../common/exception/GlobalExceptionCode.java | 4 ++-- .../exception/GlobalExceptionHandler.java | 4 ++-- .../eternity/common/response/ApiResponse.java | 3 +-- .../common/response/PageResponseDto.java | 1 - .../config/openapi/OpenApiFilters.java | 3 +-- .../config/openapi/OpenApiRetryPolicy.java | 3 +-- .../openapi/OpenApiWebClientProperties.java | 3 +-- .../domain/entity/HornBugleWorldHistory.java | 3 +-- .../item/application/service/ItemService.java | 3 +-- .../rest/controller/ItemController.java | 3 +-- .../rest/dto/ItemCategoryResponse.java | 7 +++---- .../ItemDailyMinPriceController.java | 3 +-- .../ItemDailyMinPriceResponseDto.java | 1 - .../domain/entity/ItemDailyMinPrice.java | 3 +-- .../mapper/ItemDailyMinPriceMapper.java | 3 +-- .../service/ItemDailyMinPriceService.java | 5 ++--- .../itemoption/domain/entity/ItemOption.java | 3 +-- .../db/migration/V6__create_item_info.sql | 19 +++++++++++++++++++ 37 files changed, 69 insertions(+), 84 deletions(-) create mode 100644 src/main/resources/db/migration/V6__create_item_info.sql diff --git a/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java b/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java index 1aa7008b..e697ea72 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java @@ -1,5 +1,7 @@ package until.the.eternity.auctionhistory.application.scheduler; +import java.util.ArrayList; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; @@ -11,9 +13,6 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.util.ArrayList; -import java.util.List; - @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java b/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java index 07a7ed6f..cc15bfd1 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java @@ -1,6 +1,7 @@ package until.the.eternity.auctionhistory.application.service; import jakarta.persistence.EntityManager; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; @@ -15,8 +16,6 @@ import until.the.eternity.common.request.PageRequestDto; import until.the.eternity.common.response.PageResponseDto; -import java.util.List; - @Service @RequiredArgsConstructor @Slf4j diff --git a/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java b/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java index c0774dae..a790ec4d 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java @@ -1,5 +1,7 @@ package until.the.eternity.auctionhistory.application.service.fetcher; +import java.util.ArrayList; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -9,9 +11,6 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.util.ArrayList; -import java.util.List; - @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java b/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java index 9eefb683..486008b0 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java @@ -1,5 +1,6 @@ package until.the.eternity.auctionhistory.application.service.persister; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -10,8 +11,6 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.util.List; - @Slf4j @RequiredArgsConstructor @Component diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java b/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java index 84c57b29..8377f288 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java @@ -1,11 +1,10 @@ package until.the.eternity.auctionhistory.domain.entity; import jakarta.persistence.*; -import lombok.*; -import until.the.eternity.itemoption.domain.entity.ItemOption; - import java.time.Instant; import java.util.List; +import lombok.*; +import until.the.eternity.itemoption.domain.entity.ItemOption; @Entity @Table(name = "auction_history") diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java index d2c3343d..e85ab324 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java @@ -1,5 +1,6 @@ package until.the.eternity.auctionhistory.domain.mapper; +import java.util.List; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; @@ -7,8 +8,6 @@ import until.the.eternity.auctionhistory.interfaces.rest.dto.response.ItemOptionResponse; import until.the.eternity.itemoption.domain.entity.ItemOption; -import java.util.List; - /** * AuctionHistory Entity to internal.responseDto transfer mapper class 데이터 흐름은 external.responseDto * -> entity -> internal.responseDto 단방향으로 흐름 diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java index 74daefd2..1fb97d0c 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java @@ -1,13 +1,12 @@ package until.the.eternity.auctionhistory.domain.mapper; +import java.time.Instant; +import java.util.List; import org.mapstruct.*; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.time.Instant; -import java.util.List; - @Mapper(componentModel = "spring", uses = OpenApiItemOptionMapper.class) public interface OpenApiAuctionHistoryMapper { diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java b/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java index 0bd06c81..07d6e426 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java @@ -1,15 +1,14 @@ package until.the.eternity.auctionhistory.domain.repository; +import java.time.Instant; +import java.util.List; +import java.util.Optional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionhistory.interfaces.rest.dto.request.AuctionHistorySearchRequest; import until.the.eternity.common.enums.ItemCategory; -import java.time.Instant; -import java.util.List; -import java.util.Optional; - /** 경매장 거래 내역 POJO Repository - Mock 또는 Stub 으로 대체해 단위 테스트 용이성 확보 */ public interface AuctionHistoryRepositoryPort { diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java b/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java index 5eac2b0e..4db1cc37 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java @@ -1,5 +1,7 @@ package until.the.eternity.auctionhistory.domain.service; +import java.time.Instant; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -7,9 +9,6 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.time.Instant; -import java.util.List; - @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java b/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java index cf00412a..5b649be4 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java @@ -1,10 +1,9 @@ package until.the.eternity.auctionhistory.domain.service.fetcher; +import java.util.List; import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.util.List; - public interface AuctionHistoryFetcherPort { List fetch(ItemCategory category); } diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java b/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java index 44f59205..636f4c2d 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java @@ -1,11 +1,10 @@ package until.the.eternity.auctionhistory.domain.service.persister; +import java.util.List; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; -import java.util.List; - public interface AuctionHistoryPersisterPort { List filterOutExisting( diff --git a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java index 96abc507..9ad13588 100644 --- a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java +++ b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java @@ -1,5 +1,8 @@ package until.the.eternity.auctionhistory.infrastructure.persistence; +import java.time.Instant; +import java.util.List; +import java.util.Optional; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; @@ -7,10 +10,6 @@ import org.springframework.stereotype.Repository; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; -import java.time.Instant; -import java.util.List; -import java.util.Optional; - @Repository public interface AuctionHistoryJpaRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java index 757bfd36..9271563b 100644 --- a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java +++ b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java @@ -2,6 +2,7 @@ import com.querydsl.core.BooleanBuilder; import com.querydsl.jpa.impl.JPAQueryFactory; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -11,8 +12,6 @@ import until.the.eternity.auctionhistory.domain.entity.QAuctionHistory; import until.the.eternity.auctionhistory.interfaces.rest.dto.request.AuctionHistorySearchRequest; -import java.util.List; - @Component @RequiredArgsConstructor class AuctionHistoryQueryDslRepository { diff --git a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java index 0d3ff4f0..417f13bf 100644 --- a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java +++ b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java @@ -1,6 +1,9 @@ package until.the.eternity.auctionhistory.infrastructure.persistence; import jakarta.persistence.EntityManager; +import java.time.Instant; +import java.util.List; +import java.util.Optional; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; @@ -12,10 +15,6 @@ import until.the.eternity.auctionhistory.interfaces.rest.dto.request.AuctionHistorySearchRequest; import until.the.eternity.common.enums.ItemCategory; -import java.time.Instant; -import java.util.List; -import java.util.Optional; - /** AuctionHistoryRepository Interface 구현체 */ @Repository @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java index c49a6b2b..e194aeb7 100644 --- a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java +++ b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java @@ -1,7 +1,6 @@ package until.the.eternity.auctionhistory.interfaces.external.dto; import com.fasterxml.jackson.annotation.JsonProperty; - import java.util.List; public record OpenApiAuctionHistoryListResponse( diff --git a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java index c29c0d78..12e6b109 100644 --- a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java +++ b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java @@ -2,10 +2,9 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; -import until.the.eternity.itemoption.domain.dto.external.OpenApiItemOptionResponse; - import java.time.Instant; import java.util.List; +import until.the.eternity.itemoption.domain.dto.external.OpenApiItemOptionResponse; public record OpenApiAuctionHistoryResponse( @JsonProperty("item_name") String itemName, diff --git a/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java b/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java index d694c60c..082c562f 100644 --- a/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java +++ b/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java @@ -1,7 +1,6 @@ package until.the.eternity.auctionhistory.interfaces.rest.dto.response; import com.fasterxml.jackson.annotation.JsonFormat; - import java.time.Instant; import java.util.List; diff --git a/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java b/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java index 0d5202c6..7a4f4118 100644 --- a/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java +++ b/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java @@ -1,11 +1,10 @@ package until.the.eternity.auctionitem.domain.entity; import jakarta.persistence.*; -import lombok.*; -import until.the.eternity.itemoption.domain.entity.ItemOption; - import java.time.LocalDateTime; import java.util.List; +import lombok.*; +import until.the.eternity.itemoption.domain.entity.ItemOption; @Entity @Table(name = "auction_item") diff --git a/src/main/java/until/the/eternity/common/enums/ItemCategory.java b/src/main/java/until/the/eternity/common/enums/ItemCategory.java index 4143ae3c..87801b67 100644 --- a/src/main/java/until/the/eternity/common/enums/ItemCategory.java +++ b/src/main/java/until/the/eternity/common/enums/ItemCategory.java @@ -1,12 +1,11 @@ package until.the.eternity.common.enums; -import lombok.Getter; -import lombok.RequiredArgsConstructor; - import java.util.Arrays; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; +import lombok.Getter; +import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java b/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java index 1169e930..21c217b0 100644 --- a/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java +++ b/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java @@ -1,11 +1,11 @@ package until.the.eternity.common.exception; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; + import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; -import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; - @Getter @RequiredArgsConstructor public enum GlobalExceptionCode implements ExceptionCode { diff --git a/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java b/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java index bc069d00..4cf5af10 100644 --- a/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java +++ b/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java @@ -1,5 +1,7 @@ package until.the.eternity.common.exception; +import static until.the.eternity.common.exception.GlobalExceptionCode.SERVER_ERROR; + import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -7,8 +9,6 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; import until.the.eternity.common.response.ApiResponse; -import static until.the.eternity.common.exception.GlobalExceptionCode.SERVER_ERROR; - @Slf4j @RestControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { diff --git a/src/main/java/until/the/eternity/common/response/ApiResponse.java b/src/main/java/until/the/eternity/common/response/ApiResponse.java index c7b99b00..c7f83b13 100644 --- a/src/main/java/until/the/eternity/common/response/ApiResponse.java +++ b/src/main/java/until/the/eternity/common/response/ApiResponse.java @@ -1,10 +1,9 @@ package until.the.eternity.common.response; +import java.time.Instant; import lombok.Builder; import lombok.Getter; -import java.time.Instant; - @Getter public class ApiResponse { diff --git a/src/main/java/until/the/eternity/common/response/PageResponseDto.java b/src/main/java/until/the/eternity/common/response/PageResponseDto.java index 0919ce20..c142faac 100644 --- a/src/main/java/until/the/eternity/common/response/PageResponseDto.java +++ b/src/main/java/until/the/eternity/common/response/PageResponseDto.java @@ -1,7 +1,6 @@ package until.the.eternity.common.response; import io.swagger.v3.oas.annotations.media.Schema; - import java.util.List; @Schema(description = "페이지 응답 객체") diff --git a/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java b/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java index 29ca38fe..af0147a8 100644 --- a/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java +++ b/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java @@ -1,13 +1,12 @@ package until.the.eternity.config.openapi; +import java.time.Duration; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.ExchangeFilterFunction; import reactor.core.publisher.Mono; -import java.time.Duration; - @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java b/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java index a419df7c..8c9d0cff 100644 --- a/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java +++ b/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java @@ -1,12 +1,11 @@ package until.the.eternity.config.openapi; +import java.time.Duration; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClientResponseException; import reactor.util.retry.Retry; import reactor.util.retry.RetryBackoffSpec; -import java.time.Duration; - /** Nexon OPEN API 전용 재시도(Back-off) 정책. */ @Component public class OpenApiRetryPolicy { diff --git a/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java b/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java index f8d79043..9d51746d 100644 --- a/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java +++ b/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java @@ -2,11 +2,10 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Positive; +import java.time.Duration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.validation.annotation.Validated; -import java.time.Duration; - /** 외부 API용 WebClient 설정값 홀더 application.yml 사용) */ @Validated @ConfigurationProperties(prefix = "openapi.nexon") diff --git a/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java b/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java index ca38a0ef..0ab19420 100644 --- a/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java +++ b/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java @@ -1,9 +1,8 @@ package until.the.eternity.hornBugle.domain.entity; import jakarta.persistence.*; -import lombok.*; - import java.time.LocalDateTime; +import lombok.*; @Entity @Table(name = "horn_bugle_world_history") diff --git a/src/main/java/until/the/eternity/item/application/service/ItemService.java b/src/main/java/until/the/eternity/item/application/service/ItemService.java index 49a8dee5..4b1bda6f 100644 --- a/src/main/java/until/the/eternity/item/application/service/ItemService.java +++ b/src/main/java/until/the/eternity/item/application/service/ItemService.java @@ -1,12 +1,11 @@ package until.the.eternity.item.application.service; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import until.the.eternity.item.interfaces.rest.dto.ItemCategoryResponse; -import java.util.List; - @Service @RequiredArgsConstructor @Transactional(readOnly = true) diff --git a/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java b/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java index 2d134108..efa15d42 100644 --- a/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java +++ b/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java @@ -2,6 +2,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -11,8 +12,6 @@ import until.the.eternity.item.application.service.ItemService; import until.the.eternity.item.interfaces.rest.dto.ItemCategoryResponse; -import java.util.List; - @RestController @RequiredArgsConstructor @RequestMapping("/api/items") diff --git a/src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java b/src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java index d8a57ca2..f208c1cc 100644 --- a/src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java +++ b/src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java @@ -1,12 +1,11 @@ package until.the.eternity.item.interfaces.rest.dto; -import lombok.Builder; -import lombok.Getter; -import until.the.eternity.common.enums.ItemCategory; - import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; +import lombok.Builder; +import lombok.Getter; +import until.the.eternity.common.enums.ItemCategory; @Getter @Builder diff --git a/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java b/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java index 4a0f6e78..6c03fb72 100644 --- a/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java +++ b/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java @@ -2,6 +2,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; @@ -12,8 +13,6 @@ import until.the.eternity.itemminprice.domain.dto.response.ItemDailyMinPriceResponseDto; import until.the.eternity.itemminprice.service.ItemDailyMinPriceService; -import java.util.List; - @Slf4j @RestController @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java b/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java index d0ef6d5d..e5fcf6f5 100644 --- a/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java +++ b/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java @@ -1,7 +1,6 @@ package until.the.eternity.itemminprice.domain.dto.response; import io.swagger.v3.oas.annotations.media.Schema; - import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java b/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java index 72de26b8..a3dec6fe 100644 --- a/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java +++ b/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java @@ -2,10 +2,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.*; -import lombok.*; - import java.time.LocalDate; import java.time.LocalDateTime; +import lombok.*; @Entity @Table( diff --git a/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java b/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java index 596ddc4b..2f54a40b 100644 --- a/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java +++ b/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java @@ -1,5 +1,6 @@ package until.the.eternity.itemminprice.domain.mapper; +import java.util.List; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; @@ -7,8 +8,6 @@ import until.the.eternity.itemminprice.domain.dto.response.ItemDailyMinPriceResponseDto; import until.the.eternity.itemminprice.domain.entity.ItemDailyMinPrice; -import java.util.List; - @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface ItemDailyMinPriceMapper { diff --git a/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java b/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java index 83095e05..6c5c6aae 100644 --- a/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java +++ b/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java @@ -1,5 +1,7 @@ package until.the.eternity.itemminprice.service; +import java.util.List; +import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -9,9 +11,6 @@ import until.the.eternity.itemminprice.domain.mapper.ItemDailyMinPriceMapper; import until.the.eternity.itemminprice.repository.ItemDailyMinPriceRepository; -import java.util.List; -import java.util.stream.Collectors; - @Slf4j @Service @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java b/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java index 0b1c6881..9cd452d6 100644 --- a/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java +++ b/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java @@ -1,6 +1,7 @@ package until.the.eternity.itemoption.domain.entity; import jakarta.persistence.*; +import java.util.UUID; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -8,8 +9,6 @@ import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionitem.domain.entity.AuctionItem; -import java.util.UUID; - @Entity @Table(name = "auction_item_option") @Getter diff --git a/src/main/resources/db/migration/V6__create_item_info.sql b/src/main/resources/db/migration/V6__create_item_info.sql new file mode 100644 index 00000000..5bafa35b --- /dev/null +++ b/src/main/resources/db/migration/V6__create_item_info.sql @@ -0,0 +1,19 @@ +CREATE TABLE item_info ( + name VARCHAR(255) NOT NULL COMMENT '아이템의 이름', + sub_category VARCHAR(25) NOT NULL COMMENT '아이템 하위 카테고리', + top_category VARCHAR(25) NOT NULL COMMENT '아이템 상위 카테고리', + description VARCHAR(255) COMMENT '아이템의 설명', + inventory_width TINYINT COMMENT '인벤토리 가로 크기', + inventory_height TINYINT COMMENT '인벤토리 세로 크기', + inventory_max_bundle_count INT COMMENT '최대 번들 가능 개수', + history VARCHAR(3000) COMMENT '아이템의 역사', + acquisition_method VARCHAR(3000) COMMENT '입수 방법', + store_sales_price VARCHAR(3000) COMMENT '1개 상점 판매가', + weapon_type VARCHAR(25) COMMENT '공격 속도 및 무기 타입', + repair VARCHAR(25) COMMENT '수리', + max_alteration_count TINYINT COMMENT '최대 개조 횟수' + +) COMMENT='아이템 정보 테이블'; + +-- 초기 데이터 적재 쿼리 +-- INSERT INTO item_info (name, top_category, sub_category) select distinct item_name, item_sub_category, item_sub_category from auction_history; \ No newline at end of file From e09a3a880e0aeb05efaded2b999a8524cb80c448 Mon Sep 17 00:00:00 2001 From: Sanghyun Yi Date: Tue, 7 Oct 2025 13:59:20 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20item=20info=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EC=BB=A8=ED=8A=B8=EB=A1=A4=EB=9F=AC,=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4,=20=EB=A0=88=ED=8F=AC=EC=A7=80=ED=86=A0=EB=A6=AC=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ItemInfoService.java | 37 ++++++++++++ .../iteminfo/domain/entity/ItemInfo.java | 56 +++++++++++++++++++ .../domain/repository/ItemInfoRepository.java | 14 +++++ .../rest/controller/ItemInfoController.java | 53 ++++++++++++++++++ .../rest/dto/response/ItemInfoResponse.java | 46 +++++++++++++++ 5 files changed, 206 insertions(+) create mode 100644 src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java create mode 100644 src/main/java/until/the/eternity/iteminfo/domain/entity/ItemInfo.java create mode 100644 src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java create mode 100644 src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java create mode 100644 src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java diff --git a/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java b/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java new file mode 100644 index 00000000..d1ba893d --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java @@ -0,0 +1,37 @@ +package until.the.eternity.iteminfo.application.service; + +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import until.the.eternity.iteminfo.domain.entity.ItemInfo; +import until.the.eternity.iteminfo.domain.repository.ItemInfoRepository; +import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemInfoResponse; + +@Service +@Transactional(readOnly = true) +@RequiredArgsConstructor +public class ItemInfoService { + + private final ItemInfoRepository itemInfoRepository; + + public List findAll() { + List itemInfos = itemInfoRepository.findAll(); + return ItemInfoResponse.from(itemInfos); + } + + public List findByItemName(String name) { + List itemInfos = itemInfoRepository.findByNameContaining(name); + return ItemInfoResponse.from(itemInfos); + } + + public List findByTopCategory(String topCategory) { + List itemInfos = itemInfoRepository.findByTopCategory(topCategory); + return ItemInfoResponse.from(itemInfos); + } + + public List findBySubCategory(String subCategory) { + List itemInfos = itemInfoRepository.findBySubCategory(subCategory); + return ItemInfoResponse.from(itemInfos); + } +} diff --git a/src/main/java/until/the/eternity/iteminfo/domain/entity/ItemInfo.java b/src/main/java/until/the/eternity/iteminfo/domain/entity/ItemInfo.java new file mode 100644 index 00000000..a351b9e0 --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/domain/entity/ItemInfo.java @@ -0,0 +1,56 @@ +package until.the.eternity.iteminfo.domain.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "item_info") +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class ItemInfo { + + @Id + @Column(name = "name", nullable = false) + private String name; + + @Column(name = "sub_category", nullable = false) + private String subCategory; + + @Column(name = "top_category", nullable = false) + private String topCategory; + + @Column(name = "description") + private String description; + + @Column(name = "inventory_width") + private Byte inventoryWidth; + + @Column(name = "inventory_height") + private Byte inventoryHeight; + + @Column(name = "inventory_max_bundle_count") + private Integer inventoryMaxBundleCount; + + @Column(name = "history", length = 3000) + private String history; + + @Column(name = "acquisition_method", length = 3000) + private String acquisitionMethod; + + @Column(name = "store_sales_price", length = 3000) + private String storeSalesPrice; + + @Column(name = "weapon_type") + private String weaponType; + + @Column(name = "repair") + private String repair; + + @Column(name = "max_alteration_count") + private Byte maxAlterationCount; +} diff --git a/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java b/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java new file mode 100644 index 00000000..9836fa95 --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java @@ -0,0 +1,14 @@ +package until.the.eternity.iteminfo.domain.repository; + +import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import until.the.eternity.iteminfo.domain.entity.ItemInfo; + +public interface ItemInfoRepository extends JpaRepository { + + List findByNameContaining(String name); + + List findByTopCategory(String topCategory); + + List findBySubCategory(String subCategory); +} diff --git a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java new file mode 100644 index 00000000..2f425659 --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java @@ -0,0 +1,53 @@ +package until.the.eternity.iteminfo.interfaces.rest.controller; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import java.util.List; +import lombok.RequiredArgsConstructor; +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 until.the.eternity.iteminfo.application.service.ItemInfoService; +import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemInfoResponse; + +@RestController +@RequestMapping("/api/v1/item-infos") +@RequiredArgsConstructor +@Tag(name = "Item Info", description = "아이템 정보 조회 API") +public class ItemInfoController { + + private final ItemInfoService itemInfoService; + + @Operation(summary = "모든 아이템 정보 조회", description = "시스템에 저장된 모든 아이템 정보를 조회합니다.") + @GetMapping + public List getAllItemInfos() { + return itemInfoService.findAll(); + } + + @Operation(summary = "아이템 이름으로 검색", description = "아이템 이름에 포함된 키워드로 아이템 정보를 검색합니다.") + @GetMapping("/search/name") + public List searchItemInfosByName( + @Parameter(description = "검색할 아이템 이름 키워드", required = true, example = "나뭇가지") + @RequestParam + String name) { + return itemInfoService.findByItemName(name); + } + + @Operation(summary = "상위 카테고리로 검색", description = "상위 카테고리 이름으로 아이템 정보를 검색합니다.") + @GetMapping("/search/top-category") + public List searchItemInfosByTopCategory( + @Parameter(description = "검색할 상위 카테고리", required = true, example = "무기") @RequestParam + String topCategory) { + return itemInfoService.findByTopCategory(topCategory); + } + + @Operation(summary = "하위 카테고리로 검색", description = "하위 카테고리 이름으로 아이템 정보를 검색합니다.") + @GetMapping("/search/sub-category") + public List searchItemInfosBySubCategory( + @Parameter(description = "검색할 하위 카테고리", required = true, example = "한손검") @RequestParam + String subCategory) { + return itemInfoService.findBySubCategory(subCategory); + } +} diff --git a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java new file mode 100644 index 00000000..be9d890b --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java @@ -0,0 +1,46 @@ +package until.the.eternity.iteminfo.interfaces.rest.dto.response; + +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; +import java.util.stream.Collectors; +import lombok.Builder; +import until.the.eternity.iteminfo.domain.entity.ItemInfo; + +@Builder +@Schema(description = "아이템 정보 응답 DTO") +public record ItemInfoResponse( + @Schema(description = "아이템 이름", example = "나뭇가지") String name, + @Schema(description = "상위 카테고리", example = "무기") String topCategory, + @Schema(description = "하위 카테고리", example = "한손검") String subCategory, + @Schema(description = "아이템 설명", example = "흔한 나뭇가지이다.") String description, + @Schema(description = "인벤토리 가로 크기", example = "1") Byte inventoryWidth, + @Schema(description = "인벤토리 세로 크기", example = "2") Byte inventoryHeight, + @Schema(description = "최대 번들 가능 개수", example = "100") Integer inventoryMaxBundleCount, + @Schema(description = "아이템 역사") String history, + @Schema(description = "입수 방법") String acquisitionMethod, + @Schema(description = "1개 상점 판매가") String storeSalesPrice, + @Schema(description = "공격 속도 및 무기 타입") String weaponType, + @Schema(description = "수리 정보") String repair, + @Schema(description = "최대 개조 횟수") Byte maxAlterationCount) { + public static ItemInfoResponse from(ItemInfo itemInfo) { + return ItemInfoResponse.builder() + .name(itemInfo.getName()) + .topCategory(itemInfo.getTopCategory()) + .subCategory(itemInfo.getSubCategory()) + .description(itemInfo.getDescription()) + .inventoryWidth(itemInfo.getInventoryWidth()) + .inventoryHeight(itemInfo.getInventoryHeight()) + .inventoryMaxBundleCount(itemInfo.getInventoryMaxBundleCount()) + .history(itemInfo.getHistory()) + .acquisitionMethod(itemInfo.getAcquisitionMethod()) + .storeSalesPrice(itemInfo.getStoreSalesPrice()) + .weaponType(itemInfo.getWeaponType()) + .repair(itemInfo.getRepair()) + .maxAlterationCount(itemInfo.getMaxAlterationCount()) + .build(); + } + + public static List from(List itemInfos) { + return itemInfos.stream().map(ItemInfoResponse::from).collect(Collectors.toList()); + } +} From 3349a1409c8ed0a84b6655d69c26be17833ef847 Mon Sep 17 00:00:00 2001 From: Sanghyun Yi Date: Tue, 7 Oct 2025 14:13:43 +0900 Subject: [PATCH 3/7] =?UTF-8?q?fix:=20item=20info=EC=97=90=EC=84=9C=20name?= =?UTF-8?q?=EC=9D=84=20pk=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/db/migration/V6__create_item_info.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V6__create_item_info.sql b/src/main/resources/db/migration/V6__create_item_info.sql index 5bafa35b..716ac8b7 100644 --- a/src/main/resources/db/migration/V6__create_item_info.sql +++ b/src/main/resources/db/migration/V6__create_item_info.sql @@ -1,5 +1,5 @@ CREATE TABLE item_info ( - name VARCHAR(255) NOT NULL COMMENT '아이템의 이름', + name VARCHAR(255) NOT NULL PRIMARY KEY COMMENT '아이템의 이름', sub_category VARCHAR(25) NOT NULL COMMENT '아이템 하위 카테고리', top_category VARCHAR(25) NOT NULL COMMENT '아이템 상위 카테고리', description VARCHAR(255) COMMENT '아이템의 설명', From 0e510d397b6db44d2d037846a31aa96c7e658da1 Mon Sep 17 00:00:00 2001 From: Sanghyun Yi Date: Tue, 7 Oct 2025 20:55:11 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20item=20info=20repository=20?= =?UTF-8?q?=EC=B6=94=EC=83=81=ED=99=94=EB=A5=BC=20=EC=9C=84=ED=95=9C=20Por?= =?UTF-8?q?t,=20PortImpl=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/application/service/ItemService.java | 17 ----------- .../rest/controller/ItemController.java | 29 ------------------- .../application/service/ItemInfoService.java | 14 ++++----- ...itory.java => ItemInfoRepositoryPort.java} | 6 ++-- .../persistence/ItemInfoJpaRepository.java | 16 ++++++++++ .../ItemInfoRepositoryPortImpl.java | 28 ++++++++++++++++++ .../rest/controller/ItemInfoController.java | 21 +++++++------- .../dto/response}/ItemCategoryResponse.java | 2 +- 8 files changed, 65 insertions(+), 68 deletions(-) delete mode 100644 src/main/java/until/the/eternity/item/application/service/ItemService.java delete mode 100644 src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java rename src/main/java/until/the/eternity/iteminfo/domain/repository/{ItemInfoRepository.java => ItemInfoRepositoryPort.java} (57%) create mode 100644 src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java create mode 100644 src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java rename src/main/java/until/the/eternity/{item/interfaces/rest/dto => iteminfo/interfaces/rest/dto/response}/ItemCategoryResponse.java (92%) diff --git a/src/main/java/until/the/eternity/item/application/service/ItemService.java b/src/main/java/until/the/eternity/item/application/service/ItemService.java deleted file mode 100644 index 4b1bda6f..00000000 --- a/src/main/java/until/the/eternity/item/application/service/ItemService.java +++ /dev/null @@ -1,17 +0,0 @@ -package until.the.eternity.item.application.service; - -import java.util.List; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import until.the.eternity.item.interfaces.rest.dto.ItemCategoryResponse; - -@Service -@RequiredArgsConstructor -@Transactional(readOnly = true) -public class ItemService { - - public List findItemCategories() { - return ItemCategoryResponse.from(); - } -} diff --git a/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java b/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java deleted file mode 100644 index efa15d42..00000000 --- a/src/main/java/until/the/eternity/item/interfaces/rest/controller/ItemController.java +++ /dev/null @@ -1,29 +0,0 @@ -package until.the.eternity.item.interfaces.rest.controller; - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import java.util.List; -import lombok.RequiredArgsConstructor; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import until.the.eternity.common.response.ApiResponse; -import until.the.eternity.item.application.service.ItemService; -import until.the.eternity.item.interfaces.rest.dto.ItemCategoryResponse; - -@RestController -@RequiredArgsConstructor -@RequestMapping("/api/items") -@Tag(name = "아이템 정보 API", description = "아이템 정보 API") -public class ItemController { - - private final ItemService itemService; - - @GetMapping("/categories") - @Operation(summary = "카테고리 정보", description = "아이템 상위 카테고리, 하위 카테고리 정보 조회") - public ResponseEntity>> findItemCategories() { - List itemCategories = itemService.findItemCategories(); - return ResponseEntity.ok(ApiResponse.success(itemCategories)); - } -} diff --git a/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java b/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java index d1ba893d..8e1ba3b2 100644 --- a/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java +++ b/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java @@ -5,7 +5,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import until.the.eternity.iteminfo.domain.entity.ItemInfo; -import until.the.eternity.iteminfo.domain.repository.ItemInfoRepository; +import until.the.eternity.iteminfo.domain.repository.ItemInfoRepositoryPort; +import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemCategoryResponse; import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemInfoResponse; @Service @@ -13,15 +14,14 @@ @RequiredArgsConstructor public class ItemInfoService { - private final ItemInfoRepository itemInfoRepository; + private final ItemInfoRepositoryPort itemInfoRepository; - public List findAll() { - List itemInfos = itemInfoRepository.findAll(); - return ItemInfoResponse.from(itemInfos); + public List findItemCategories() { + return ItemCategoryResponse.from(); } - public List findByItemName(String name) { - List itemInfos = itemInfoRepository.findByNameContaining(name); + public List findAll() { + List itemInfos = itemInfoRepository.findAll(); return ItemInfoResponse.from(itemInfos); } diff --git a/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java b/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java similarity index 57% rename from src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java rename to src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java index 9836fa95..b9c18622 100644 --- a/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepository.java +++ b/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java @@ -1,12 +1,10 @@ package until.the.eternity.iteminfo.domain.repository; import java.util.List; -import org.springframework.data.jpa.repository.JpaRepository; import until.the.eternity.iteminfo.domain.entity.ItemInfo; -public interface ItemInfoRepository extends JpaRepository { - - List findByNameContaining(String name); +public interface ItemInfoRepositoryPort { + List findAll(); List findByTopCategory(String topCategory); diff --git a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java new file mode 100644 index 00000000..6ceb799e --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java @@ -0,0 +1,16 @@ +package until.the.eternity.iteminfo.infrastructure.persistence; + +import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import until.the.eternity.iteminfo.domain.entity.ItemInfo; + +public interface ItemInfoJpaRepository + extends JpaRepository, JpaSpecificationExecutor { + + List findAll(); + + List findByTopCategory(String topCategory); + + List findBySubCategory(String subCategory); +} diff --git a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java new file mode 100644 index 00000000..cee52700 --- /dev/null +++ b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java @@ -0,0 +1,28 @@ +package until.the.eternity.iteminfo.infrastructure.persistence; + +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; +import until.the.eternity.iteminfo.domain.entity.ItemInfo; +import until.the.eternity.iteminfo.domain.repository.ItemInfoRepositoryPort; + +@Repository +@RequiredArgsConstructor +public class ItemInfoRepositoryPortImpl implements ItemInfoRepositoryPort { + private final ItemInfoJpaRepository jpaRepository; + + @Override + public List findAll() { + return jpaRepository.findAll(); + } + + @Override + public List findByTopCategory(String topCategory) { + return jpaRepository.findByTopCategory(topCategory); + } + + @Override + public List findBySubCategory(String subCategory) { + return jpaRepository.findBySubCategory(subCategory); + } +} diff --git a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java index 2f425659..0c1ccaed 100644 --- a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java @@ -5,36 +5,37 @@ import io.swagger.v3.oas.annotations.tags.Tag; import java.util.List; import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; 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 until.the.eternity.common.response.ApiResponse; import until.the.eternity.iteminfo.application.service.ItemInfoService; +import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemCategoryResponse; import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemInfoResponse; @RestController -@RequestMapping("/api/v1/item-infos") +@RequestMapping("/api/item-infos") @RequiredArgsConstructor @Tag(name = "Item Info", description = "아이템 정보 조회 API") public class ItemInfoController { private final ItemInfoService itemInfoService; + @GetMapping("/categories") + @Operation(summary = "카테고리 정보", description = "아이템 상위 카테고리, 하위 카테고리 정보 조회") + public ResponseEntity>> findItemCategories() { + List itemCategories = itemInfoService.findItemCategories(); + return ResponseEntity.ok(ApiResponse.success(itemCategories)); + } + @Operation(summary = "모든 아이템 정보 조회", description = "시스템에 저장된 모든 아이템 정보를 조회합니다.") @GetMapping public List getAllItemInfos() { return itemInfoService.findAll(); } - @Operation(summary = "아이템 이름으로 검색", description = "아이템 이름에 포함된 키워드로 아이템 정보를 검색합니다.") - @GetMapping("/search/name") - public List searchItemInfosByName( - @Parameter(description = "검색할 아이템 이름 키워드", required = true, example = "나뭇가지") - @RequestParam - String name) { - return itemInfoService.findByItemName(name); - } - @Operation(summary = "상위 카테고리로 검색", description = "상위 카테고리 이름으로 아이템 정보를 검색합니다.") @GetMapping("/search/top-category") public List searchItemInfosByTopCategory( diff --git a/src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java similarity index 92% rename from src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java rename to src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java index f208c1cc..065d209e 100644 --- a/src/main/java/until/the/eternity/item/interfaces/rest/dto/ItemCategoryResponse.java +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java @@ -1,4 +1,4 @@ -package until.the.eternity.item.interfaces.rest.dto; +package until.the.eternity.iteminfo.interfaces.rest.dto.response; import java.util.Arrays; import java.util.List; From 97edb2c06e4f6d8760193b064b07013eaa789bf7 Mon Sep 17 00:00:00 2001 From: Sanghyun Yi Date: Tue, 7 Oct 2025 20:55:47 +0900 Subject: [PATCH 5/7] fix: optimize imports --- .../application/scheduler/AuctionHistoryScheduler.java | 5 +++-- .../application/service/AuctionHistoryService.java | 3 ++- .../application/service/fetcher/AuctionHistoryFetcher.java | 5 +++-- .../service/persister/AuctionHistoryPersister.java | 3 ++- .../auctionhistory/domain/entity/AuctionHistory.java | 5 +++-- .../auctionhistory/domain/mapper/AuctionHistoryMapper.java | 3 ++- .../domain/mapper/OpenApiAuctionHistoryMapper.java | 5 +++-- .../domain/repository/AuctionHistoryRepositoryPort.java | 7 ++++--- .../domain/service/AuctionHistoryDuplicateChecker.java | 5 +++-- .../domain/service/fetcher/AuctionHistoryFetcherPort.java | 3 ++- .../service/persister/AuctionHistoryPersisterPort.java | 3 ++- .../persistence/AuctionHistoryJpaRepository.java | 7 ++++--- .../persistence/AuctionHistoryQueryDslRepository.java | 3 ++- .../persistence/AuctionHistoryRepositoryPortImpl.java | 7 ++++--- .../external/dto/OpenApiAuctionHistoryListResponse.java | 1 + .../external/dto/OpenApiAuctionHistoryResponse.java | 3 ++- .../rest/dto/response/AuctionHistoryDetailResponse.java | 1 + .../eternity/auctionitem/domain/entity/AuctionItem.java | 5 +++-- .../java/until/the/eternity/common/enums/ItemCategory.java | 5 +++-- .../the/eternity/common/exception/GlobalExceptionCode.java | 4 ++-- .../eternity/common/exception/GlobalExceptionHandler.java | 4 ++-- .../until/the/eternity/common/response/ApiResponse.java | 3 ++- .../the/eternity/common/response/PageResponseDto.java | 1 + .../until/the/eternity/config/openapi/OpenApiFilters.java | 3 ++- .../the/eternity/config/openapi/OpenApiRetryPolicy.java | 3 ++- .../config/openapi/OpenApiWebClientProperties.java | 3 ++- .../hornBugle/domain/entity/HornBugleWorldHistory.java | 3 ++- .../iteminfo/application/service/ItemInfoService.java | 3 ++- .../iteminfo/domain/repository/ItemInfoRepositoryPort.java | 3 ++- .../infrastructure/persistence/ItemInfoJpaRepository.java | 3 ++- .../persistence/ItemInfoRepositoryPortImpl.java | 3 ++- .../interfaces/rest/controller/ItemInfoController.java | 3 ++- .../interfaces/rest/dto/response/ItemCategoryResponse.java | 7 ++++--- .../interfaces/rest/dto/response/ItemInfoResponse.java | 5 +++-- .../controller/ItemDailyMinPriceController.java | 3 ++- .../domain/dto/response/ItemDailyMinPriceResponseDto.java | 1 + .../itemminprice/domain/entity/ItemDailyMinPrice.java | 3 ++- .../domain/mapper/ItemDailyMinPriceMapper.java | 3 ++- .../itemminprice/service/ItemDailyMinPriceService.java | 5 +++-- .../the/eternity/itemoption/domain/entity/ItemOption.java | 3 ++- 40 files changed, 93 insertions(+), 55 deletions(-) diff --git a/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java b/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java index e697ea72..1aa7008b 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/scheduler/AuctionHistoryScheduler.java @@ -1,7 +1,5 @@ package until.the.eternity.auctionhistory.application.scheduler; -import java.util.ArrayList; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; @@ -13,6 +11,9 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.util.ArrayList; +import java.util.List; + @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java b/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java index cc15bfd1..07a7ed6f 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/service/AuctionHistoryService.java @@ -1,7 +1,6 @@ package until.the.eternity.auctionhistory.application.service; import jakarta.persistence.EntityManager; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; @@ -16,6 +15,8 @@ import until.the.eternity.common.request.PageRequestDto; import until.the.eternity.common.response.PageResponseDto; +import java.util.List; + @Service @RequiredArgsConstructor @Slf4j diff --git a/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java b/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java index a790ec4d..c0774dae 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/service/fetcher/AuctionHistoryFetcher.java @@ -1,7 +1,5 @@ package until.the.eternity.auctionhistory.application.service.fetcher; -import java.util.ArrayList; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -11,6 +9,9 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.util.ArrayList; +import java.util.List; + @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java b/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java index 486008b0..9eefb683 100644 --- a/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java +++ b/src/main/java/until/the/eternity/auctionhistory/application/service/persister/AuctionHistoryPersister.java @@ -1,6 +1,5 @@ package until.the.eternity.auctionhistory.application.service.persister; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -11,6 +10,8 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.util.List; + @Slf4j @RequiredArgsConstructor @Component diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java b/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java index 8377f288..84c57b29 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/entity/AuctionHistory.java @@ -1,11 +1,12 @@ package until.the.eternity.auctionhistory.domain.entity; import jakarta.persistence.*; -import java.time.Instant; -import java.util.List; import lombok.*; import until.the.eternity.itemoption.domain.entity.ItemOption; +import java.time.Instant; +import java.util.List; + @Entity @Table(name = "auction_history") @Getter diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java index e85ab324..d2c3343d 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/AuctionHistoryMapper.java @@ -1,6 +1,5 @@ package until.the.eternity.auctionhistory.domain.mapper; -import java.util.List; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; @@ -8,6 +7,8 @@ import until.the.eternity.auctionhistory.interfaces.rest.dto.response.ItemOptionResponse; import until.the.eternity.itemoption.domain.entity.ItemOption; +import java.util.List; + /** * AuctionHistory Entity to internal.responseDto transfer mapper class 데이터 흐름은 external.responseDto * -> entity -> internal.responseDto 단방향으로 흐름 diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java index 1fb97d0c..74daefd2 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/mapper/OpenApiAuctionHistoryMapper.java @@ -1,12 +1,13 @@ package until.the.eternity.auctionhistory.domain.mapper; -import java.time.Instant; -import java.util.List; import org.mapstruct.*; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.time.Instant; +import java.util.List; + @Mapper(componentModel = "spring", uses = OpenApiItemOptionMapper.class) public interface OpenApiAuctionHistoryMapper { diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java b/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java index 07d6e426..0bd06c81 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/repository/AuctionHistoryRepositoryPort.java @@ -1,14 +1,15 @@ package until.the.eternity.auctionhistory.domain.repository; -import java.time.Instant; -import java.util.List; -import java.util.Optional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionhistory.interfaces.rest.dto.request.AuctionHistorySearchRequest; import until.the.eternity.common.enums.ItemCategory; +import java.time.Instant; +import java.util.List; +import java.util.Optional; + /** 경매장 거래 내역 POJO Repository - Mock 또는 Stub 으로 대체해 단위 테스트 용이성 확보 */ public interface AuctionHistoryRepositoryPort { diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java b/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java index 4db1cc37..5eac2b0e 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/service/AuctionHistoryDuplicateChecker.java @@ -1,7 +1,5 @@ package until.the.eternity.auctionhistory.domain.service; -import java.time.Instant; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -9,6 +7,9 @@ import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.time.Instant; +import java.util.List; + @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java b/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java index 5b649be4..cf00412a 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/service/fetcher/AuctionHistoryFetcherPort.java @@ -1,9 +1,10 @@ package until.the.eternity.auctionhistory.domain.service.fetcher; -import java.util.List; import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.util.List; + public interface AuctionHistoryFetcherPort { List fetch(ItemCategory category); } diff --git a/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java b/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java index 636f4c2d..44f59205 100644 --- a/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java +++ b/src/main/java/until/the/eternity/auctionhistory/domain/service/persister/AuctionHistoryPersisterPort.java @@ -1,10 +1,11 @@ package until.the.eternity.auctionhistory.domain.service.persister; -import java.util.List; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionhistory.interfaces.external.dto.OpenApiAuctionHistoryResponse; import until.the.eternity.common.enums.ItemCategory; +import java.util.List; + public interface AuctionHistoryPersisterPort { List filterOutExisting( diff --git a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java index 9ad13588..96abc507 100644 --- a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java +++ b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryJpaRepository.java @@ -1,8 +1,5 @@ package until.the.eternity.auctionhistory.infrastructure.persistence; -import java.time.Instant; -import java.util.List; -import java.util.Optional; import org.springframework.data.jpa.repository.EntityGraph; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; @@ -10,6 +7,10 @@ import org.springframework.stereotype.Repository; import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; +import java.time.Instant; +import java.util.List; +import java.util.Optional; + @Repository public interface AuctionHistoryJpaRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java index 9271563b..757bfd36 100644 --- a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java +++ b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryQueryDslRepository.java @@ -2,7 +2,6 @@ import com.querydsl.core.BooleanBuilder; import com.querydsl.jpa.impl.JPAQueryFactory; -import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -12,6 +11,8 @@ import until.the.eternity.auctionhistory.domain.entity.QAuctionHistory; import until.the.eternity.auctionhistory.interfaces.rest.dto.request.AuctionHistorySearchRequest; +import java.util.List; + @Component @RequiredArgsConstructor class AuctionHistoryQueryDslRepository { diff --git a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java index 417f13bf..0d3ff4f0 100644 --- a/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java +++ b/src/main/java/until/the/eternity/auctionhistory/infrastructure/persistence/AuctionHistoryRepositoryPortImpl.java @@ -1,9 +1,6 @@ package until.the.eternity.auctionhistory.infrastructure.persistence; import jakarta.persistence.EntityManager; -import java.time.Instant; -import java.util.List; -import java.util.Optional; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; @@ -15,6 +12,10 @@ import until.the.eternity.auctionhistory.interfaces.rest.dto.request.AuctionHistorySearchRequest; import until.the.eternity.common.enums.ItemCategory; +import java.time.Instant; +import java.util.List; +import java.util.Optional; + /** AuctionHistoryRepository Interface 구현체 */ @Repository @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java index e194aeb7..c49a6b2b 100644 --- a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java +++ b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryListResponse.java @@ -1,6 +1,7 @@ package until.the.eternity.auctionhistory.interfaces.external.dto; import com.fasterxml.jackson.annotation.JsonProperty; + import java.util.List; public record OpenApiAuctionHistoryListResponse( diff --git a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java index 12e6b109..c29c0d78 100644 --- a/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java +++ b/src/main/java/until/the/eternity/auctionhistory/interfaces/external/dto/OpenApiAuctionHistoryResponse.java @@ -2,9 +2,10 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; +import until.the.eternity.itemoption.domain.dto.external.OpenApiItemOptionResponse; + import java.time.Instant; import java.util.List; -import until.the.eternity.itemoption.domain.dto.external.OpenApiItemOptionResponse; public record OpenApiAuctionHistoryResponse( @JsonProperty("item_name") String itemName, diff --git a/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java b/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java index 082c562f..d694c60c 100644 --- a/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java +++ b/src/main/java/until/the/eternity/auctionhistory/interfaces/rest/dto/response/AuctionHistoryDetailResponse.java @@ -1,6 +1,7 @@ package until.the.eternity.auctionhistory.interfaces.rest.dto.response; import com.fasterxml.jackson.annotation.JsonFormat; + import java.time.Instant; import java.util.List; diff --git a/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java b/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java index 7a4f4118..0d5202c6 100644 --- a/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java +++ b/src/main/java/until/the/eternity/auctionitem/domain/entity/AuctionItem.java @@ -1,11 +1,12 @@ package until.the.eternity.auctionitem.domain.entity; import jakarta.persistence.*; -import java.time.LocalDateTime; -import java.util.List; import lombok.*; import until.the.eternity.itemoption.domain.entity.ItemOption; +import java.time.LocalDateTime; +import java.util.List; + @Entity @Table(name = "auction_item") @Getter diff --git a/src/main/java/until/the/eternity/common/enums/ItemCategory.java b/src/main/java/until/the/eternity/common/enums/ItemCategory.java index 87801b67..4143ae3c 100644 --- a/src/main/java/until/the/eternity/common/enums/ItemCategory.java +++ b/src/main/java/until/the/eternity/common/enums/ItemCategory.java @@ -1,11 +1,12 @@ package until.the.eternity.common.enums; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + import java.util.Arrays; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import lombok.Getter; -import lombok.RequiredArgsConstructor; @Getter @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java b/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java index 21c217b0..1169e930 100644 --- a/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java +++ b/src/main/java/until/the/eternity/common/exception/GlobalExceptionCode.java @@ -1,11 +1,11 @@ package until.the.eternity.common.exception; -import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; - import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; + @Getter @RequiredArgsConstructor public enum GlobalExceptionCode implements ExceptionCode { diff --git a/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java b/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java index 4cf5af10..bc069d00 100644 --- a/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java +++ b/src/main/java/until/the/eternity/common/exception/GlobalExceptionHandler.java @@ -1,7 +1,5 @@ package until.the.eternity.common.exception; -import static until.the.eternity.common.exception.GlobalExceptionCode.SERVER_ERROR; - import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -9,6 +7,8 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; import until.the.eternity.common.response.ApiResponse; +import static until.the.eternity.common.exception.GlobalExceptionCode.SERVER_ERROR; + @Slf4j @RestControllerAdvice public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { diff --git a/src/main/java/until/the/eternity/common/response/ApiResponse.java b/src/main/java/until/the/eternity/common/response/ApiResponse.java index c7f83b13..c7b99b00 100644 --- a/src/main/java/until/the/eternity/common/response/ApiResponse.java +++ b/src/main/java/until/the/eternity/common/response/ApiResponse.java @@ -1,9 +1,10 @@ package until.the.eternity.common.response; -import java.time.Instant; import lombok.Builder; import lombok.Getter; +import java.time.Instant; + @Getter public class ApiResponse { diff --git a/src/main/java/until/the/eternity/common/response/PageResponseDto.java b/src/main/java/until/the/eternity/common/response/PageResponseDto.java index c142faac..0919ce20 100644 --- a/src/main/java/until/the/eternity/common/response/PageResponseDto.java +++ b/src/main/java/until/the/eternity/common/response/PageResponseDto.java @@ -1,6 +1,7 @@ package until.the.eternity.common.response; import io.swagger.v3.oas.annotations.media.Schema; + import java.util.List; @Schema(description = "페이지 응답 객체") diff --git a/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java b/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java index af0147a8..29ca38fe 100644 --- a/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java +++ b/src/main/java/until/the/eternity/config/openapi/OpenApiFilters.java @@ -1,12 +1,13 @@ package until.the.eternity.config.openapi; -import java.time.Duration; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.ExchangeFilterFunction; import reactor.core.publisher.Mono; +import java.time.Duration; + @Slf4j @Component @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java b/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java index 8c9d0cff..a419df7c 100644 --- a/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java +++ b/src/main/java/until/the/eternity/config/openapi/OpenApiRetryPolicy.java @@ -1,11 +1,12 @@ package until.the.eternity.config.openapi; -import java.time.Duration; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClientResponseException; import reactor.util.retry.Retry; import reactor.util.retry.RetryBackoffSpec; +import java.time.Duration; + /** Nexon OPEN API 전용 재시도(Back-off) 정책. */ @Component public class OpenApiRetryPolicy { diff --git a/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java b/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java index 9d51746d..f8d79043 100644 --- a/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java +++ b/src/main/java/until/the/eternity/config/openapi/OpenApiWebClientProperties.java @@ -2,10 +2,11 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Positive; -import java.time.Duration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.validation.annotation.Validated; +import java.time.Duration; + /** 외부 API용 WebClient 설정값 홀더 application.yml 사용) */ @Validated @ConfigurationProperties(prefix = "openapi.nexon") diff --git a/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java b/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java index 0ab19420..ca38a0ef 100644 --- a/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java +++ b/src/main/java/until/the/eternity/hornBugle/domain/entity/HornBugleWorldHistory.java @@ -1,9 +1,10 @@ package until.the.eternity.hornBugle.domain.entity; import jakarta.persistence.*; -import java.time.LocalDateTime; import lombok.*; +import java.time.LocalDateTime; + @Entity @Table(name = "horn_bugle_world_history") @Getter diff --git a/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java b/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java index 8e1ba3b2..333a39a1 100644 --- a/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java +++ b/src/main/java/until/the/eternity/iteminfo/application/service/ItemInfoService.java @@ -1,6 +1,5 @@ package until.the.eternity.iteminfo.application.service; -import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -9,6 +8,8 @@ import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemCategoryResponse; import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemInfoResponse; +import java.util.List; + @Service @Transactional(readOnly = true) @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java b/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java index b9c18622..395897d3 100644 --- a/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java +++ b/src/main/java/until/the/eternity/iteminfo/domain/repository/ItemInfoRepositoryPort.java @@ -1,8 +1,9 @@ package until.the.eternity.iteminfo.domain.repository; -import java.util.List; import until.the.eternity.iteminfo.domain.entity.ItemInfo; +import java.util.List; + public interface ItemInfoRepositoryPort { List findAll(); diff --git a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java index 6ceb799e..085cd2e6 100644 --- a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java +++ b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java @@ -1,10 +1,11 @@ package until.the.eternity.iteminfo.infrastructure.persistence; -import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import until.the.eternity.iteminfo.domain.entity.ItemInfo; +import java.util.List; + public interface ItemInfoJpaRepository extends JpaRepository, JpaSpecificationExecutor { diff --git a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java index cee52700..80c735f5 100644 --- a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java +++ b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoRepositoryPortImpl.java @@ -1,11 +1,12 @@ package until.the.eternity.iteminfo.infrastructure.persistence; -import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import until.the.eternity.iteminfo.domain.entity.ItemInfo; import until.the.eternity.iteminfo.domain.repository.ItemInfoRepositoryPort; +import java.util.List; + @Repository @RequiredArgsConstructor public class ItemInfoRepositoryPortImpl implements ItemInfoRepositoryPort { diff --git a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java index 0c1ccaed..bac6bce3 100644 --- a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/controller/ItemInfoController.java @@ -3,7 +3,6 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -15,6 +14,8 @@ import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemCategoryResponse; import until.the.eternity.iteminfo.interfaces.rest.dto.response.ItemInfoResponse; +import java.util.List; + @RestController @RequestMapping("/api/item-infos") @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java index 065d209e..0b1e6817 100644 --- a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemCategoryResponse.java @@ -1,12 +1,13 @@ package until.the.eternity.iteminfo.interfaces.rest.dto.response; -import java.util.Arrays; -import java.util.List; -import java.util.stream.Collectors; import lombok.Builder; import lombok.Getter; import until.the.eternity.common.enums.ItemCategory; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + @Getter @Builder public class ItemCategoryResponse { diff --git a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java index be9d890b..70897793 100644 --- a/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java +++ b/src/main/java/until/the/eternity/iteminfo/interfaces/rest/dto/response/ItemInfoResponse.java @@ -1,11 +1,12 @@ package until.the.eternity.iteminfo.interfaces.rest.dto.response; import io.swagger.v3.oas.annotations.media.Schema; -import java.util.List; -import java.util.stream.Collectors; import lombok.Builder; import until.the.eternity.iteminfo.domain.entity.ItemInfo; +import java.util.List; +import java.util.stream.Collectors; + @Builder @Schema(description = "아이템 정보 응답 DTO") public record ItemInfoResponse( diff --git a/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java b/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java index 6c03fb72..4a0f6e78 100644 --- a/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java +++ b/src/main/java/until/the/eternity/itemminprice/controller/ItemDailyMinPriceController.java @@ -2,7 +2,6 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; @@ -13,6 +12,8 @@ import until.the.eternity.itemminprice.domain.dto.response.ItemDailyMinPriceResponseDto; import until.the.eternity.itemminprice.service.ItemDailyMinPriceService; +import java.util.List; + @Slf4j @RestController @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java b/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java index e5fcf6f5..d0ef6d5d 100644 --- a/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java +++ b/src/main/java/until/the/eternity/itemminprice/domain/dto/response/ItemDailyMinPriceResponseDto.java @@ -1,6 +1,7 @@ package until.the.eternity.itemminprice.domain.dto.response; import io.swagger.v3.oas.annotations.media.Schema; + import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java b/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java index a3dec6fe..72de26b8 100644 --- a/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java +++ b/src/main/java/until/the/eternity/itemminprice/domain/entity/ItemDailyMinPrice.java @@ -2,9 +2,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.*; +import lombok.*; + import java.time.LocalDate; import java.time.LocalDateTime; -import lombok.*; @Entity @Table( diff --git a/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java b/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java index 2f54a40b..596ddc4b 100644 --- a/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java +++ b/src/main/java/until/the/eternity/itemminprice/domain/mapper/ItemDailyMinPriceMapper.java @@ -1,6 +1,5 @@ package until.the.eternity.itemminprice.domain.mapper; -import java.util.List; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingTarget; @@ -8,6 +7,8 @@ import until.the.eternity.itemminprice.domain.dto.response.ItemDailyMinPriceResponseDto; import until.the.eternity.itemminprice.domain.entity.ItemDailyMinPrice; +import java.util.List; + @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface ItemDailyMinPriceMapper { diff --git a/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java b/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java index 6c5c6aae..83095e05 100644 --- a/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java +++ b/src/main/java/until/the/eternity/itemminprice/service/ItemDailyMinPriceService.java @@ -1,7 +1,5 @@ package until.the.eternity.itemminprice.service; -import java.util.List; -import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -11,6 +9,9 @@ import until.the.eternity.itemminprice.domain.mapper.ItemDailyMinPriceMapper; import until.the.eternity.itemminprice.repository.ItemDailyMinPriceRepository; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j @Service @RequiredArgsConstructor diff --git a/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java b/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java index 9cd452d6..0b1c6881 100644 --- a/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java +++ b/src/main/java/until/the/eternity/itemoption/domain/entity/ItemOption.java @@ -1,7 +1,6 @@ package until.the.eternity.itemoption.domain.entity; import jakarta.persistence.*; -import java.util.UUID; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -9,6 +8,8 @@ import until.the.eternity.auctionhistory.domain.entity.AuctionHistory; import until.the.eternity.auctionitem.domain.entity.AuctionItem; +import java.util.UUID; + @Entity @Table(name = "auction_item_option") @Getter From 4ed05d2af3b3cce0104caf307a606f7c88613a1e Mon Sep 17 00:00:00 2001 From: Lee Sanghyun <59863112+dev-ant@users.noreply.github.com> Date: Tue, 7 Oct 2025 21:09:29 +0900 Subject: [PATCH 6/7] =?UTF-8?q?Fix:=20V6=20flyway=20script=20=EC=B4=88?= =?UTF-8?q?=EB=94=94=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=A0=81=EC=9E=AC=20?= =?UTF-8?q?INSERT=EB=AC=B8=20sub=5Fcategory=20=EC=A4=91=EB=B3=B5=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/main/resources/db/migration/V6__create_item_info.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/db/migration/V6__create_item_info.sql b/src/main/resources/db/migration/V6__create_item_info.sql index 716ac8b7..19ffaf05 100644 --- a/src/main/resources/db/migration/V6__create_item_info.sql +++ b/src/main/resources/db/migration/V6__create_item_info.sql @@ -16,4 +16,4 @@ CREATE TABLE item_info ( ) COMMENT='아이템 정보 테이블'; -- 초기 데이터 적재 쿼리 --- INSERT INTO item_info (name, top_category, sub_category) select distinct item_name, item_sub_category, item_sub_category from auction_history; \ No newline at end of file +-- INSERT INTO item_info (name, top_category, sub_category) select distinct item_name, item_top_category, item_sub_category from auction_history; \ No newline at end of file From 6c5c67afd2ab76a9477c5cea5c2de41e47c9110a Mon Sep 17 00:00:00 2001 From: Lee Sanghyun <59863112+dev-ant@users.noreply.github.com> Date: Tue, 7 Oct 2025 21:11:36 +0900 Subject: [PATCH 7/7] =?UTF-8?q?fix:=20ItemInfoJpaRepository=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20finAll=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../infrastructure/persistence/ItemInfoJpaRepository.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java index 085cd2e6..b41e6ad4 100644 --- a/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java +++ b/src/main/java/until/the/eternity/iteminfo/infrastructure/persistence/ItemInfoJpaRepository.java @@ -9,7 +9,6 @@ public interface ItemInfoJpaRepository extends JpaRepository, JpaSpecificationExecutor { - List findAll(); List findByTopCategory(String topCategory);