From 1af1cdcdadb565105f74350a04483f0cc7af4cb1 Mon Sep 17 00:00:00 2001 From: DongWon Date: Fri, 22 Dec 2023 14:23:43 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat=20:=20=EC=A3=BC=EB=AC=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=EC=A1=B0=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/order/controller/OrderController.java | 10 ++++++++++ .../domain/order/dto/OrderProductResponse.java | 10 ++++++++++ .../domain/order/mapper/OrderProductMapper.java | 13 +++++++++++++ .../order/repository/OrderProductRepository.java | 5 ++++- .../market/domain/order/service/OrderService.java | 13 +++++++++++++ 5 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/blanc/market/domain/order/dto/OrderProductResponse.java create mode 100644 src/main/java/com/blanc/market/domain/order/mapper/OrderProductMapper.java diff --git a/src/main/java/com/blanc/market/domain/order/controller/OrderController.java b/src/main/java/com/blanc/market/domain/order/controller/OrderController.java index de3a36a..5d6b8f7 100644 --- a/src/main/java/com/blanc/market/domain/order/controller/OrderController.java +++ b/src/main/java/com/blanc/market/domain/order/controller/OrderController.java @@ -1,6 +1,7 @@ package com.blanc.market.domain.order.controller; +import com.blanc.market.domain.order.dto.OrderProductResponse; import com.blanc.market.domain.order.dto.OrderRequest; import com.blanc.market.domain.order.dto.OrderResponse; import com.blanc.market.domain.order.service.OrderService; @@ -30,6 +31,15 @@ public ResponseEntity createOrder( .body(orderService.order(dto)); } + @Operation(summary = "주문 정보 조회", description = "주문에 담긴 상품id 리스트를 반환합니다.") + @GetMapping("api/orders/{id}") + public ResponseEntity> getOrder(@PathVariable Long id){ + return ResponseEntity.ok(orderService.getProductForOrder(id)); + } + + + + //주문 상태 취소로 변경 @Operation(summary = "주문 취소", description = "주문 취소 메서드입니다. 주문 상태를 cancle로 변경합니다.") @PostMapping("api/orders/{id}/cancle") diff --git a/src/main/java/com/blanc/market/domain/order/dto/OrderProductResponse.java b/src/main/java/com/blanc/market/domain/order/dto/OrderProductResponse.java new file mode 100644 index 0000000..537bfea --- /dev/null +++ b/src/main/java/com/blanc/market/domain/order/dto/OrderProductResponse.java @@ -0,0 +1,10 @@ +package com.blanc.market.domain.order.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class OrderProductResponse { + private Long productId; +} diff --git a/src/main/java/com/blanc/market/domain/order/mapper/OrderProductMapper.java b/src/main/java/com/blanc/market/domain/order/mapper/OrderProductMapper.java new file mode 100644 index 0000000..71573e7 --- /dev/null +++ b/src/main/java/com/blanc/market/domain/order/mapper/OrderProductMapper.java @@ -0,0 +1,13 @@ +package com.blanc.market.domain.order.mapper; + +import com.blanc.market.domain.order.dto.OrderProductResponse; +import com.blanc.market.domain.order.entity.OrderProduct; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; + +@Mapper(componentModel = "spring") +public interface OrderProductMapper { + + @Mapping(source = "product.id", target = "productId") + OrderProductResponse toDto(OrderProduct entity); +} diff --git a/src/main/java/com/blanc/market/domain/order/repository/OrderProductRepository.java b/src/main/java/com/blanc/market/domain/order/repository/OrderProductRepository.java index 73b1077..0a8908e 100644 --- a/src/main/java/com/blanc/market/domain/order/repository/OrderProductRepository.java +++ b/src/main/java/com/blanc/market/domain/order/repository/OrderProductRepository.java @@ -1,9 +1,12 @@ package com.blanc.market.domain.order.repository; +import com.blanc.market.domain.order.entity.Order; import com.blanc.market.domain.order.entity.OrderProduct; import org.springframework.data.jpa.repository.JpaRepository; -public interface OrderProductRepository extends JpaRepository { +import java.util.List; +public interface OrderProductRepository extends JpaRepository { + List findAllByOrder(Order order); } diff --git a/src/main/java/com/blanc/market/domain/order/service/OrderService.java b/src/main/java/com/blanc/market/domain/order/service/OrderService.java index 3e99d15..6fc3e19 100644 --- a/src/main/java/com/blanc/market/domain/order/service/OrderService.java +++ b/src/main/java/com/blanc/market/domain/order/service/OrderService.java @@ -1,12 +1,14 @@ package com.blanc.market.domain.order.service; import com.blanc.market.domain.order.dto.OrderProductRequest; +import com.blanc.market.domain.order.dto.OrderProductResponse; import com.blanc.market.domain.order.dto.OrderRequest; import com.blanc.market.domain.order.dto.OrderResponse; import com.blanc.market.domain.order.entity.Order; import com.blanc.market.domain.order.entity.OrderProduct; import com.blanc.market.domain.order.entity.OrderStatus; import com.blanc.market.domain.order.mapper.OrderMapper; +import com.blanc.market.domain.order.mapper.OrderProductMapper; import com.blanc.market.domain.order.repository.OrderProductRepository; import com.blanc.market.domain.order.repository.OrderRepository; import com.blanc.market.domain.product.entity.Product; @@ -15,6 +17,7 @@ import com.blanc.market.domain.user.entity.User; import com.blanc.market.domain.user.repository.UserRepository; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,6 +30,7 @@ @Service @Transactional(readOnly = true) @RequiredArgsConstructor +@Slf4j public class OrderService { private final OrderRepository orderRepository; @@ -34,6 +38,7 @@ public class OrderService { private final ProductRepository productRepository; private final OrderProductRepository orderProductRepository; private final OrderMapper orderMapper; + private final OrderProductMapper orderProductMapper; //주문 @Transactional @@ -82,6 +87,14 @@ public void cancleOrders(Long id){ } + public List getProductForOrder(Long OrderId){ + Order order = orderRepository.findById(OrderId).orElseThrow(); + List orderProducts = orderProductRepository.findAllByOrder(order); + log.info("test {}",orderProducts); + return orderProducts.stream().map(orderProductMapper::toDto).toList(); + } + + //본인 주문 조회 public List findAllMyOrders(){ From b751d71127ee8ed41dc9ca270a3e886130d23a3b Mon Sep 17 00:00:00 2001 From: DongWon Date: Sat, 23 Dec 2023 20:47:15 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20cart=20userid=EB=A1=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/domain/cart/controller/CartController.java | 9 +++++++++ .../market/domain/cart/repository/CartRepository.java | 1 + .../blanc/market/domain/cart/service/CartService.java | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/src/main/java/com/blanc/market/domain/cart/controller/CartController.java b/src/main/java/com/blanc/market/domain/cart/controller/CartController.java index 448bc00..35e516b 100644 --- a/src/main/java/com/blanc/market/domain/cart/controller/CartController.java +++ b/src/main/java/com/blanc/market/domain/cart/controller/CartController.java @@ -40,4 +40,13 @@ public ResponseEntity removeItemFromCart(@PathVariable Long id) { cartService.removeItemFromCart(id); return ResponseEntity.noContent().build(); } + + + //userid로 장바구니 삭제 + @DeleteMapping("delete/{userId}") + public ResponseEntity removeCart(@PathVariable Long userId){ + cartService.removeCartByUserId(userId); + return ResponseEntity.noContent().build(); + } + } diff --git a/src/main/java/com/blanc/market/domain/cart/repository/CartRepository.java b/src/main/java/com/blanc/market/domain/cart/repository/CartRepository.java index 05ca76b..e1baaa0 100644 --- a/src/main/java/com/blanc/market/domain/cart/repository/CartRepository.java +++ b/src/main/java/com/blanc/market/domain/cart/repository/CartRepository.java @@ -8,4 +8,5 @@ public interface CartRepository extends JpaRepository { Optional> findByUserId(Long userId); + void deleteByUserId(Long userID); } diff --git a/src/main/java/com/blanc/market/domain/cart/service/CartService.java b/src/main/java/com/blanc/market/domain/cart/service/CartService.java index b73a7f6..799c1af 100644 --- a/src/main/java/com/blanc/market/domain/cart/service/CartService.java +++ b/src/main/java/com/blanc/market/domain/cart/service/CartService.java @@ -39,4 +39,9 @@ public void updateCartItemQuantity(Long cartId, int quantity) { public void removeItemFromCart(Long cartId) { cartRepository.deleteById(cartId); } + + @Transactional + public void removeCartByUserId(Long userId){ + cartRepository.deleteByUserId(userId); + } } From 8bd3f23826caf11e728d29e1b5bf2d31c5b5f33a Mon Sep 17 00:00:00 2001 From: DongWon Date: Sun, 24 Dec 2023 00:58:49 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=EC=A3=BC=EB=AC=B8=EC=8B=9C=20?= =?UTF-8?q?=EC=9E=A5=EB=B0=94=EA=B5=AC=EB=8B=88=20=EB=B9=84=EC=9A=B0?= =?UTF-8?q?=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blanc/market/domain/order/service/OrderService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/blanc/market/domain/order/service/OrderService.java b/src/main/java/com/blanc/market/domain/order/service/OrderService.java index 6fc3e19..83e18e5 100644 --- a/src/main/java/com/blanc/market/domain/order/service/OrderService.java +++ b/src/main/java/com/blanc/market/domain/order/service/OrderService.java @@ -1,5 +1,7 @@ package com.blanc.market.domain.order.service; +import com.blanc.market.domain.cart.repository.CartRepository; +import com.blanc.market.domain.cart.service.CartService; import com.blanc.market.domain.order.dto.OrderProductRequest; import com.blanc.market.domain.order.dto.OrderProductResponse; import com.blanc.market.domain.order.dto.OrderRequest; @@ -40,12 +42,16 @@ public class OrderService { private final OrderMapper orderMapper; private final OrderProductMapper orderProductMapper; + private final CartService cartService; + + //주문 @Transactional public OrderResponse order(OrderRequest dto){ //주문한 사용자 엔티티 조회 User user = userRepository.findUserById(dto.getUserId()).orElseThrow(NoSuchElementException::new); + Long userId = user.getId(); double totalPrice = 0; @@ -76,6 +82,9 @@ public OrderResponse order(OrderRequest dto){ //주문 저장 orderRepository.save(order); + //장바구니 비우기 + cartService.removeCartByUserId(userId); + return orderMapper.toDto(order); } From 536695adc99e00993699b095dde823dabe04f8d7 Mon Sep 17 00:00:00 2001 From: DongWon Date: Sun, 24 Dec 2023 01:19:12 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20product=20=EC=B9=B4=ED=85=8C?= =?UTF-8?q?=EA=B3=A0=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/blanc/market/domain/product/entity/Category.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/blanc/market/domain/product/entity/Category.java b/src/main/java/com/blanc/market/domain/product/entity/Category.java index 8d03c41..8db98a9 100644 --- a/src/main/java/com/blanc/market/domain/product/entity/Category.java +++ b/src/main/java/com/blanc/market/domain/product/entity/Category.java @@ -1,7 +1,7 @@ package com.blanc.market.domain.product.entity; public enum Category { - SUNCARE, + skincare, cleansing, Skincare; From 6ab4164ef5cc642e3adba94057bd4a9178f15207 Mon Sep 17 00:00:00 2001 From: DongWon Date: Sun, 24 Dec 2023 15:09:48 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20product=20=EC=B9=B4=ED=85=8C?= =?UTF-8?q?=EA=B3=A0=EB=A6=AC=20=EC=88=98=EC=A0=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/blanc/market/domain/product/entity/Category.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/blanc/market/domain/product/entity/Category.java b/src/main/java/com/blanc/market/domain/product/entity/Category.java index 8db98a9..cbc20cc 100644 --- a/src/main/java/com/blanc/market/domain/product/entity/Category.java +++ b/src/main/java/com/blanc/market/domain/product/entity/Category.java @@ -3,6 +3,6 @@ public enum Category { skincare, cleansing, - Skincare; + makeup; }