diff --git a/src/main/java/savepay/savepay/domain/discount/controller/DiscountController.java b/src/main/java/savepay/savepay/domain/discount/controller/DiscountController.java index 5cf65da..29f2d85 100644 --- a/src/main/java/savepay/savepay/domain/discount/controller/DiscountController.java +++ b/src/main/java/savepay/savepay/domain/discount/controller/DiscountController.java @@ -30,7 +30,7 @@ public ApiResponse createDiscount(@RequestBody DiscountRequestDto.toDisc } @PostMapping("/discounts") - @Operation(summary = "유저 등록수단별 혜택 반환 API", description = "카드/페이/통신사별 혜택 리스트를 모두 반환하는 메서드") + @Operation(summary = "유저 검색어에 따른 등록수단별 혜택 반환 API", description = "카드/페이/통신사별 혜택 리스트를 모두 반환하는 메서드") public ApiResponse> getAllDiscounts(@UserInjection User user, @RequestBody DiscountRequestDto.toBrandNameDto request) { return ApiResponse.onSuccess(discountQueryService.getAllDiscounts(user, request)); diff --git a/src/main/java/savepay/savepay/domain/discount/converter/DiscountConverter.java b/src/main/java/savepay/savepay/domain/discount/converter/DiscountConverter.java index 96e6533..0b632a2 100644 --- a/src/main/java/savepay/savepay/domain/discount/converter/DiscountConverter.java +++ b/src/main/java/savepay/savepay/domain/discount/converter/DiscountConverter.java @@ -1,3 +1,4 @@ + package savepay.savepay.domain.discount.converter; import savepay.savepay.domain.discount.dto.DiscountResponseDto; @@ -16,6 +17,7 @@ public static DiscountResponseDto.DiscountInfo toDiscountInfoDto(Discount discou .pointInfo(discount.getPointInfo()) .details(discount.getDetails()) .createdAt(discount.getCreatedAt()) + .source(DiscountInfoHelper.resolveSource(discount)) .build(); } } diff --git a/src/main/java/savepay/savepay/domain/discount/converter/DiscountInfoHelper.java b/src/main/java/savepay/savepay/domain/discount/converter/DiscountInfoHelper.java new file mode 100644 index 0000000..3782496 --- /dev/null +++ b/src/main/java/savepay/savepay/domain/discount/converter/DiscountInfoHelper.java @@ -0,0 +1,22 @@ +package savepay.savepay.domain.discount.converter; + +import org.hibernate.Hibernate; +import savepay.savepay.domain.discount.entity.Discount; +import savepay.savepay.domain.payment.entity.Payment; +import savepay.savepay.domain.payment.entity.card.entity.Card; +import savepay.savepay.domain.payment.entity.pay.entity.Pay; + +public class DiscountInfoHelper { + + public static String resolveSource(Discount discount) { + if (discount.getTelecom() != null) return "TELECOM"; + Payment payment = discount.getPayment(); + if (payment != null) { + Class actualClass = Hibernate.getClass(payment); + + if (Card.class.isAssignableFrom(actualClass)) return "CARD"; + if (Pay.class.isAssignableFrom(actualClass)) return "PAY"; + } + return "UNKNOWN"; + } +} diff --git a/src/main/java/savepay/savepay/domain/discount/dto/DiscountResponseDto.java b/src/main/java/savepay/savepay/domain/discount/dto/DiscountResponseDto.java index ef7561b..a71239e 100644 --- a/src/main/java/savepay/savepay/domain/discount/dto/DiscountResponseDto.java +++ b/src/main/java/savepay/savepay/domain/discount/dto/DiscountResponseDto.java @@ -19,6 +19,6 @@ public static class DiscountInfo { String details; //혜택방법 상세 String pointInfo; // 포인트 정보 LocalDateTime createdAt; - + String source; } }