49 lines
1.8 KiB
Java
49 lines
1.8 KiB
Java
package org.hso.ecommerce.action.user;
|
|
|
|
import org.hso.ecommerce.api.RestServiceForDelivery;
|
|
import org.hso.ecommerce.entities.shop.CustomerOrder;
|
|
import org.hso.ecommerce.repos.shop.CustomerOrderRepository;
|
|
import org.hso.ecommerce.uimodel.DeliveryData;
|
|
import org.hso.ecommerce.uimodel.DeliveryDataEnum;
|
|
|
|
import java.sql.Timestamp;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
|
|
public class CreateDeliveryData {
|
|
|
|
public static DeliveryData getDeliveryDataFromCustomerOrder(CustomerOrder customerOrder, CustomerOrderRepository customerOrderRepository, RestServiceForDelivery restServiceForDelivery)
|
|
{
|
|
if(customerOrder.trackingId == null)
|
|
return new DeliveryData("", "", DeliveryDataEnum.NO_TRACKING_ID);
|
|
|
|
if(customerOrder.deliveredAt == null)
|
|
{
|
|
DeliveryData deliveryData = restServiceForDelivery.getDeliveryData(customerOrder.trackingId);
|
|
|
|
|
|
if(deliveryData.isDelivered())
|
|
{
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
|
|
|
|
try {
|
|
calendar.setTime(simpleDateFormat.parse(deliveryData.getEstimatedArrival()));
|
|
} catch (ParseException e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
customerOrder.deliveredAt = new Timestamp(calendar.getTimeInMillis());
|
|
customerOrderRepository.save(customerOrder);
|
|
}
|
|
|
|
return deliveryData;
|
|
}
|
|
|
|
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
|
return new DeliveryData("Lieferung erfolgreich", formatter.format(customerOrder.deliveredAt), DeliveryDataEnum.OK);
|
|
}
|
|
}
|