Commit 64d8fe41 authored by earndt's avatar earndt

[AFP-96] 🐛 Fixes Order date changing [@earndt]

parent 24dd4773
Pipeline #1658 failed with stage
in 40 seconds
...@@ -8,30 +8,9 @@ import java.util.Objects; ...@@ -8,30 +8,9 @@ import java.util.Objects;
public class Item { public class Item {
private String itemId; private String itemId;
private String itemName;
private String itemSku;
private int itemQuantity; private int itemQuantity;
private double itemPrice; private double itemPrice;
private int itemSku;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Item)) return false;
Item item = (Item) o;
return getItemQuantity() == item.getItemQuantity() && Double.compare(item.getItemPrice(), getItemPrice()) == 0 && getItemSku() == item.getItemSku() && getItemId().equals(item.getItemId());
}
@Override
public int hashCode() {
return Objects.hash(getItemId(), getItemQuantity(), getItemPrice(), getItemSku());
}
@Override
public String toString() {
return "Item{" +
"itemId='" + itemId + '\'' +
", itemQuantity=" + itemQuantity +
", itemPrice=" + itemPrice +
", itemSku=" + itemSku +
'}';
}
} }
...@@ -10,7 +10,6 @@ import java.util.List; ...@@ -10,7 +10,6 @@ import java.util.List;
import java.util.Objects; import java.util.Objects;
@Data @Data
@Builder
@AllArgsConstructor @AllArgsConstructor
@Document(collection = "orders") @Document(collection = "orders")
public class Order { public class Order {
...@@ -18,62 +17,19 @@ public class Order { ...@@ -18,62 +17,19 @@ public class Order {
@Id @Id
private String id; private String id;
private String customerId; private String orderTrackingCode;
private String customerEmailAddress;
@Builder.Default
private String orderTrackingCode = "N/A";
private enum OrderStatus { private OrderStatus orderStatus;
RECEIVED, private long orderCreatedAt;
FULFILLED, private long orderUpdatedAt;
CANCELLED
};
@Builder.Default private String customerId;
private OrderStatus orderStatus = OrderStatus.RECEIVED; private String customerEmailAddress;
@Builder.Default
private double orderCreatedAt = System.currentTimeMillis();
@Builder.Default
private double orderUpdatedAt = System.currentTimeMillis();
private List<Item> orderItems; private List<Item> orderItems;
private CustomerAddress customerAddress; private CustomerAddress customerAddress;
public Order(){ public Order(){
orderStatus = OrderStatus.RECEIVED;
orderCreatedAt = System.currentTimeMillis();
orderUpdatedAt = System.currentTimeMillis();
orderTrackingCode = "N/A";
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Order)) return false;
Order order = (Order) o;
return Double.compare(order.getOrderCreatedAt(), getOrderCreatedAt()) == 0 && Double.compare(order.getOrderUpdatedAt(), getOrderUpdatedAt()) == 0 && getId().equals(order.getId()) && getCustomerId().equals(order.getCustomerId()) && getCustomerEmailAddress().equals(order.getCustomerEmailAddress()) && Objects.equals(getOrderTrackingCode(), order.getOrderTrackingCode()) && getOrderStatus() == order.getOrderStatus() && getOrderItems().equals(order.getOrderItems()) && getCustomerAddress().equals(order.getCustomerAddress());
} }
@Override
public int hashCode() {
return Objects.hash(getId(), getCustomerId(), getCustomerEmailAddress(), getOrderTrackingCode(), getOrderStatus(), getOrderCreatedAt(), getOrderUpdatedAt(), getOrderItems(), getCustomerAddress());
}
@Override
public String toString() {
return "Order{" +
"id='" + id + '\'' +
", customerId='" + customerId + '\'' +
", customerEmailAddress='" + customerEmailAddress + '\'' +
", orderTrackingCode='" + orderTrackingCode + '\'' +
", orderStatus=" + orderStatus +
", orderCreatedAt=" + orderCreatedAt +
", orderUpdatedAt=" + orderUpdatedAt +
", orderItems=" + orderItems +
", customerAddress=" + customerAddress +
'}';
}
} }
package com.afp.ordermanagement.model;
public enum OrderStatus {
RECEIVED,
FULFILLED,
CANCELLED
}
package com.afp.ordermanagement.service; package com.afp.ordermanagement.service;
import com.afp.ordermanagement.model.Order; import com.afp.ordermanagement.model.Order;
import com.afp.ordermanagement.model.OrderStatus;
import com.afp.ordermanagement.repository.OrderRepository; import com.afp.ordermanagement.repository.OrderRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -14,6 +15,13 @@ public class OrderService { ...@@ -14,6 +15,13 @@ public class OrderService {
OrderRepository orderRepository; OrderRepository orderRepository;
public Mono<Order> createOrder(Order newOrder){ public Mono<Order> createOrder(Order newOrder){
String defaultOrderTrackingCode = "N/A";
OrderStatus defaultOrderStatus = OrderStatus.RECEIVED;
long serviceSystemTime = System.currentTimeMillis();
newOrder.setOrderStatus(defaultOrderStatus);
newOrder.setOrderTrackingCode(defaultOrderTrackingCode);
newOrder.setOrderCreatedAt(serviceSystemTime);
newOrder.setOrderUpdatedAt(serviceSystemTime);
return orderRepository.save(newOrder); return orderRepository.save(newOrder);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment