Merge pull request #4 from Development-team-1/order-service-jpa-design

Order service jpa design
This commit is contained in:
Sangbum Park
2022-01-26 14:53:32 +09:00
committed by GitHub
6 changed files with 155 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package com.justpickup.orderservice.domain.order.entity;
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
import com.justpickup.orderservice.domain.transaction.entity.Transaction;
import com.justpickup.orderservice.global.entity.BaseEntity;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;
@Entity
@Table(name = "orders")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Order extends BaseEntity {
@Id @GeneratedValue
@Column(name = "order_id")
private Long id;
private Long userId;
private Long userCouponId;
private Long orderPrice;
private LocalDateTime orderTime;
private Long usedPoint;
@Enumerated(EnumType.STRING)
private OrderStatus orderStatus;
@OneToOne(mappedBy = "order")
private Transaction transaction;
@OneToMany(mappedBy = "order")
private List<OrderItem> orderItems;
}

View File

@@ -0,0 +1,8 @@
package com.justpickup.orderservice.domain.order.entity;
public enum OrderStatus {
PENDING,
PLACED,
CANCELED,
FAILED
}

View File

@@ -0,0 +1,36 @@
package com.justpickup.orderservice.domain.orderItem.entity;
import com.justpickup.orderservice.domain.order.entity.Order;
import com.justpickup.orderservice.domain.orderItemOption.entity.OrderItemOption;
import com.justpickup.orderservice.global.entity.BaseEntity;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.List;
@Entity
@Table(name = "order_item")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class OrderItem extends BaseEntity {
@Id @GeneratedValue
@Column(name = "order_item_id")
private Long id;
private Long itemId;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_id")
private Order order;
@OneToMany(mappedBy = "orderItem")
private List<OrderItemOption> orderItemOptions;
private Long price;
private Long count;
}

View File

@@ -0,0 +1,27 @@
package com.justpickup.orderservice.domain.orderItemOption.entity;
import com.justpickup.orderservice.domain.orderItem.entity.OrderItem;
import com.justpickup.orderservice.global.entity.BaseEntity;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Entity
@Table(name = "order_item_option")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class OrderItemOption extends BaseEntity {
@Id @GeneratedValue
@Column(name = "order_item_option_id")
private Long id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_item_id")
private OrderItem orderItem;
private Long itemOptionId;
}

View File

@@ -0,0 +1,25 @@
package com.justpickup.orderservice.domain.transaction.entity;
import com.justpickup.orderservice.domain.order.entity.Order;
import com.justpickup.orderservice.global.entity.BaseEntity;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Entity
@Table(name = "transaction")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Transaction extends BaseEntity {
@Id @GeneratedValue
@Column(name = "transaction_id")
private Long id;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_id")
private Order order;
}

View File

@@ -0,0 +1,16 @@
package com.justpickup.orderservice.global.entity;
import javax.persistence.Entity;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;
@MappedSuperclass
public abstract class BaseEntity {
private LocalDateTime createdAt;
private Long createdBy;
private LocalDateTime lastModifiedAt;
private Long lastModifiedBy;
}