@@ -40,8 +40,8 @@ public Orders create(OrderDto orderDto) {
4040 throw new ObjectNotFoundException (Customer .class );
4141
4242 log .info ("Creating order for customer - {}" , orderDto .getCustomerId ());
43- Orders order = new Orders ();
44- Orders createdOrder = repository .save (createOrderfromDto ( order , orderDto ) );
43+ Orders order = createOrderfromDto ( new Orders (), orderDto );
44+ Orders createdOrder = repository .save (order );
4545 log .info ("Order details : order_id - {}, total_price - {}, total_quantity - {}, customer_id - {}, order_status - {}" ,order .getId (),order .getTotalPrice (),order .getTotalQuantity (),orderDto .getCustomerId (),order .getStatus ());
4646 return createdOrder ;
4747 }
@@ -52,33 +52,26 @@ public Orders createOrderfromDto(Orders order,OrderDto orderDto) {
5252 int totalPrice = 0 ;
5353 List <OrderItem > orderItems = new ArrayList <OrderItem >();
5454 Product product = new Product ();
55-
5655 int itemId , price ;
5756
57+ order = order .toBuilder ().status ((orderDto .getStatus ()!=null )?orderDto .getStatus ():OrderStatus .INITIATED )
58+ .totalQuantity (totalQuantity )
59+ .totalPrice (totalPrice )
60+ .customer (customerRepository .findById (orderDto .getCustomerId ()).get ()).build ();
61+
5862 for (OrderItemDto item : orderDto .getOrderItems ()){
5963 totalQuantity +=item .getQuantity ();
6064 itemId = item .getProductId ();
6165 product = productRepository .findById (itemId ).get ();
6266 price = product .getUnitPrice ();
6367 totalPrice +=(item .getQuantity () * price );
6468
65-
66- OrderItem orderItem = new OrderItem ();
67- orderItem .setQuantity (item .getQuantity ());
68- orderItem .setProduct (product );
69- orderItem .setOrder (order );
70- orderItems .add (orderItem );
69+ OrderItem orderItem = OrderItem .builder ().quantity (item .getQuantity ()).product (product ).order (order ).build ();
70+ orderItems .add (orderItem );
7171 }
7272
73- if (orderDto .getStatus ()== null )
74- order .setStatus (OrderStatus .INITIATED );
75- else
76- order .setStatus (orderDto .getStatus ());
77- order .setTotalQuantity (totalQuantity );
78- order .setTotalPrice (totalPrice );
7973 order .setOrderItems (orderItems );
80- order .setCustomer (customerRepository .findById (orderDto .getCustomerId ()).get ());
81-
74+
8275 return order ;
8376
8477 }
0 commit comments