Bug fixed and preparing for OutBox Pattern For Transaction Management.

This commit is contained in:
Ali CANLI
2022-07-14 23:49:23 +03:00
parent 22f85a86d8
commit efbeeacb39
4 changed files with 10 additions and 8 deletions

View File

@@ -13,7 +13,9 @@ import com.food.order.sysyem.valueobject.*;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import static com.food.order.system.domain.entity.Order.FAILURE_MESSAGE_DELIMITER;
@@ -30,7 +32,7 @@ public class OrderDataAccessMapper {
orderEntity.setAddress(deliveryAddressToAddressEntity(order.getDeliveryAddress()));
orderEntity.setPrice(order.getPrice().getAmount());
orderEntity.setItems(orderItemsToOrderItemsEntity(order.getItems()));
orderEntity.setFailureMessages(order.getFailureMessages() != null ?
orderEntity.setFailureMessages(Objects.nonNull(order.getFailureMessages()) ?
String.join(FAILURE_MESSAGE_DELIMITER, order.getFailureMessages()) : "");
orderEntity.getAddress().setOrder(orderEntity);
orderEntity.getItems().forEach(item -> item.setOrderEntity(orderEntity));
@@ -47,9 +49,9 @@ public class OrderDataAccessMapper {
.items(orderItemsEntityToOrderItems(orderEntity.getItems()))
.trackingId(new TrackingId(orderEntity.getTrackingId()))
.status(orderEntity.getOrderStatus())
.failureMessages(orderEntity.getFailureMessages() != null ?
List.of(orderEntity.getFailureMessages().split(FAILURE_MESSAGE_DELIMITER)) :
new ArrayList<>())
.failureMessages(Objects.isNull(orderEntity.getFailureMessages()) ? new ArrayList<>() :
new ArrayList<>(Arrays.asList(orderEntity.getFailureMessages()
.split(FAILURE_MESSAGE_DELIMITER))))
.build();
}

View File

@@ -53,7 +53,7 @@ public class Order extends AggregateRoot<OrderId> {
}
public void cancel(List<String> failureMessages){
if(Objects.equals(status, OrderStatus.CANCELLING) || Objects.equals(status, OrderStatus.PENDING))
if(!(Objects.equals(status, OrderStatus.CANCELLING) || Objects.equals(status, OrderStatus.PENDING)))
throw new OrderDomainException("Order status is not correct for cancel operation !");
status = OrderStatus.CANCELLED;
updateFailureMessages(failureMessages);

View File

@@ -35,7 +35,8 @@ public class OrderDomainServiceImpl implements OrderDomainService {
.forEach(orderItem -> restaurant.getProducts().forEach(restaurantProduct -> {
var currentProduct = orderItem.getProduct();
if(currentProduct.equals(restaurantProduct)){
currentProduct.updateWithConfirmedNameAndPrice(restaurantProduct.getName(),restaurantProduct.getPrice());
currentProduct.updateWithConfirmedNameAndPrice(restaurantProduct.getName(),
restaurantProduct.getPrice());
}
}));
}

View File

@@ -75,8 +75,7 @@ AS
p.id AS product_id,
p.name AS product_name,
p.price AS product_price,
p.available AS product_available,
r.active AS product_active
p.available AS product_active
FROM restaurant.restaurants r,
restaurant.products p,
restaurant.restaurant_products rp