137 lines
5.9 KiB
PHP
137 lines
5.9 KiB
PHP
<?php
|
|
|
|
namespace app\queue\command\kami91order;
|
|
|
|
|
|
use app\merchant\service\OrderService;
|
|
use app\order\service\Kami91OrderService;
|
|
use think\admin\Command;
|
|
use think\console\Input;
|
|
use think\console\Output;
|
|
use think\Collection;
|
|
|
|
/**
|
|
* 同步订单状态
|
|
* Class KamiOrderStatusSync
|
|
* @package app\data\command
|
|
*/
|
|
class KamiOrderStatusSync extends Command
|
|
{
|
|
protected function configure()
|
|
{
|
|
// $this->setName('xQueue:Book');
|
|
// $this->setDescription('导入章节内容');
|
|
$this->setName('xQueue:KamiOrderStatusSync')->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, 6]
|
|
];
|
|
$where[] = [
|
|
'product_key', 'like', '%cardbuy%'
|
|
];
|
|
list($count, $total) = [0, $kami91server->db()->where($where)->where($where1)->count()];
|
|
// print_r(1);die;
|
|
|
|
// $orderlist = $kami91server->db()->where($where)->where($where1)->order('id asc')->select()->toArray();
|
|
|
|
$kami91server->db()->where($where)->where($where1)->chunk(100, function (Collection $data) use (&$count, $total, $kami91server) {
|
|
// var_dump($orderlist);die;
|
|
foreach ($data->toArray() as $vo) {
|
|
$count++;
|
|
// $orderService = OrderService::instance();
|
|
$order = OrderService::instance()->get('', $vo['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'],
|
|
'expire_time' => $response['kami']['expired'],
|
|
];
|
|
$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'],
|
|
'expire_time' => $response['kami']['expired'],
|
|
];
|
|
}
|
|
}
|
|
$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} 个订单状态完成!");
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|