From 6642fc3fe5d391123bb922ff7d3ab7cb0a49ce52 Mon Sep 17 00:00:00 2001 From: 1223v <1223v@naver.com> Date: Wed, 22 Nov 2023 03:57:22 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Feat:=20=EC=A3=BC=EB=AC=B8=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=20api=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 --- .../readyvery/readyverydemo/domain/Order.java | 95 +++++++++++++++ .../readyverydemo/domain/OrderItem.java | 50 ++++++++ .../readyverydemo/domain/OrderItemOption.java | 42 +++++++ .../readyverydemo/domain/Progress.java | 18 +++ .../readyverydemo/domain/Receipt.java | 115 ++++++++++++++++++ .../domain/repository/OrderRepository.java | 8 ++ .../global/exception/ExceptionCode.java | 4 +- .../src/order/OrderController.java | 22 ++++ .../readyverydemo/src/order/OrderService.java | 8 ++ .../src/order/OrderServiceImpl.java | 32 +++++ .../src/order/dto/FoodieDto.java | 14 +++ .../readyverydemo/src/order/dto/OrderDto.java | 19 +++ .../src/order/dto/OrderMapper.java | 33 +++++ .../src/order/dto/OrderRegisterRes.java | 13 ++ 14 files changed, 472 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/Order.java create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/OrderItemOption.java create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/Progress.java create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/Receipt.java create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/dto/FoodieDto.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java create mode 100644 src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Order.java b/src/main/java/com/readyvery/readyverydemo/domain/Order.java new file mode 100644 index 0000000..fc55c2d --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/Order.java @@ -0,0 +1,95 @@ +package com.readyvery.readyverydemo.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Index; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; + +@Getter +@Entity +@Builder +@Table(name = "ORDERS", indexes = {@Index(name = "idx_order_id", columnList = "orderId", unique = true)}) +@AllArgsConstructor +@NoArgsConstructor +@Setter +@Slf4j +public class Order { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "order_idx") + private Long id; + + // 총 결제 가격 + @Column + private Long amount; + + // 결제 키 값 + @Column + private String paymentKey; + + // 주문 id + @Column + private String orderId; + + // 주문 명 + @Column + private String orderName; + + // 토스 결제 가격 + @Column + private Long totalAmount; + + // 결제 방법 + @Column + private String method; + + // 주문 번호 + @Column + private String orderNumber; + + // 주문 상태 + @Column + @Enumerated(EnumType.STRING) + private Progress progress; + + // 가게 아이템 연관 관계 + // @OneToMany(mappedBy = "order") + // @Builder.Default + // private List orderItems = new ArrayList(); + + // 가게 연관 관계 + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "store_idx") + private Store store; + + // 유저 연관 관계 + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_idx") + private UserInfo userInfo; + + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "cart_idx") + private Cart cart; + + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "coupon_idx") + private Coupon coupon; + + @OneToOne(mappedBy = "order", fetch = FetchType.LAZY) + private Receipt receipt; +} diff --git a/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java b/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java new file mode 100644 index 0000000..30af183 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java @@ -0,0 +1,50 @@ +package com.readyvery.readyverydemo.domain; + +import java.util.ArrayList; +import java.util.List; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Getter +@Entity +@Builder +@Table(name = "ORDER_ITEM") +@AllArgsConstructor +@NoArgsConstructor +@Slf4j +public class OrderItem { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "order_item_idx") + private Long id; + + @Column + private Long count; + + // @ManyToOne(fetch = FetchType.LAZY) + // @JoinColumn(name = "order_idx") + // private Order order; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "foodie_idx") + private Foodie foodie; + + @OneToMany(mappedBy = "orderItem") + @Builder.Default + private List orderItemOptions = new ArrayList(); + +} diff --git a/src/main/java/com/readyvery/readyverydemo/domain/OrderItemOption.java b/src/main/java/com/readyvery/readyverydemo/domain/OrderItemOption.java new file mode 100644 index 0000000..928ad0f --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/OrderItemOption.java @@ -0,0 +1,42 @@ +package com.readyvery.readyverydemo.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Getter +@Entity +@Builder +@Table(name = "ORDER_ITEM_OPTION") +@AllArgsConstructor +@NoArgsConstructor +@Slf4j +public class OrderItemOption { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "order_item_option_idx") + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "order_item_idx") + private OrderItem orderItem; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "foodie_option_idx") + private FoodieOption foodieOption; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "foodie_option_category_idx") + private FoodieOptionCategory foodieOptionCategory; +} diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Progress.java b/src/main/java/com/readyvery/readyverydemo/domain/Progress.java new file mode 100644 index 0000000..be32da7 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/Progress.java @@ -0,0 +1,18 @@ +package com.readyvery.readyverydemo.domain; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum Progress { + CANCEL("CANCEL", "주문 취소"), + REQUEST("REQUEST", "토스 결제 요청"), + ORDER("ORDER", "주문 접수"), + MAKE("MAKE", "음식 제조 중"), + COMPLETE("COMPLETE", "제조 완료"), + PICKUP("PICKUP", "픽업 완료"); + + private final String key; + private final String value; +} diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java b/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java new file mode 100644 index 0000000..2c1ce4a --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java @@ -0,0 +1,115 @@ +package com.readyvery.readyverydemo.domain; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.MapsId; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +@Getter +@Entity +@Builder +@Table(name = "RECEIPT") +@AllArgsConstructor +@NoArgsConstructor +@Slf4j +public class Receipt { + @Id + private Long id; + + @OneToOne(fetch = FetchType.LAZY) + @MapsId + @JoinColumn(name = "order_idx") + private Order order; + + @Column + private String type; + + @Column + private String mid; + + @Column + private String currency; + + @Column + private Long balanceAmount; + + @Column + private Long suppliedAmount; + + @Column + private String status; + + @Column + private String requestedAt; + + @Column + private String approvedAt; + + @Column + private String lastTransactionKey; + + @Column + private Long vat; + + @Column + private Long taxFreeAmount; + + @Column + private Long taxExemptionAmount; + + // @Column(columnDefinition = "json") + @Column + private String cancels; + + // @Column(columnDefinition = "json") + @Column + private String card; + + // @Column(columnDefinition = "json") + @Column + private String receipt; + + // @Column(columnDefinition = "json") + @Column + private String checkout; + + // @Column(columnDefinition = "json") + @Column + private String easyPay; + + @Column + private String country; + + // @Column(columnDefinition = "json") + @Column + private String failure; + + // @Column(columnDefinition = "json") + @Column + private String discount; + + // @Column(columnDefinition = "json") + @Column + private String virtualAccount; + + // @Column(columnDefinition = "json") + @Column + private String transfer; + + // @Column(columnDefinition = "json") + @Column + private String cashReceipt; + + // @Column(columnDefinition = "json") + @Column + private String cashReceipts; +} diff --git a/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java b/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java new file mode 100644 index 0000000..95063ed --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java @@ -0,0 +1,8 @@ +package com.readyvery.readyverydemo.domain.repository; + +import org.springframework.data.jpa.repository.JpaRepository; + +import com.readyvery.readyverydemo.domain.Order; + +public interface OrderRepository extends JpaRepository { +} diff --git a/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java b/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java index 61b9563..ac07a2c 100644 --- a/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java +++ b/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java @@ -12,7 +12,9 @@ public enum ExceptionCode { INVALID_OPTION(400, "Invalid option."), OPTION_NOT_FOUND(404, "Option does not exists."), CART_ITEM_NOT_FOUND(404, "Cart item does not exists."), - NOT_FOUND_STORE(404, "Not found store."); + NOT_FOUND_STORE(404, "Not found store."), + NOT_LOGIN_USER(401, "Not login user."), + NOT_FOUND_ORDER(404, "Not found order."); private int status; private String message; diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java new file mode 100644 index 0000000..8559710 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java @@ -0,0 +1,22 @@ +package com.readyvery.readyverydemo.src.order; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.readyvery.readyverydemo.src.order.dto.OrderRegisterRes; + +import lombok.RequiredArgsConstructor; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/v1/order") +public class OrderController { + + private final OrderService orderServiceImpl; + + @GetMapping("/") + public OrderRegisterRes getOrder() { + return orderServiceImpl.getOrder(); + } +} diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java new file mode 100644 index 0000000..7d3b814 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java @@ -0,0 +1,8 @@ +package com.readyvery.readyverydemo.src.order; + +import com.readyvery.readyverydemo.src.order.dto.OrderRegisterRes; + +public interface OrderService { + + OrderRegisterRes getOrder(); +} diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java new file mode 100644 index 0000000..3820078 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java @@ -0,0 +1,32 @@ +package com.readyvery.readyverydemo.src.order; + +import java.util.List; + +import org.springframework.stereotype.Service; + +import com.readyvery.readyverydemo.domain.Order; +import com.readyvery.readyverydemo.domain.repository.OrderRepository; +import com.readyvery.readyverydemo.global.exception.BusinessLogicException; +import com.readyvery.readyverydemo.global.exception.ExceptionCode; +import com.readyvery.readyverydemo.src.order.dto.OrderMapper; +import com.readyvery.readyverydemo.src.order.dto.OrderRegisterRes; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class OrderServiceImpl implements OrderService { + + private final OrderRepository orderRepository; + private final OrderMapper orderMapper; + + @Override + public OrderRegisterRes getOrder() { + List orders = orderRepository.findAll(); + if (orders.isEmpty()) { + throw new BusinessLogicException(ExceptionCode.NOT_FOUND_ORDER); + } + return orderMapper.toOrderRegisterRes(orders); + } + +} diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/FoodieDto.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/FoodieDto.java new file mode 100644 index 0000000..da81991 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/FoodieDto.java @@ -0,0 +1,14 @@ +package com.readyvery.readyverydemo.src.order.dto; + +import java.util.List; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class FoodieDto { + private String name; + private Long count; + private List options; +} diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java new file mode 100644 index 0000000..e867f51 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java @@ -0,0 +1,19 @@ +package com.readyvery.readyverydemo.src.order.dto; + +import java.time.LocalDateTime; +import java.util.List; + +import lombok.Builder; +import lombok.Getter; + +@Builder +@Getter +public class OrderDto { + private Long idx; + private String orderNum; + private String pickUp; + private List foodies; + private String phone; + private LocalDateTime time; + private Long price; +} diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java new file mode 100644 index 0000000..d3158ea --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java @@ -0,0 +1,33 @@ +package com.readyvery.readyverydemo.src.order.dto; + +import java.util.List; + +import org.springframework.stereotype.Component; + +import com.readyvery.readyverydemo.domain.Order; + +@Component +public class OrderMapper { + + public OrderRegisterRes orderToOrderRegisterRes(List order) { + if (order.isEmpty()) { + return OrderRegisterRes.builder() + .build(); + } + return OrderRegisterRes.builder() + .orders(order.stream().map(this::toOrderDto).toList()) + .build(); + } + + private OrderDto toOrderDto(Order order) { + return OrderDto.builder() + .idx(order.getId()) + .orderNum(order.getOrderNumber()) + .pickUp(order.getPickUp()) + .name(order.getOrderName()) + .address(order.getAddress()) + .phone(order.getPhone()) + .build(); + + } +} diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java new file mode 100644 index 0000000..d6a3708 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderRegisterRes.java @@ -0,0 +1,13 @@ +package com.readyvery.readyverydemo.src.order.dto; + +import java.util.List; + +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +public class OrderRegisterRes { + + private List orders; +} From ed2a266ea89630555b3349b528c2926a3dca0d24 Mon Sep 17 00:00:00 2001 From: 1223v <1223v@naver.com> Date: Sat, 25 Nov 2023 01:56:27 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Config:=20=EC=97=94=ED=8B=B0=ED=8B=B0=20?= =?UTF-8?q?=EB=8F=99=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../readyvery/readyverydemo/domain/Cart.java | 6 +++ .../readyverydemo/domain/CartItem.java | 5 +++ .../readyverydemo/domain/CartOption.java | 1 + .../readyverydemo/domain/Coupon.java | 7 ++-- .../readyverydemo/domain/CouponDetail.java | 16 ++++++-- .../readyverydemo/domain/CouponMenu.java | 41 ------------------- .../readyvery/readyverydemo/domain/Event.java | 2 +- .../readyverydemo/domain/Foodie.java | 9 +++- .../readyverydemo/domain/FoodieCategory.java | 2 - .../readyverydemo/domain/FoodieOption.java | 4 ++ .../domain/FoodieOptionCategory.java | 3 ++ .../readyverydemo/domain/ImgSize.java | 15 +++++++ .../readyvery/readyverydemo/domain/Order.java | 15 ++++++- .../readyverydemo/domain/OrderItem.java | 1 + .../readyverydemo/domain/Progress.java | 4 +- .../readyverydemo/domain/Receipt.java | 2 + .../readyvery/readyverydemo/domain/Store.java | 23 +++++++++-- .../readyverydemo/domain/StoreImg.java | 7 +++- .../readyverydemo/domain/TakeOut.java | 8 +++- .../readyverydemo/domain/UserInfo.java | 10 +++++ .../domain/repository/OrderRepository.java | 6 +++ .../global/exception/ExceptionCode.java | 3 +- .../src/order/OrderController.java | 13 ++++-- .../readyverydemo/src/order/OrderService.java | 3 +- .../src/order/OrderServiceImpl.java | 25 +++++++++-- .../readyverydemo/src/order/dto/OrderDto.java | 2 +- .../src/order/dto/OrderMapper.java | 21 +++++++--- src/main/resources/application.properties | 9 ++-- 28 files changed, 182 insertions(+), 81 deletions(-) delete mode 100644 src/main/java/com/readyvery/readyverydemo/domain/CouponMenu.java create mode 100644 src/main/java/com/readyvery/readyverydemo/domain/ImgSize.java diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Cart.java b/src/main/java/com/readyvery/readyverydemo/domain/Cart.java index c082a49..e1c444b 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Cart.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Cart.java @@ -19,6 +19,7 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; @Getter @@ -28,6 +29,7 @@ @AllArgsConstructor @Slf4j @Builder +@Setter public class Cart extends BaseTimeEntity { @Id @@ -54,6 +56,10 @@ public class Cart extends BaseTimeEntity { @Builder.Default private Boolean isDeleted = false; + @Builder.Default + @OneToMany(mappedBy = "cart") + private List orders = new ArrayList(); + // 장바구니 장바구니 아이템 연관관계 매핑 @Builder.Default @OneToMany(mappedBy = "cart", cascade = CascadeType.ALL) diff --git a/src/main/java/com/readyvery/readyverydemo/domain/CartItem.java b/src/main/java/com/readyvery/readyverydemo/domain/CartItem.java index d559dad..ce7de18 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/CartItem.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/CartItem.java @@ -51,6 +51,11 @@ public class CartItem extends BaseTimeEntity { @JoinColumn(name = "cart_idx") private Cart cart; + // 장바구니 아이템 삭제 여부 + @Column(columnDefinition = "BOOLEAN default true") + @Builder.Default + private Boolean isDeleted = false; + // 장바구니 아이템 - 장바구니 옵션 연관관계 매핑 @Builder.Default @OneToMany(mappedBy = "cartItem", cascade = CascadeType.ALL) diff --git a/src/main/java/com/readyvery/readyverydemo/domain/CartOption.java b/src/main/java/com/readyvery/readyverydemo/domain/CartOption.java index 9190e94..6df10e2 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/CartOption.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/CartOption.java @@ -45,3 +45,4 @@ public class CartOption extends BaseTimeEntity { private FoodieOptionCategory foodieOptionCategory; } + diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Coupon.java b/src/main/java/com/readyvery/readyverydemo/domain/Coupon.java index f2813cf..8e3da7d 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Coupon.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Coupon.java @@ -1,6 +1,5 @@ package com.readyvery.readyverydemo.domain; - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -9,6 +8,7 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; @@ -46,8 +46,7 @@ public class Coupon extends BaseTimeEntity { @JoinColumn(name = "store_idx") private Store store; - // @OneToOne(mappedBy = "coupon", fetch = LAZY) - // private Order order; + @OneToOne(mappedBy = "coupon", fetch = FetchType.LAZY) + private Order order; } - diff --git a/src/main/java/com/readyvery/readyverydemo/domain/CouponDetail.java b/src/main/java/com/readyvery/readyverydemo/domain/CouponDetail.java index 2157f16..7fad25d 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/CouponDetail.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/CouponDetail.java @@ -46,7 +46,15 @@ public class CouponDetail extends BaseTimeEntity { @Column private LocalDateTime expire; - // 발행처 레디베리 발행(0) / 사장님 발행(ceo_idx) + // 쿠폰 코드 + @Column(name = "coupon_code") + private String couponCode; + + // 발급 갯수 + @Column(name = "coupon_count") + private Long couponCount; + + // 발행처 레디베리 발행(0) / 사장님 발행(store_idx) @Column private Long publisher; @@ -54,9 +62,9 @@ public class CouponDetail extends BaseTimeEntity { @JoinColumn(name = "event_idx") private Event event; - @Builder.Default - @OneToMany(mappedBy = "couponDetail", cascade = CascadeType.ALL) - private List couponMenus = new ArrayList(); + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "foodie_idx") + private Foodie foodie; @Builder.Default @OneToMany(mappedBy = "couponDetail", cascade = CascadeType.ALL) diff --git a/src/main/java/com/readyvery/readyverydemo/domain/CouponMenu.java b/src/main/java/com/readyvery/readyverydemo/domain/CouponMenu.java deleted file mode 100644 index 7b297c4..0000000 --- a/src/main/java/com/readyvery/readyverydemo/domain/CouponMenu.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.readyvery.readyverydemo.domain; - - -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.Table; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -@Getter -@Entity -@Builder -@Table(name = "COUPONMENU") -@AllArgsConstructor -@NoArgsConstructor -@Slf4j -public class CouponMenu extends BaseTimeEntity { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "coupon_menu_idx") - private Long id; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "coupon_detail_idx") - private CouponDetail couponDetail; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "foodie_idx") - private Foodie foodie; - -} - diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Event.java b/src/main/java/com/readyvery/readyverydemo/domain/Event.java index 1cdf782..a4664fe 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Event.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Event.java @@ -1,6 +1,5 @@ package com.readyvery.readyverydemo.domain; - import java.util.ArrayList; import java.util.List; @@ -45,3 +44,4 @@ public class Event extends BaseTimeEntity { private List coupons = new ArrayList(); } + diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Foodie.java b/src/main/java/com/readyvery/readyverydemo/domain/Foodie.java index b459c47..6436b7f 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Foodie.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Foodie.java @@ -53,6 +53,11 @@ public class Foodie extends BaseTimeEntity { @Column(nullable = false, columnDefinition = "BOOLEAN default false") private boolean hit; + //메뉴 - 가게 연관관계 매핑 + // @ManyToOne(fetch = FetchType.LAZY) + // @JoinColumn(name = "store_idx") + // private Store store; + //메뉴 - 메뉴 카테고리 연관관계 매핑 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "foodie_category_idx") @@ -71,6 +76,8 @@ public class Foodie extends BaseTimeEntity { private List cartItems = new ArrayList(); @OneToMany(mappedBy = "foodie", cascade = CascadeType.ALL) - private List couponMenus = new ArrayList(); + private List couponDetails = new ArrayList(); + @OneToMany(mappedBy = "foodie", cascade = CascadeType.ALL) + private List orderItems = new ArrayList(); } diff --git a/src/main/java/com/readyvery/readyverydemo/domain/FoodieCategory.java b/src/main/java/com/readyvery/readyverydemo/domain/FoodieCategory.java index 022c6cd..9526d56 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/FoodieCategory.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/FoodieCategory.java @@ -1,6 +1,5 @@ package com.readyvery.readyverydemo.domain; - import java.util.ArrayList; import java.util.List; @@ -44,4 +43,3 @@ public class FoodieCategory { @OneToMany(mappedBy = "foodieCategory", cascade = CascadeType.ALL) private List foodies = new ArrayList<>(); } - diff --git a/src/main/java/com/readyvery/readyverydemo/domain/FoodieOption.java b/src/main/java/com/readyvery/readyverydemo/domain/FoodieOption.java index 1385f99..62ee0c4 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/FoodieOption.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/FoodieOption.java @@ -50,5 +50,9 @@ public class FoodieOption extends BaseTimeEntity { @OneToMany(mappedBy = "foodieOption", cascade = CascadeType.ALL) private List cartOptions = new ArrayList(); + // order item option 연관 관계 매핑 + @OneToMany(mappedBy = "foodieOption", cascade = CascadeType.ALL) + private List orderItemOptions = new ArrayList(); } + diff --git a/src/main/java/com/readyvery/readyverydemo/domain/FoodieOptionCategory.java b/src/main/java/com/readyvery/readyverydemo/domain/FoodieOptionCategory.java index 6d455ad..d373bf0 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/FoodieOptionCategory.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/FoodieOptionCategory.java @@ -54,4 +54,7 @@ public class FoodieOptionCategory extends BaseTimeEntity { @OneToMany(mappedBy = "foodieOptionCategory", cascade = CascadeType.ALL) private List cartOptions = new ArrayList(); + // order item option 연관 관계 매핑 + @OneToMany(mappedBy = "foodieOptionCategory", cascade = CascadeType.ALL) + private List orderItemOptions = new ArrayList(); } diff --git a/src/main/java/com/readyvery/readyverydemo/domain/ImgSize.java b/src/main/java/com/readyvery/readyverydemo/domain/ImgSize.java new file mode 100644 index 0000000..1105417 --- /dev/null +++ b/src/main/java/com/readyvery/readyverydemo/domain/ImgSize.java @@ -0,0 +1,15 @@ +package com.readyvery.readyverydemo.domain; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum ImgSize { + EVENT_BANNER(), // 이벤트 배너 + VERY_PICK_CAFE_BANNER(), // 카페 리스트 배너 + CAFE_LOGO(), // 카페 로고 + PICKUP_PROMOTION(), // 픽업 홍보 포스터 + CAFE_BANNER(), // 카페 상세 배너 + FOODY(), // 음료 사진 +} diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Order.java b/src/main/java/com/readyvery/readyverydemo/domain/Order.java index fc55c2d..c4f20df 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Order.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Order.java @@ -1,5 +1,7 @@ package com.readyvery.readyverydemo.domain; +import java.time.LocalDateTime; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; @@ -28,7 +30,7 @@ @NoArgsConstructor @Setter @Slf4j -public class Order { +public class Order extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "order_idx") @@ -67,6 +69,15 @@ public class Order { @Enumerated(EnumType.STRING) private Progress progress; + @Column + private Boolean payStatus; // 결제 성공 실패 여부 + + @Column + private LocalDateTime estimatedTime; + + @Column + private Long inOut; + // 가게 아이템 연관 관계 // @OneToMany(mappedBy = "order") // @Builder.Default @@ -82,7 +93,7 @@ public class Order { @JoinColumn(name = "user_idx") private UserInfo userInfo; - @OneToOne(fetch = FetchType.LAZY) + @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "cart_idx") private Cart cart; diff --git a/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java b/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java index 30af183..f33084e 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/OrderItem.java @@ -48,3 +48,4 @@ public class OrderItem { private List orderItemOptions = new ArrayList(); } + diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Progress.java b/src/main/java/com/readyvery/readyverydemo/domain/Progress.java index be32da7..ed00d4d 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Progress.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Progress.java @@ -11,8 +11,10 @@ public enum Progress { ORDER("ORDER", "주문 접수"), MAKE("MAKE", "음식 제조 중"), COMPLETE("COMPLETE", "제조 완료"), - PICKUP("PICKUP", "픽업 완료"); + PICKUP("PICKUP", "픽업 완료"), + FAIL("FAIL", "주문 실패"); private final String key; private final String value; } + diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java b/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java index 2c1ce4a..a666c99 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Receipt.java @@ -12,9 +12,11 @@ import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; @Getter +@Setter @Entity @Builder @Table(name = "RECEIPT") diff --git a/src/main/java/com/readyvery/readyverydemo/domain/Store.java b/src/main/java/com/readyvery/readyverydemo/domain/Store.java index bea7bb1..c178e9e 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/Store.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/Store.java @@ -59,26 +59,41 @@ public class Store extends BaseTimeEntity { @Column private String adImgUrl; + // 가게 영어 이름 + @Column + private String engName; + + // 가게 이벤트 메세지 + @Column + private String eventMessage; + //가게 등급 @Column @Enumerated(EnumType.STRING) private Grade grade; - // //가게 사장님 연관관계 매핑 + //가게 사장님 연관관계 매핑 @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ceo_idx") private CeoInfo ceoInfo; //가게 메뉴 카테고리 연관관계 매핑 @OneToMany(mappedBy = "store", cascade = CascadeType.ALL) - private List foodieCategories = new ArrayList<>(); + private List foodieCategories = new ArrayList(); + + //가게 메뉴 연관관계 매핑 + // @OneToMany(mappedBy = "store", cascade = CascadeType.ALL) + // private List foodies = new ArrayList<>(); //가게 장바구니 연관관계 매핑 @OneToMany(mappedBy = "store", cascade = CascadeType.ALL) - private List carts = new ArrayList<>(); + private List carts = new ArrayList(); + + @OneToMany(mappedBy = "store", cascade = CascadeType.ALL) + private List imgs = new ArrayList(); @OneToMany(mappedBy = "store", cascade = CascadeType.ALL) - private List imgs = new ArrayList<>(); + private List orders = new ArrayList(); public void updateStatus(boolean status) { this.status = status; diff --git a/src/main/java/com/readyvery/readyverydemo/domain/StoreImg.java b/src/main/java/com/readyvery/readyverydemo/domain/StoreImg.java index 7a8cd38..03a0da6 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/StoreImg.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/StoreImg.java @@ -1,8 +1,9 @@ package com.readyvery.readyverydemo.domain; - import jakarta.persistence.Column; import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; @@ -33,6 +34,10 @@ public class StoreImg { @JoinColumn(name = "store_idx") private Store store; + @Column private String imgUrl; + + @Enumerated(EnumType.STRING) + private ImgSize imgSize; } diff --git a/src/main/java/com/readyvery/readyverydemo/domain/TakeOut.java b/src/main/java/com/readyvery/readyverydemo/domain/TakeOut.java index 2e3c4a9..a265ea3 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/TakeOut.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/TakeOut.java @@ -5,6 +5,7 @@ import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; +import jakarta.persistence.MapsId; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; import lombok.AccessLevel; @@ -16,14 +17,17 @@ @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity -@Table(name = "TAKE_OUTS") +@Table(name = "TAKE_OUT") @AllArgsConstructor @Slf4j public class TakeOut { - //테이크 아웃 메뉴 연관관계 매핑 @Id + private Long id; + + //테이크 아웃 메뉴 연관관계 매핑 @OneToOne(fetch = FetchType.LAZY) + @MapsId @JoinColumn(name = "foodie_idx") private Foodie foodie; diff --git a/src/main/java/com/readyvery/readyverydemo/domain/UserInfo.java b/src/main/java/com/readyvery/readyverydemo/domain/UserInfo.java index 964df1d..5e37501 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/UserInfo.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/UserInfo.java @@ -94,6 +94,16 @@ public class UserInfo extends BaseTimeEntity { @OneToMany(mappedBy = "userInfo", cascade = CascadeType.ALL) private List carts = new ArrayList(); + // 유저 주문 연관관계 매핑 + @OneToMany(mappedBy = "userInfo", cascade = CascadeType.ALL) + @Builder.Default + private List orders = new ArrayList(); + + // 유저 쿠폰 연관관계 매핑 + @OneToMany(mappedBy = "userInfo", cascade = CascadeType.ALL) + @Builder.Default + private List coupons = new ArrayList(); + // 리프레시토큰 업데이트 public void updateRefresh(String updateRefreshToken) { this.refreshToken = updateRefreshToken; diff --git a/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java b/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java index 95063ed..4bc7192 100644 --- a/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java +++ b/src/main/java/com/readyvery/readyverydemo/domain/repository/OrderRepository.java @@ -1,8 +1,14 @@ package com.readyvery.readyverydemo.domain.repository; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import com.readyvery.readyverydemo.domain.Order; +import com.readyvery.readyverydemo.domain.Progress; public interface OrderRepository extends JpaRepository { + List findAllById(Long id); + + List findAllByProgressAndStoreId(Progress progress, Long storeId); } diff --git a/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java b/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java index ac07a2c..e4af861 100644 --- a/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java +++ b/src/main/java/com/readyvery/readyverydemo/global/exception/ExceptionCode.java @@ -14,7 +14,8 @@ public enum ExceptionCode { CART_ITEM_NOT_FOUND(404, "Cart item does not exists."), NOT_FOUND_STORE(404, "Not found store."), NOT_LOGIN_USER(401, "Not login user."), - NOT_FOUND_ORDER(404, "Not found order."); + NOT_FOUND_ORDER(404, "Not found order."), + NOT_PROGRESS_ORDER(400, "Not progress order."); private int status; private String message; diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java index 8559710..162959f 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderController.java @@ -1,22 +1,27 @@ package com.readyvery.readyverydemo.src.order; +import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import com.readyvery.readyverydemo.domain.Progress; +import com.readyvery.readyverydemo.security.jwt.dto.CustomUserDetails; import com.readyvery.readyverydemo.src.order.dto.OrderRegisterRes; import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor -@RequestMapping("/api/v1/order") +@RequestMapping("/api/v1") public class OrderController { private final OrderService orderServiceImpl; - @GetMapping("/") - public OrderRegisterRes getOrder() { - return orderServiceImpl.getOrder(); + @GetMapping("/order") + public OrderRegisterRes getOrder(@AuthenticationPrincipal CustomUserDetails userDetails, + @RequestParam(required = false) Progress status) { + return orderServiceImpl.getOrder(userDetails.getId(), status); } } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java index 7d3b814..5c936fa 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderService.java @@ -1,8 +1,9 @@ package com.readyvery.readyverydemo.src.order; +import com.readyvery.readyverydemo.domain.Progress; import com.readyvery.readyverydemo.src.order.dto.OrderRegisterRes; public interface OrderService { - OrderRegisterRes getOrder(); + OrderRegisterRes getOrder(Long id, Progress progress); } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java b/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java index 3820078..65eba71 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/OrderServiceImpl.java @@ -4,7 +4,10 @@ import org.springframework.stereotype.Service; +import com.readyvery.readyverydemo.domain.CeoInfo; import com.readyvery.readyverydemo.domain.Order; +import com.readyvery.readyverydemo.domain.Progress; +import com.readyvery.readyverydemo.domain.repository.CeoRepository; import com.readyvery.readyverydemo.domain.repository.OrderRepository; import com.readyvery.readyverydemo.global.exception.BusinessLogicException; import com.readyvery.readyverydemo.global.exception.ExceptionCode; @@ -12,21 +15,37 @@ import com.readyvery.readyverydemo.src.order.dto.OrderRegisterRes; import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; +@Log4j2 @Service @RequiredArgsConstructor public class OrderServiceImpl implements OrderService { private final OrderRepository orderRepository; private final OrderMapper orderMapper; + private final CeoRepository ceoRepository; @Override - public OrderRegisterRes getOrder() { - List orders = orderRepository.findAll(); + public OrderRegisterRes getOrder(Long id, Progress progress) { + CeoInfo ceoInfo = getCeoInfo(id); + + if (progress == null) { + throw new BusinessLogicException(ExceptionCode.NOT_PROGRESS_ORDER); + } + + List orders = orderRepository.findAllByProgressAndStoreId(progress, ceoInfo.getStore().getId()); + log.info("progress: {}", orders); if (orders.isEmpty()) { throw new BusinessLogicException(ExceptionCode.NOT_FOUND_ORDER); } - return orderMapper.toOrderRegisterRes(orders); + return orderMapper.orderToOrderRegisterRes(orders); + } + + private CeoInfo getCeoInfo(Long id) { + return ceoRepository.findById(id).orElseThrow( + () -> new BusinessLogicException(ExceptionCode.USER_NOT_FOUND) + ); } } diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java index e867f51..7045f99 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderDto.java @@ -11,7 +11,7 @@ public class OrderDto { private Long idx; private String orderNum; - private String pickUp; + private Long pickUp; private List foodies; private String phone; private LocalDateTime time; diff --git a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java index d3158ea..c2333bf 100644 --- a/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java +++ b/src/main/java/com/readyvery/readyverydemo/src/order/dto/OrderMapper.java @@ -4,6 +4,7 @@ import org.springframework.stereotype.Component; +import com.readyvery.readyverydemo.domain.CartItem; import com.readyvery.readyverydemo.domain.Order; @Component @@ -22,12 +23,22 @@ public OrderRegisterRes orderToOrderRegisterRes(List order) { private OrderDto toOrderDto(Order order) { return OrderDto.builder() .idx(order.getId()) - .orderNum(order.getOrderNumber()) - .pickUp(order.getPickUp()) - .name(order.getOrderName()) - .address(order.getAddress()) - .phone(order.getPhone()) + .orderNum(order.getOrderId()) + .pickUp(order.getInOut()) + .time(order.getCreatedAt()) + .phone(order.getUserInfo().getPhone()) + .price(order.getAmount()) + .foodies(order.getCart().getCartItems().stream().map(this::cartItemToFoodieDto).toList()) .build(); } + + private FoodieDto cartItemToFoodieDto(CartItem cartItem) { + return FoodieDto.builder() + .name(cartItem.getFoodie().getName()) + .count(cartItem.getCount()) + .options( + cartItem.getCartOptions().stream().map(cartOption -> cartOption.getFoodieOption().getName()).toList()) + .build(); + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a28ff5b..00ad665 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,9 @@ -spring.datasource.url=jdbc:mysql://localhost:3306/readyvery -spring.datasource.username=root -spring.datasource.password=12345678 +#spring.datasource.url=jdbc:mysql://localhost:3306/readyvery +#spring.datasource.username=root +#spring.datasource.password=12345678 +spring.datasource.url=jdbc:mysql://test.readyvery.com:33306/readyvery +spring.datasource.username=ready +spring.datasource.password=readyverytestuser23! spring.jpa.hibernate.ddl-auto=update spring.jpa.generate-ddl=true spring.jackson.serialization.fail-on-empty-beans=false