diff --git a/src/main/java/com/back/domain/dashboard/customer/service/DashboardServiceImpl.java b/src/main/java/com/back/domain/dashboard/customer/service/DashboardServiceImpl.java index 909d6f3e..935bf24a 100644 --- a/src/main/java/com/back/domain/dashboard/customer/service/DashboardServiceImpl.java +++ b/src/main/java/com/back/domain/dashboard/customer/service/DashboardServiceImpl.java @@ -373,6 +373,18 @@ private OrderResponse.Summary convertToOrderSummary(com.back.domain.order.order. */ private OrderResponse.Product convertToProductDto(com.back.domain.order.orderItem.entity.OrderItem orderItem) { com.back.domain.product.product.entity.Product product = orderItem.getProduct(); + + // 상품이 삭제되었거나 null인 경우 처리 + if (product == null) { + log.warn("OrderItem의 Product가 null입니다 - orderItemId: {}", orderItem.getId()); + return new OrderResponse.Product( + null, + "삭제된 상품", + orderItem.getQuantity(), + orderItem.getPrice().intValue(), + null + ); + } return new OrderResponse.Product( product.getId(), @@ -388,6 +400,19 @@ private OrderResponse.Product convertToProductDto(com.back.domain.order.orderIte */ private OrderResponse.OrderItem convertToOrderItemDto(com.back.domain.order.orderItem.entity.OrderItem orderItem) { com.back.domain.product.product.entity.Product product = orderItem.getProduct(); + + // 상품이 삭제되었거나 null인 경우 처리 + if (product == null) { + log.warn("OrderItem의 Product가 null입니다 - orderItemId: {}", orderItem.getId()); + return new OrderResponse.OrderItem( + orderItem.getId(), + null, + "삭제된 상품", + orderItem.getQuantity(), + orderItem.getPrice().intValue(), + null + ); + } return new OrderResponse.OrderItem( orderItem.getId(), diff --git a/src/main/java/com/back/domain/product/product/service/ProductService.java b/src/main/java/com/back/domain/product/product/service/ProductService.java index ba45567c..75a060dc 100644 --- a/src/main/java/com/back/domain/product/product/service/ProductService.java +++ b/src/main/java/com/back/domain/product/product/service/ProductService.java @@ -298,11 +298,6 @@ public ShareLinkResponse generateShareLink(UUID productUuid, String platform, Cu // 베이스 URL 생성 (프론트엔드 URL) String baseUrl = frontendUrl + "/product/" + productUuid; - // UTM 파라미터 생성 - // utm_source: 유입 경로 (instagram, youtube 등) - // utm_medium: 매체 타입 (social 고정) - // utm_campaign: 캠페인 (작가 ID 포함) - // utm_content: 추가 정보 (product_share 고정) String utmParams = String.format( "?utm_source=%s&utm_medium=social&utm_campaign=artist_%d&utm_content=product_share", normalizedPlatform, @@ -319,7 +314,7 @@ public ShareLinkResponse generateShareLink(UUID productUuid, String platform, Cu normalizedPlatform, artistId, productUuid, - product.getName() // 상품명을 설명으로 사용 + product.getName() ); }