diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/FindReceiptController.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/FindReceiptController.java index f0d7651..7cb53fb 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/FindReceiptController.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/FindReceiptController.java @@ -3,8 +3,8 @@ import com.ClubAccount_BE.core.response.PagingResponse; import com.ClubAccount_BE.receipt.adapter.in.web.api.FindReceiptApi; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptCategoryResponse; -import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptDetailResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptExpenseResponse; +import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptItemResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptResponse; import com.ClubAccount_BE.receipt.application.port.in.FindReceiptUseCase; import jakarta.validation.constraints.Positive; @@ -40,11 +40,11 @@ public PagingResponse getReceiptList( } @GetMapping("/{link}/receipts/{receiptId}") - public ReceiptDetailResponse getReceipt( + public List getReceiptItem( @PathVariable(value = "link") UUID link, @PathVariable("receiptId") Long receiptId ) { - return findReceiptUseCase.getReceipt(link, receiptId); + return findReceiptUseCase.getReceiptItem(link, receiptId); } @GetMapping("/{link}/receipts/category") diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java index 267e058..29645e2 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/api/FindReceiptApi.java @@ -2,8 +2,8 @@ import com.ClubAccount_BE.core.response.PagingResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptCategoryResponse; -import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptDetailResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptExpenseResponse; +import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptItemResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -32,8 +32,8 @@ PagingResponse getReceiptList( @PageableDefault(page = 1, sort = "createdAt", direction = Sort.Direction.ASC) Pageable pageable ); - @Operation(summary = "영수증 상세 목록 조회", description = "파싱된 영수증 정보를 조회한다.") - ReceiptDetailResponse getReceipt( + @Operation(summary = "영수증 상세 목록 조회", description = "파싱된 영수증 상세 아이템을 조회한다.") + List getReceiptItem( @PathVariable(value = "link") UUID link, @PathVariable("receiptId") Long receiptId ); diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptDetailResponse.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptDetailResponse.java deleted file mode 100644 index 6fb6737..0000000 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptDetailResponse.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.ClubAccount_BE.receipt.adapter.in.web.dto.response; - -import com.ClubAccount_BE.receipt.domain.Receipt; -import com.ClubAccount_BE.receipt.domain.type.ReceiptCategory; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.List; -import lombok.Builder; - -@Builder -public record ReceiptDetailResponse( - Long id, - ReceiptCategory category, - String businessName, - LocalDate date, - BigDecimal amount, - String etc, - String receiptImageUrl, - List receiptItems, - boolean amountMatched -) { - - public static ReceiptDetailResponse of(Receipt receipt) { - return ReceiptDetailResponse.builder() - .id(receipt.getId()) - .category(receipt.getCategory()) - .businessName(receipt.getBusinessName()) - .date(receipt.getDate()) - .amount(receipt.getAmount()) - .etc(receipt.getEtc()) - .receiptImageUrl(receipt.getReceiptImageUrl()) - .receiptItems(ReceiptItemResponse.of(receipt.getReceiptItems())) - .amountMatched(receipt.isAmountMatched()) - .build(); - } -} diff --git a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptItemResponse.java b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptItemResponse.java index 3f4b830..f77ae5a 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptItemResponse.java +++ b/src/main/java/com/ClubAccount_BE/receipt/adapter/in/web/dto/response/ReceiptItemResponse.java @@ -1,31 +1,25 @@ package com.ClubAccount_BE.receipt.adapter.in.web.dto.response; import com.ClubAccount_BE.receipt.domain.ReceiptItem; -import java.util.List; +import java.math.BigDecimal; import lombok.Builder; @Builder public record ReceiptItemResponse( Long id, String name, - String price, - String totalPrice, - int quantity + int quantity, + BigDecimal price, + BigDecimal totalPrice ) { public static ReceiptItemResponse of(ReceiptItem receiptItem) { return ReceiptItemResponse.builder() .id(receiptItem.getId()) .name(receiptItem.getName()) - .price(receiptItem.getPrice().toString()) - .totalPrice(receiptItem.getTotalPrice().toString()) .quantity(receiptItem.getQuantity()) + .price(receiptItem.getPrice()) + .totalPrice(receiptItem.getTotalPrice()) .build(); } - - public static List of(List items) { - return items.stream() - .map(ReceiptItemResponse::of) - .toList(); - } } diff --git a/src/main/java/com/ClubAccount_BE/receipt/application/port/in/FindReceiptUseCase.java b/src/main/java/com/ClubAccount_BE/receipt/application/port/in/FindReceiptUseCase.java index 9a6f4ea..b2ddeaf 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/application/port/in/FindReceiptUseCase.java +++ b/src/main/java/com/ClubAccount_BE/receipt/application/port/in/FindReceiptUseCase.java @@ -2,8 +2,8 @@ import com.ClubAccount_BE.core.response.PagingResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptCategoryResponse; -import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptDetailResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptExpenseResponse; +import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptItemResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptResponse; import java.time.LocalDate; import java.util.List; @@ -21,7 +21,7 @@ PagingResponse getReceiptList( Pageable pageable ); - ReceiptDetailResponse getReceipt(UUID link, Long receiptId); + List getReceiptItem(UUID link, Long receiptId); List getReceiptExpenseList(UUID link, int year); } diff --git a/src/main/java/com/ClubAccount_BE/receipt/application/service/FindReceiptService.java b/src/main/java/com/ClubAccount_BE/receipt/application/service/FindReceiptService.java index 34d9e16..fd3a53f 100644 --- a/src/main/java/com/ClubAccount_BE/receipt/application/service/FindReceiptService.java +++ b/src/main/java/com/ClubAccount_BE/receipt/application/service/FindReceiptService.java @@ -5,8 +5,8 @@ import com.ClubAccount_BE.core.exception.ApiException; import com.ClubAccount_BE.core.response.PagingResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptCategoryResponse; -import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptDetailResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptExpenseResponse; +import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptItemResponse; import com.ClubAccount_BE.receipt.adapter.in.web.dto.response.ReceiptResponse; import com.ClubAccount_BE.receipt.application.port.in.FindReceiptUseCase; import com.ClubAccount_BE.receipt.application.port.out.FindReceiptPort; @@ -35,11 +35,14 @@ public class FindReceiptService implements FindReceiptUseCase { private final ReceiptEditor receiptEditor; @Override - public ReceiptDetailResponse getReceipt(UUID link, Long receiptId) { + public List getReceiptItem(UUID link, Long receiptId) { User user = findUserPort.getUserByLink(link); Receipt receipt = findReceiptPort.getReceipt(user, receiptId); - return ReceiptDetailResponse.of(receipt); + return receipt.getReceiptItems() + .stream() + .map(ReceiptItemResponse::of) + .toList(); } @Override