REAPI/app/queue/command/kami91order/KamiOrderAssociation.php

91 lines
3.1 KiB
PHP
Raw Normal View History

2024-09-29 15:43:18 +08:00
<?php
namespace app\queue\command\kami91order;
use app\gateway\service\RedisService;
2024-09-29 15:43:18 +08:00
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 Book
* @package app\data\command
*/
class KamiOrderAssociation extends Command
{
protected function configure()
{
// $this->setName('xQueue:Book');
// $this->setDescription('导入章节内容');
$this->setName('xQueue:KamiOrderAssociation')->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();
$where = [
2024-09-29 15:43:18 +08:00
'status' => '1' ,
];
// $where[] = [
// 'product_key','like','%cardbuy%'
// ];
#优化掉无用的like此处全部为需要处理的卡密订单
list($count, $total) = [0, $kami91server->db()->where($where)->count()];
2024-09-29 15:43:18 +08:00
# 阿奇索卡密订单关联
$kami91server->db()->where($where)->chunk(100, function (Collection $data) use (&$count, $total) {
2024-09-29 15:43:18 +08:00
// var_dump($orderlist);die;
foreach ($data->toArray() as $vo) {
$merchant_order_id = $vo['merchant_order_id'];
2024-09-29 15:43:18 +08:00
// $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']);
2024-09-29 15:43:18 +08:00
if ($order) {
$count++;
$upData = array();
$upData['order_id'] = $order['order_id'];
$upData['status'] = 4;
if($vo['pid'] == '999999'){
#此为默认卡密订单无用,需要更新产品信息
$upData['product_key'] = $order['product_key'];
$upData['pid'] = $order['pid'];
}
2024-09-29 15:43:18 +08:00
Kami91OrderService::instance()->db()->where(array('merchant_order_id' => $vo['merchant_order_id']))->update($upData);
try{
$redis = RedisService::getInstance();
$redis_key = 'Kami_wait_'.$order['order_id'];
$getRedisData = $redis->get($redis_key);
if($getRedisData){
$redis->delete($redis_key);
$redis->push('submit', $getRedisData);
}
}catch (\Exception $e){
}
2024-09-29 15:43:18 +08:00
$this->setQueueProgress("同步关联订单 {$vo['order_id']} ", $count / $total * 100);
}
}
});
$this->setQueueSuccess("同步关联 {$count} 个订单完成!");
}
}