|
@@ -37,41 +37,64 @@ class SyncWMSOrderTask extends Command
|
|
|
* Execute the console command.
|
|
* Execute the console command.
|
|
|
*/
|
|
*/
|
|
|
public function handle()
|
|
public function handle()
|
|
|
|
|
+ {
|
|
|
|
|
+ $this->syncCreatedOrder();
|
|
|
|
|
+ $this->syncUpdatedOrder();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public function syncCreatedOrder()
|
|
|
{
|
|
{
|
|
|
/**
|
|
/**
|
|
|
* @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
|
|
* @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
|
|
|
* @var OrderService $orderService
|
|
* @var OrderService $orderService
|
|
|
*/
|
|
*/
|
|
|
- $oracleDOCOrderHeaderService = app('OracleDOCOrderHeaderService');
|
|
|
|
|
- $orderService = app('OrderService');
|
|
|
|
|
- $this->syncCreatedOrder($orderService,$oracleDOCOrderHeaderService);
|
|
|
|
|
- $this->syncUpdateOrder($orderService,$oracleDOCOrderHeaderService);
|
|
|
|
|
|
|
+ $newest = config('sync.order_sync.cache_prefix.created_at');
|
|
|
|
|
+ $newest_list = config('sync.order_sync.cache_prefix.newest_list');
|
|
|
|
|
+ $hasKey = config('sync.order_sync.cache_prefix.newest_has');
|
|
|
|
|
+ $prefixKey = config('sync.order_sync.cache_prefix.newest');
|
|
|
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ $last_date = $orderService->getOrderSyncAt($newest,'newest'); // 获取时间点
|
|
|
|
|
|
|
|
- public function syncCreatedOrder(OrderService $orderService,OracleDOCOrderHeaderService $oracleDOCOrderHeaderService)
|
|
|
|
|
- {
|
|
|
|
|
- $key = 'order_last_created_sync_at';
|
|
|
|
|
- $last_date = $orderService->getOrderSyncAt($key);
|
|
|
|
|
- // 这段时间段内的新增
|
|
|
|
|
- $orderHeaders = $oracleDOCOrderHeaderService->getWmsOrderOnStartDateEdit($last_date); // 根据时间获取OrderHeader
|
|
|
|
|
- $last_order = $orderHeaders->first();
|
|
|
|
|
- $last_created_order = $orderHeaders->where('addTime',$last_order->addtime); // 最后时间插入的数据
|
|
|
|
|
- // 创建
|
|
|
|
|
- $orderService->syncOrder($orderHeaders);
|
|
|
|
|
- $orderService->pushOrderCreatedCache($last_created_order); //
|
|
|
|
|
|
|
+ $orderHeaders = $oracleDOCOrderHeaderService->getWmsOrderOnStartDateEdit($last_date); // WMS订单
|
|
|
|
|
+
|
|
|
|
|
+ $last_order = $orderHeaders->first(); // 时间点靠后的
|
|
|
|
|
+ $renewal_orders = $orderHeaders->where('addTime',$last_order->addtime);
|
|
|
|
|
+
|
|
|
|
|
+ $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$newest_list); // 对比缓存
|
|
|
|
|
+
|
|
|
|
|
+ if(count($orderHeaders)>0 && count($orderHeaders) >0){
|
|
|
|
|
+ $orderService->syncOrder($orderHeaders); // 同步订单
|
|
|
|
|
+ $orderService->cancelOrderCache($newest_list); // 清除缓存
|
|
|
|
|
+ $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$newest_list); // 添加缓存
|
|
|
|
|
+ $orderService->setOrderSyncAt($newest,$last_order->addTime,count($orderHeaders)>0); // 更新时间
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- public function syncUpdateOrder(OrderService $orderService,OracleDOCOrderHeaderService $oracleDOCOrderHeaderService)
|
|
|
|
|
|
|
+ public function syncUpdatedOrder()
|
|
|
{
|
|
{
|
|
|
- $key = 'order_last_updated_sync_at';
|
|
|
|
|
- $last_date = $orderService->getOrderSyncAt($key);
|
|
|
|
|
- $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnStartDate($last_date);
|
|
|
|
|
- $last_order = $orderHeaders->first();
|
|
|
|
|
- $last_updated_order = $orderHeaders->where('addTime',$last_order->addtime);
|
|
|
|
|
-
|
|
|
|
|
- // 更新
|
|
|
|
|
- $orderService->syncOrder($orderHeaders);
|
|
|
|
|
- $orderService->pushOrderUpdatedCache($last_updated_order);
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
|
|
|
|
|
+ * @var OrderService $orderService
|
|
|
|
|
+ */
|
|
|
|
|
+ $renewal = config('sync.order_sync.cache_prefix.updated_at');
|
|
|
|
|
+ $renewal_list = config('sync.order_sync.cache_prefix.renewal_list');
|
|
|
|
|
+ $hasKey = config('sync.order_sync.cache_prefix.renewal_has');
|
|
|
|
|
+ $prefixKey = config('sync.order_sync.cache_prefix.renewal');
|
|
|
|
|
+
|
|
|
|
|
+ $last_date = $orderService->getOrderSyncAt($renewal,'renewal'); // 获取时间点
|
|
|
|
|
+
|
|
|
|
|
+ $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnStartDate($last_date); // WMS订单
|
|
|
|
|
+
|
|
|
|
|
+ $renewal_order = $orderHeaders->first(); // 时间点靠后的
|
|
|
|
|
+ $renewal_orders = $orderHeaders->where('addTime',$renewal_order->addtime);
|
|
|
|
|
+
|
|
|
|
|
+ $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$renewal_list); // 对比缓存
|
|
|
|
|
+
|
|
|
|
|
+ if(count($renewal_orders)>0 && count($orderHeaders)>0){
|
|
|
|
|
+ $orderService->syncOrder($orderHeaders); // 同步订单
|
|
|
|
|
+ $orderService->cancelOrderCache($renewal_list); // 清除缓存
|
|
|
|
|
+ $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$renewal_list); // 添加缓存
|
|
|
|
|
+ $orderService->setOrderSyncAt($renewal,$renewal_order->addTime,count($orderHeaders)>0); // 更新时间
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|