Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,13 @@ public ResponseEntity<Void> removeItemFromCart(@PathVariable Long id) {
cartService.removeItemFromCart(id);
return ResponseEntity.noContent().build();
}


//userid로 장바구니 삭제
@DeleteMapping("delete/{userId}")
public ResponseEntity<Void> removeCart(@PathVariable Long userId){
cartService.removeCartByUserId(userId);
return ResponseEntity.noContent().build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@

public interface CartRepository extends JpaRepository<Cart, Long> {
Optional<List<Cart>> findByUserId(Long userId);
void deleteByUserId(Long userID);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -30,6 +31,15 @@ public ResponseEntity<OrderResponse> createOrder(
.body(orderService.order(dto));
}

@Operation(summary = "주문 정보 조회", description = "주문에 담긴 상품id 리스트를 반환합니다.")
@GetMapping("api/orders/{id}")
public ResponseEntity<List<OrderProductResponse>> getOrder(@PathVariable Long id){
return ResponseEntity.ok(orderService.getProductForOrder(id));
}




//주문 상태 취소로 변경
@Operation(summary = "주문 취소", description = "주문 취소 메서드입니다. 주문 상태를 cancle로 변경합니다.")
@PostMapping("api/orders/{id}/cancle")
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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);
}
Original file line number Diff line number Diff line change
@@ -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<OrderProduct, Long> {
import java.util.List;

public interface OrderProductRepository extends JpaRepository<OrderProduct, Long> {
List<OrderProduct> findAllByOrder(Order order);
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
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;
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;
Expand All @@ -15,6 +19,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;

Expand All @@ -27,20 +32,26 @@
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
@Slf4j
public class OrderService {

private final OrderRepository orderRepository;
private final UserRepository userRepository;
private final ProductRepository productRepository;
private final OrderProductRepository orderProductRepository;
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;

Expand Down Expand Up @@ -71,6 +82,9 @@ public OrderResponse order(OrderRequest dto){
//주문 저장
orderRepository.save(order);

//장바구니 비우기
cartService.removeCartByUserId(userId);

return orderMapper.toDto(order);

}
Expand All @@ -82,6 +96,14 @@ public void cancleOrders(Long id){
}


public List<OrderProductResponse> getProductForOrder(Long OrderId){
Order order = orderRepository.findById(OrderId).orElseThrow();
List<OrderProduct> orderProducts = orderProductRepository.findAllByOrder(order);
log.info("test {}",orderProducts);
return orderProducts.stream().map(orderProductMapper::toDto).toList();
}


//본인 주문 조회
public List<OrderResponse> findAllMyOrders(){

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.blanc.market.domain.product.entity;

public enum Category {
SUNCARE,
skincare,
cleansing,
Skincare;
makeup;

}