package dist.service; import api.v1.OrderSearch; import models.OrderModel; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import play.api.libs.iteratee.Enumeratee; import service.OrderService; import service.PoseidonPropertyService; import service.PoseidonService; import java.util.List; import java.util.stream.Collectors; public class DistService extends PoseidonService { private final static OrderService orderService = new OrderService("akka"); private final static Logger logger = LoggerFactory.getLogger(DistService.class); public DistService(String user) { super(user); } public DistSyncSummary syncDistdata() { logger.info("Starter dist.service.DistService.syncDistdata"); DistSyncer syncer = new DistSyncer(); DistSyncSummary summary = new DistSyncSummary(); // delete orders List<OrderModel> inactiveOrders = orderService.getInactiveOrdersForDistdb(); if ( inactiveOrders != null && inactiveOrders.size() > 0) { for (OrderModel order : inactiveOrders) { syncer.deleteOrder(order); } summary.deletedOrders = inactiveOrders.size(); } // Sync orders List<OrderModel> orders = orderService.getActiveOrdersForDistdb(); if (orders != null && orders.size() > 0) { for (OrderModel order : orders) { syncer.syncOrder(order); } summary.syncedOrders = orders.size(); } logger.info("dist.service.DistService.syncDistdata er ferdig: {}", summary); return summary; } public void syncOrderImmediately(OrderModel orderModel) { DistSyncer syncer = new DistSyncer(); DateTime now = PoseidonService.getNow(); DateTime today = PoseidonService.getToday(); DateTime tomorrow = today.plusDays(1); DateTime start1 = new DateTime(orderModel.start_date1, PoseidonService.getTimeZone()).withTimeAtStartOfDay(); if (start1.isEqual(today)) { syncer.syncOrder(orderModel); } else { String startHourProp = PoseidonPropertyService.getProperty("kundedbsync.start_hour"); int startHour = Integer.valueOf(startHourProp); if (start1.isEqual(tomorrow) && now.getHourOfDay() >= startHour) { syncer.syncOrder(orderModel); } } } }