setName('xQueue:TaobaoFailOrderSecondNotify')->setDescription('[ 淘宝直充 - 自动同步 ] 失败订单二次通知'); } /** * @param Input $input * @param Output $output * @throws \think\admin\Exception */ protected function execute(Input $input, Output $output) { ini_set('memory_limit', '1024M'); $merchants=MerchantService::instance()->db()->where(['merchant_type'=>8,'status'=>1])->select()->toArray(); if(!$merchants) $this->setQueueSuccess("未找到需要处理的天猫商家"); $merchant_num = count($merchants); $count_sum = 0; $total_sum=0; foreach($merchants as $merchant){ $OrderService = OrderService::instance(); $cur = time(); $time = 60*25; $whereRaw = $cur . '-unix_timestamp(create_at) <=' . $time; list($count, $total) = [0, $OrderService->db()->whereRaw('status in(2,3) and unix_timestamp(merchant_callback_at) - unix_timestamp(create_at) <= 3 and mid ='.$merchant['id'].' and '.$whereRaw)->whereLike('merchant_callback_msg', 'success')->count()]; $total_sum+=$total; $OrderService->db()->whereRaw('status in(2,3) and unix_timestamp(merchant_callback_at) - unix_timestamp(create_at) <= 3 and mid ='.$merchant['id'].' and '.$whereRaw)->whereLike('merchant_callback_msg', 'success')->chunk(100, function (Collection $data) use (&$count, $total,$OrderService,&$count_sum) { foreach ($data->toArray() as $vo) { $OrderService->callSend($vo, 1, false); $count++; $count_sum++; $this->setQueueProgress("订单二次回调 {$vo['order_id']} ", $count / $total * 100); } }); } $this->setQueueSuccess("共处理 {$merchant_num} 个商家,共获取到个 {$total_sum} 售后退款订单,更新了 {$count_sum} 个售后订单信息!"); } }