| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace App\Console\Commands;
- use App\Services\OracleDOCOrderHeaderService;
- use App\Services\OrderService;
- use Carbon\Carbon;
- use Illuminate\Console\Command;
- class SyncWMSOrderTask extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'sync:order';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = 'Command description';
- /**
- * Create a new command instance.
- *
- * @return void
- */
- public function __construct()
- {
- parent::__construct();
- }
- /**
- * Execute the console command.
- */
- public function handle()
- {
- $is_enabled= config('sync.order_sync.cache_prefix.enabled');
- sleep(rand(2,3));
- if($is_enabled=='false')return;
- $this->syncCreatedOrder();
- $this->syncUpdatedOrder();
- }
- public function syncCreatedOrder()
- {
- /**
- * @var OracleDOCOrderHeaderService $oracleDOCOrderHeaderService
- * @var OrderService $orderService
- */
- $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');
- ini_set('memory_limit', '512M');
- $orderService = app('OrderService');
- $oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
- $last_date = $orderService->getOrderSyncAt($newest,'newest'); // 获取创建时间点
- $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnStartDate($last_date); // WMS订单
- if($orderHeaders->count()==0)return;
- $last_order = $orderHeaders->first(); // 时间点靠后的
- $newest_orders = $orderHeaders->where('addtime',$last_order->addtime);
- $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$newest_list); // 对比缓存
- if(count($newest_orders)>0 && count($orderHeaders) >0){
- $orderService->syncOrder($orderHeaders); // 同步订单
- $orderService->cancelOrderCache($newest_list,$prefixKey); // 清除缓存
- $orderService->pushOrderCache($newest_orders,$prefixKey,$hasKey,$newest_list); // 添加缓存
- $orderService->setOrderSyncAt($newest,$last_order->addtime,count($orderHeaders)>0); // 更新时间
- }
- unset($orderHeaders,$newest_orders,$last_order);
- }
- public function syncUpdatedOrder()
- {
- /**
- * @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');
- ini_set('memory_limit', '512M');
- $orderService = app('OrderService');
- $oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
- $last_date = $orderService->getOrderSyncAt($renewal,'renewal'); // 获取更新时间点
- $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnEditDate($last_date); // WMS订单
- if($orderHeaders->count()==0)return;
- $renewal_order = $orderHeaders->first(); // 时间点靠后的
- $renewal_orders = $orderHeaders->where('edittime',$renewal_order->edittime);
- $orderHeaders = $orderService->filterOrderByCache($orderHeaders,$renewal_list); // 对比缓存
- if(count($renewal_orders)>0 && count($orderHeaders)>0){
- $orderService->syncOrder($orderHeaders); // 同步订单
- $orderService->cancelOrderCache($renewal_list,$prefixKey); // 清除缓存
- $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$renewal_list); // 添加缓存
- $orderService->setOrderSyncAt($renewal,$renewal_order->edittime,count($orderHeaders)>0); // 更新时间
- }
- unset($orderHeaders,$renewal_orders,$renewal_order);
- }
- }
|