Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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.auctionitemoption.domain.entity.AuctionItemOption;

@Entity
@Table(name = "auction_history")
Expand Down Expand Up @@ -36,7 +35,7 @@ public class AuctionHistory {
private Instant dateAuctionBuy;

@OneToMany(mappedBy = "auctionHistory", cascade = CascadeType.ALL, orphanRemoval = true)
private List<ItemOption> itemOptions;
private List<AuctionItemOption> auctionItemOptions;

@Column(name = "item_sub_category", nullable = false)
private String itemSubCategory;
Expand All @@ -45,8 +44,8 @@ public class AuctionHistory {
private String itemTopCategory;

public AuctionHistory linkItemOptions() {
if (this.itemOptions != null) {
for (ItemOption o : this.itemOptions) {
if (this.auctionItemOptions != null) {
for (AuctionItemOption o : this.auctionItemOptions) {
o.setAuctionHistory(this);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
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;
import until.the.eternity.auctionhistory.interfaces.rest.dto.response.AuctionHistoryDetailResponse;
import until.the.eternity.auctionhistory.interfaces.rest.dto.response.ItemOptionResponse;
import until.the.eternity.itemoption.domain.entity.ItemOption;

import java.util.List;
import until.the.eternity.auctionitemoption.domain.entity.AuctionItemOption;

/**
* AuctionHistory Entity to internal.responseDto transfer mapper class 데이터 흐름은 external.responseDto
Expand All @@ -17,17 +16,17 @@
public interface AuctionHistoryMapper {

// Entity → DTO
@Mapping(target = "itemOptions", source = "itemOptions")
@Mapping(target = "itemOptions", source = "auctionItemOptions")
AuctionHistoryDetailResponse<ItemOptionResponse> toDto(AuctionHistory entity);

// 하위 매핑
@Mapping(target = "auctionHistory", ignore = true)
@Mapping(target = "auctionItem", ignore = true)
ItemOption toEntity(ItemOptionResponse dto);
AuctionItemOption toEntity(ItemOptionResponse dto);

ItemOptionResponse toDto(ItemOption entity);
ItemOptionResponse toDto(AuctionItemOption entity);

List<ItemOption> toEntityList(List<ItemOptionResponse> dtoList);
List<AuctionItemOption> toEntityList(List<ItemOptionResponse> dtoList);

List<ItemOptionResponse> toDtoList(List<ItemOption> entityList);
List<ItemOptionResponse> toDtoList(List<AuctionItemOption> entityList);
}
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -16,7 +15,7 @@ public interface OpenApiAuctionHistoryMapper {
source = "dateAuctionBuy",
target = "dateAuctionBuy",
qualifiedByName = "stringToInstant")
@Mapping(source = "openApiItemOptionResponses", target = "itemOptions")
@Mapping(source = "openApiAuctionItemOptionResponse", target = "auctionItemOptions")
@Mapping(
target = "itemTopCategory",
expression = "java(ItemCategory.findTopCategory(dto.itemSubCategory()))")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import until.the.eternity.itemoption.domain.dto.external.OpenApiItemOptionResponse;
import until.the.eternity.itemoption.domain.entity.ItemOption;
import until.the.eternity.auctionitemoption.domain.dto.external.OpenApiAuctionItemOptionResponse;
import until.the.eternity.auctionitemoption.domain.entity.AuctionItemOption;

@Mapper(componentModel = "spring")
public interface OpenApiItemOptionMapper {

@Mapping(target = "id", ignore = true) // PK 자동 생성
@Mapping(target = "auctionHistory", ignore = true)
@Mapping(target = "auctionItem", ignore = true)
ItemOption toEntity(OpenApiItemOptionResponse itemOption);
AuctionItemOption toEntity(OpenApiAuctionItemOptionResponse itemOption);
}
Original file line number Diff line number Diff line change
@@ -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 {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
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;
import until.the.eternity.auctionhistory.domain.repository.AuctionHistoryRepositoryPort;
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
Expand Down
Original file line number Diff line number Diff line change
@@ -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<OpenApiAuctionHistoryResponse> fetch(ItemCategory category);
}
Original file line number Diff line number Diff line change
@@ -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<AuctionHistory> filterOutExisting(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
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;
import org.springframework.data.jpa.repository.Query;
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<AuctionHistory, String>, JpaSpecificationExecutor<AuctionHistory> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 {
Expand All @@ -26,7 +25,7 @@ public Page<AuctionHistory> search(AuctionHistorySearchRequest condition, Pageab
List<AuctionHistory> content =
queryFactory
.selectFrom(ah)
.leftJoin(ah.itemOptions)
.leftJoin(ah.auctionItemOptions)
.fetchJoin()
.where(builder)
.offset(pageable.getOffset())
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.auctionitemoption.domain.dto.external.OpenApiAuctionItemOptionResponse;

public record OpenApiAuctionHistoryResponse(
@JsonProperty("item_name") String itemName,
Expand All @@ -17,4 +16,5 @@ public record OpenApiAuctionHistoryResponse(
@JsonFormat(shape = JsonFormat.Shape.STRING, timezone = "Asia/Seoul")
Instant dateAuctionBuy,
@JsonProperty("auction_buy_id") String auctionBuyId,
@JsonProperty("item_option") List<OpenApiItemOptionResponse> openApiItemOptionResponses) {}
@JsonProperty("item_option")
List<OpenApiAuctionItemOptionResponse> openApiAuctionItemOptionResponse) {}
Original file line number Diff line number Diff line change
@@ -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;

Expand Down
Original file line number Diff line number Diff line change
@@ -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.auctionitemoption.domain.entity.AuctionItemOption;

@Entity
@Table(name = "auction_item")
Expand Down Expand Up @@ -36,5 +35,5 @@ public class AuctionItem {
private LocalDateTime dateAuctionExpire;

@OneToMany(mappedBy = "auctionItem", cascade = CascadeType.ALL, orphanRemoval = true)
private List<ItemOption> itemOptions;
private List<AuctionItemOption> auctionItemOptions;
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package until.the.eternity.itemoption.domain.dto.external;
package until.the.eternity.auctionitemoption.domain.dto.external;

import com.fasterxml.jackson.annotation.JsonProperty;

public record OpenApiItemOptionResponse(
public record OpenApiAuctionItemOptionResponse(
@JsonProperty("option_type") String optionType,
@JsonProperty("option_sub_type") String optionSubType,
@JsonProperty("option_value") String optionValue,
Expand Down
Loading