setName('xQueue:Book'); // $this->setDescription('导入章节内容'); $this->setName('xQueue:KamiOrderStatusIncorrectSync')->setDescription('[ 卡密列表 - 自动同步 ] 状态不正确同步'); } /** * @param Input $input * @param Output $output * @throws \think\admin\Exception */ protected function execute(Input $input, Output $output) { ini_set('memory_limit', '1024M'); $kami91server = Kami91OrderService::instance(); $where1[] = [ 'status' ,'in', [4, 5] ]; // $where[] = [ // 'product_key', 'like', '%cardbuy%' // ]; list($count, $total) = [0, $kami91server->db()->where($where1)->count()]; // print_r(1);die; // $orderlist = $kami91server->db()->where($where)->where($where1)->order('id asc')->select()->toArray(); $kami91server->db()->where($where1)->chunk(100, function (Collection $data) use (&$count, $total, $kami91server) { // var_dump($orderlist);die; foreach ($data->toArray() as $vo) { $count++; // $orderService = OrderService::instance(); $merchant_order_id = $vo['merchant_order_id']; // $orderService = OrderService::instance(); if(str_ends_with($merchant_order_id, '-00')){ $merchant_order_id = substr($merchant_order_id, 0, -3); } $order = OrderService::instance()->get('',$merchant_order_id, $vo['mid']); if ($order) { if ($vo['status'] == '4') { $upData = []; if ($order['status'] == '3') { if (empty($order['merchant_callback_msg']) || $order['merchant_callback_msg'] == '{}') { $upData['order_id'] = $order['order_id']; $upData['status'] = '3'; $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } elseif (isset($order['response'])) { $response = json_decode($order['response'], true); if (isset($response['kami'])) { $upData = [ 'cardno' => $response['kami']['cardno'], 'cardpwd' => $response['kami']['cardpwd']??null, 'expire_time' => $response['kami']['expired']??null, ]; $upData['order_id'] = $order['order_id']; $upData['status'] = '7'; $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } else { $upData['order_id'] = $order['order_id']; $upData['status'] = '3'; $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } } else { $upData['order_id'] = $order['order_id']; $upData['status'] = '3'; $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } } elseif ($order['status'] == '2') { if (isset($order['response'])) { $response = json_decode($order['response'], true); if (isset($response['kami'])) { $upData = [ 'cardno' => $response['kami']['cardno'], 'cardpwd' => $response['kami']['cardpwd']??null, 'expire_time' => $response['kami']['expired']??null, ]; } } $upData['order_id'] = $order['order_id']; $upData['status'] = '2'; $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } } else { $upData = []; if ($order['status'] == '3') { $kami91 = new \app\openapi\controller\Kami91($this->app); $check = $kami91->queryFaka($vo['merchant_order_id']); $upData['order_id'] = $order['order_id']; if ($check == 'ok') { $upData['status'] = '5'; // } else { $upData['status'] = '7'; } $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } elseif ($order['status'] == '2') { $upData['order_id'] = $order['order_id']; $upData['status'] = '2'; $kami91server->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData); } } $this->setQueueProgress("同步订单状态 {$vo['order_id']} ", $count / $total * 100); } } }); $this->setQueueSuccess("同步 {$count} 个订单状态完成!"); } }