Skip to content
Merged
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
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ dependencies {
// QueryDSL
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.1.0:jakarta'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'

annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor 'jakarta.annotation:jakarta.annotation-api'

// dotenv
implementation 'io.github.cdimascio:java-dotenv:+'
Expand Down Expand Up @@ -81,3 +82,4 @@ dependencies {
tasks.named('test') {
useJUnitPlatform()
}

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.sparta.spring_deep._delivery.admin.order;

import com.sparta.spring_deep._delivery.domain.order.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.orderDetails.OrderDetailsResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderDetailsResponseDto;
import com.sparta.spring_deep._delivery.domain.user.details.UserDetailsImpl;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sparta.spring_deep._delivery.admin.order;

import com.sparta.spring_deep._delivery.domain.order.Order;
import com.sparta.spring_deep._delivery.domain.order.model.Order;
import java.util.UUID;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sparta.spring_deep._delivery.admin.order;

import com.sparta.spring_deep._delivery.domain.order.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.DateTimePath;
import com.querydsl.jpa.impl.JPAQueryFactory;
import com.sparta.spring_deep._delivery.domain.order.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.QOrder;
import java.time.LocalDateTime;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.sparta.spring_deep._delivery.admin.order;

import com.sparta.spring_deep._delivery.admin.order.orderItem.OrderItemAdminRepository;
import com.sparta.spring_deep._delivery.domain.order.Order;
import com.sparta.spring_deep._delivery.domain.order.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.orderDetails.OrderDetailsResponseDto;
import com.sparta.spring_deep._delivery.domain.order.orderItem.OrderItem;
import com.sparta.spring_deep._delivery.domain.order.model.Order;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderDetailsResponseDto;
import com.sparta.spring_deep._delivery.domain.order.model.OrderItem;
import com.sparta.spring_deep._delivery.domain.user.entity.User;
import com.sparta.spring_deep._delivery.exception.ResourceNotFoundException;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.sparta.spring_deep._delivery.admin.order.orderItem;


import com.sparta.spring_deep._delivery.domain.order.orderItem.OrderItem;
import com.sparta.spring_deep._delivery.domain.order.model.OrderItem;
import java.util.List;
import java.util.UUID;
import org.springframework.data.jpa.repository.JpaRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.sparta.spring_deep._delivery.admin.review;


import com.sparta.spring_deep._delivery.domain.review.ReviewResponseDto;
import com.sparta.spring_deep._delivery.domain.review.dto.ReviewResponseDto;
import com.sparta.spring_deep._delivery.domain.user.entity.User;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sparta.spring_deep._delivery.admin.review;

import com.sparta.spring_deep._delivery.domain.review.Review;
import com.sparta.spring_deep._delivery.domain.review.model.Review;
import java.util.List;
import java.util.UUID;
import org.springframework.data.domain.Page;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.DateTimePath;
import com.querydsl.jpa.impl.JPAQueryFactory;
import com.sparta.spring_deep._delivery.domain.review.QReview;
import com.sparta.spring_deep._delivery.domain.review.model.QReview;
import java.time.LocalDateTime;
import java.util.List;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sparta.spring_deep._delivery.admin.review;

import com.sparta.spring_deep._delivery.domain.review.Review;
import com.sparta.spring_deep._delivery.domain.review.model.Review;
import java.time.LocalDateTime;
import java.util.UUID;
import lombok.Getter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.sparta.spring_deep._delivery.admin.review;

import com.sparta.spring_deep._delivery.domain.order.Order;
import com.sparta.spring_deep._delivery.domain.order.OrderRepository;
import com.sparta.spring_deep._delivery.domain.review.Review;
import com.sparta.spring_deep._delivery.domain.review.ReviewResponseDto;
import com.sparta.spring_deep._delivery.domain.order.model.Order;
import com.sparta.spring_deep._delivery.domain.order.repository.OrderRepository;
import com.sparta.spring_deep._delivery.domain.review.model.Review;
import com.sparta.spring_deep._delivery.domain.review.dto.ReviewResponseDto;
import com.sparta.spring_deep._delivery.domain.user.entity.User;
import com.sparta.spring_deep._delivery.exception.ResourceNotFoundException;
import java.util.List;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package com.sparta.spring_deep._delivery.domain.order;

import com.sparta.spring_deep._delivery.domain.order.orderDetails.OrderDetailsRequestDto;
import com.sparta.spring_deep._delivery.domain.order.orderDetails.OrderDetailsResponseDto;
package com.sparta.spring_deep._delivery.domain.order.controller;

import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.OrderSearchDto;
import com.sparta.spring_deep._delivery.domain.order.model.Order.OrderStatusEnum;
import com.sparta.spring_deep._delivery.domain.order.service.OrderService;
import com.sparta.spring_deep._delivery.domain.order.dto.request.OrderDetailsRequestDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderDetailsResponseDto;
import com.sparta.spring_deep._delivery.domain.user.details.UserDetailsImpl;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.sparta.spring_deep._delivery.domain.order.orderItem;
package com.sparta.spring_deep._delivery.domain.order.dto;

import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.dto;

import com.sparta.spring_deep._delivery.domain.order.OrderStatusEnum;
import lombok.Data;
import lombok.RequiredArgsConstructor;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.sparta.spring_deep._delivery.domain.order.orderDetails;
package com.sparta.spring_deep._delivery.domain.order.dto.request;

import com.sparta.spring_deep._delivery.domain.order.orderItem.OrderItemDto;
import com.sparta.spring_deep._delivery.domain.order.dto.OrderItemDto;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.dto.request;

import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotNull;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.sparta.spring_deep._delivery.domain.order.orderDetails;
package com.sparta.spring_deep._delivery.domain.order.dto.response;

import com.sparta.spring_deep._delivery.domain.order.Order;
import com.sparta.spring_deep._delivery.domain.order.model.Order;
import com.sparta.spring_deep._delivery.domain.order.OrderStatusEnum;
import com.sparta.spring_deep._delivery.domain.order.orderItem.OrderItem;
import com.sparta.spring_deep._delivery.domain.order.model.OrderItem;
import java.math.BigDecimal;
import java.util.List;
import lombok.AllArgsConstructor;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.dto.response;

import com.sparta.spring_deep._delivery.domain.order.OrderStatusEnum;
import com.sparta.spring_deep._delivery.domain.order.model.Order;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.model;

import com.sparta.spring_deep._delivery.common.BaseEntity;
import com.sparta.spring_deep._delivery.domain.address.entity.Address;
import com.sparta.spring_deep._delivery.domain.restaurant.Restaurant;
import com.sparta.spring_deep._delivery.domain.user.entity.User;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
Expand All @@ -14,11 +15,13 @@
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import lombok.Builder;
import lombok.Getter;
Expand All @@ -36,6 +39,9 @@ public class Order extends BaseEntity {
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;

@OneToMany(mappedBy = "order", cascade = CascadeType.PERSIST)
private List<OrderItem> orderItems = new ArrayList<>();

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customer_id", nullable = false)
private User customer;
Expand All @@ -55,32 +61,44 @@ public class Order extends BaseEntity {

@Column(name = "total_price", nullable = false)
@Digits(integer = 10, fraction = 2)
private BigDecimal totalPrice;
private BigDecimal totalPrice = BigDecimal.ZERO;

@Column(length = 50)
@Size(max = 50)
private String request;

@Builder
public Order(User customer, Restaurant restaurant, Address address,
@NotNull @Digits(integer = 10, fraction = 2) BigDecimal totalPrice,
@Size(max = 50) String request) {
super(customer.getUsername());
this.customer = customer;
this.restaurant = restaurant;
this.address = address;
this.totalPrice = totalPrice;
this.request = request;
}

public void addOrderItem(OrderItem orderItem) {
orderItems.add(orderItem);
orderItem.setOrder(this);
}

public void updateTotalPrice(BigDecimal totalPrice) {
this.totalPrice = totalPrice;
public void updateTotalPrice() {
this.totalPrice = orderItems.stream()
.map(item -> item.getPrice().multiply(BigDecimal.valueOf(item.getQuantity())))
.reduce(BigDecimal.ZERO, BigDecimal::add);
}

public void updateOrderStatus(User user, OrderStatusEnum status) {
super.update(user.getUsername()); // user -> username으로 변경 예정 (*baseEntity)
this.status = status;
}

}
public enum OrderStatusEnum {
PENDING,
CONFIRMED,
DELIVERED,
FAILED,
CANCELLED
}

}
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package com.sparta.spring_deep._delivery.domain.order.orderItem;
package com.sparta.spring_deep._delivery.domain.order.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sparta.spring_deep._delivery.common.BaseEntity;
import com.sparta.spring_deep._delivery.domain.menu.Menu;
import com.sparta.spring_deep._delivery.domain.order.Order;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
Expand Down Expand Up @@ -35,7 +34,7 @@ public class OrderItem extends BaseEntity {

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "order_id", nullable = false)
@JsonIgnore // OrderItem을 응답할 때 order 정보 제외
@JsonIgnore
private Order order;

@ManyToOne(fetch = FetchType.LAZY)
Expand All @@ -52,13 +51,15 @@ public class OrderItem extends BaseEntity {


@Builder
public OrderItem(Order order, Menu menu, int quantity,
@NotNull @Digits(integer = 10, fraction = 2) BigDecimal price) {
super(order.getCustomer().getUsername());
this.order = order;
public OrderItem( Menu menu,
@NotNull @Digits(integer = 10, fraction = 2) BigDecimal price,
int quantity) {

this.menu = menu;
this.quantity = quantity;
this.price = price;
}


}

Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.sparta.spring_deep._delivery.domain.order.orderItem;
package com.sparta.spring_deep._delivery.domain.order.repository;


import com.sparta.spring_deep._delivery.domain.order.model.OrderItem;
import java.util.List;
import java.util.UUID;
import org.springframework.data.jpa.repository.JpaRepository;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.repository;


import com.sparta.spring_deep._delivery.domain.order.model.Order;
import com.sparta.spring_deep._delivery.domain.order.model.Order.OrderStatusEnum;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
Expand All @@ -13,12 +15,6 @@ public interface OrderRepository extends JpaRepository<Order, UUID>, OrderReposi

Optional<List<Order>> findAllByRestaurantId(UUID restaurantId);

// Page<Order> findByCustomerUsernameAndUpdatedAtAfterAndStatusIn(String customerId,
// String restaurantName, String menuName, String status,
// Pageable pageable);

List<Order> findAllByRestaurantIdAndIsDeletedFalse(UUID restaurantId);

Optional<Order> findByIdAndIsDeletedFalse(UUID orderId);

Page<Order> findByCustomerUsernameAndIsDeletedFalseAndUpdatedAtAfterAndStatusIn(String username,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.repository;

import com.sparta.spring_deep._delivery.domain.order.dto.OrderSearchDto;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package com.sparta.spring_deep._delivery.domain.order;
package com.sparta.spring_deep._delivery.domain.order.repository;

import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.types.Projections;
import com.querydsl.jpa.impl.JPAQueryFactory;
import com.sparta.spring_deep._delivery.domain.order.dto.response.OrderResponseDto;
import com.sparta.spring_deep._delivery.domain.order.dto.OrderSearchDto;
import com.sparta.spring_deep._delivery.domain.order.QOrder;
import com.sparta.spring_deep._delivery.domain.order.orderItem.QOrderItem;
import java.util.List;
import lombok.RequiredArgsConstructor;
Expand Down
Loading
Loading