jpashop : order service
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.example.jpashop.domain;
|
||||
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.*;
|
||||
@@ -11,6 +13,7 @@ import java.util.List;
|
||||
@Entity
|
||||
@Table(name = "orders")
|
||||
@Getter @Setter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public class Order {
|
||||
|
||||
@Id @GeneratedValue
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
package com.example.jpashop.domain;
|
||||
|
||||
import com.example.jpashop.domain.item.Item;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
@Getter @Setter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
public class OrderItem {
|
||||
|
||||
@Id @GeneratedValue
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.example.jpashop.service;
|
||||
|
||||
import com.example.jpashop.domain.Delivery;
|
||||
import com.example.jpashop.domain.Member;
|
||||
import com.example.jpashop.domain.Order;
|
||||
import com.example.jpashop.domain.OrderItem;
|
||||
import com.example.jpashop.domain.item.Item;
|
||||
import com.example.jpashop.repository.ItemRepository;
|
||||
import com.example.jpashop.repository.MemberRepository;
|
||||
import com.example.jpashop.repository.OrderRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Transactional(readOnly = true)
|
||||
@RequiredArgsConstructor
|
||||
public class OrderService {
|
||||
|
||||
private final OrderRepository orderRepository;
|
||||
private final MemberRepository memberRepository;
|
||||
private final ItemRepository itemRepository;
|
||||
|
||||
/**
|
||||
* 주문
|
||||
*/
|
||||
@Transactional
|
||||
public Long order(Long memberId, Long itemId, int count) {
|
||||
|
||||
// 엔티티 조회
|
||||
Member member = memberRepository.findOne(memberId);
|
||||
Item item = itemRepository.findOne(itemId);
|
||||
|
||||
// 배송정보 생성성
|
||||
Delivery delivery = new Delivery();
|
||||
delivery.setAddress(member.getAddress());
|
||||
|
||||
// 주문 상품 생성
|
||||
OrderItem orderItem = OrderItem.createOrderItem(item, item.getPrice(), count);
|
||||
|
||||
// 주문 생성
|
||||
Order order = Order.createOrder(member, delivery, orderItem);
|
||||
|
||||
// 주문 저장
|
||||
orderRepository.save(order);
|
||||
|
||||
return order.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 주문 취소
|
||||
*/
|
||||
@Transactional
|
||||
public void cancelOrder(Long orderId) {
|
||||
// 주문 엔티티 조회
|
||||
Order order = orderRepository.findOne(orderId);
|
||||
// 주문 취소
|
||||
order.cancel();
|
||||
}
|
||||
|
||||
// 검색
|
||||
/* public List<Order> findOrders(OrderSearch orderSearch) {
|
||||
return orderRepository.findAll(orderSearch);
|
||||
}*/
|
||||
}
|
||||
Reference in New Issue
Block a user