From a6ba46e0177da90a64201bbd21ca17c2f7b2ee74 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 30 Sep 2026 17:37:30 +0900 Subject: [PATCH] =?UTF-8?q?feat(gift):=20=EC=84=A0=EB=AC=BC=20=ED=8F=BC=20?= =?UTF-8?q?=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20=ED=91=9C=EC=8B=9C?= =?UTF-8?q?=EB=AA=85=EC=9D=84=20=EC=A1=B0=ED=95=A9=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/gift/application/GiftQueryService.kt | 11 ++++++++- .../gift/application/GiftQueryServiceTest.kt | 24 ++++++++++++++++--- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryService.kt index 503c4c37..f1c06608 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryService.kt @@ -107,7 +107,16 @@ class GiftQueryService( GiftSizePriceResult(it.sizeCode, it.sizeCode.displayName, it.basePriceCan, it.salePriceCan, it.isActive) }, categories = categoryRepository.findAll().filter { it.isActive }.map { - GiftCategoryResult(it.id!!, it.categoryCode, it.name, it.requiresDamageWaiver, it.isActive) + GiftCategoryResult( + categoryId = it.id!!, + classificationNumber = it.classificationNumber, + categoryCode = it.categoryCode, + name = "${it.name}/${it.representativeItem}", + receiptCode = it.receiptCode, + representativeItem = it.representativeItem, + requiresDamageWaiver = it.requiresDamageWaiver, + isActive = it.isActive + ) } ) diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryServiceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryServiceTest.kt index ce55aae2..0da24ecb 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryServiceTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/gift/application/GiftQueryServiceTest.kt @@ -43,8 +43,8 @@ class GiftQueryServiceTest @Autowired constructor( ) { @Test fun `폼 옵션은 활성 카테고리와 활성 사이즈 가격만 반환한다`() { - val activeCategory = categoryRepository.save(GiftCategory("DOLL", "인형", true, true)) - categoryRepository.save(GiftCategory("FOOD", "간식", false, false)) + val activeCategory = categoryRepository.save(giftCategory("100", "DOLL", "A", "인형", "피규어", true, true)) + categoryRepository.save(giftCategory("200", "FOOD", "B", "간식", "쿠키", false, false)) sizePriceRepository.save(GiftSizePrice(GiftSize.SMALL, 100, 80, true)) sizePriceRepository.save(GiftSizePrice(GiftSize.MEDIUM, 150, 120, false)) @@ -54,7 +54,7 @@ class GiftQueryServiceTest @Autowired constructor( assertEquals(listOf(100), result.sizes.map { it.basePriceCan }) assertEquals(listOf(80), result.sizes.map { it.salePriceCan }) assertEquals(listOf(activeCategory.id), result.categories.map { it.categoryId }) - assertEquals("인형", result.categories.single().name) + assertEquals("인형/피규어", result.categories.single().name) assertEquals(true, result.categories.single().requiresDamageWaiver) } @@ -381,6 +381,24 @@ class GiftQueryServiceTest @Autowired constructor( private fun saveMember(nickname: String) = memberRepository.save(Member(password = "password", nickname = nickname)) + private fun giftCategory( + classificationNumber: String, + categoryCode: String, + receiptCode: String, + name: String, + representativeItem: String, + requiresDamageWaiver: Boolean, + isActive: Boolean + ) = GiftCategory( + classificationNumber = classificationNumber, + categoryCode = categoryCode, + name = name, + receiptCode = receiptCode, + representativeItem = representativeItem, + requiresDamageWaiver = requiresDamageWaiver, + isActive = isActive + ) + private fun saveDelivery(gift: Gift) = deliveryRepository.save( GiftDelivery( giftId = gift.id!!,