54 lines
1.7 KiB
PHP
54 lines
1.7 KiB
PHP
<?php
|
|
namespace app\console\command;
|
|
|
|
use app\common\service\QueueService;
|
|
use think\console\Command;
|
|
use think\console\Input;
|
|
use think\console\Output;
|
|
use app\store\model\Account as AccountModel;
|
|
use app\store\model\Company as CompanyModel;
|
|
use app\common\service\SybOil;
|
|
|
|
class ProcessQueue extends Command
|
|
{
|
|
protected $queueService;
|
|
|
|
protected function configure()
|
|
{
|
|
$this->setName('process:queue')
|
|
->setDescription('Process messages from the Redis queue');
|
|
}
|
|
|
|
protected function execute(Input $input, Output $output)
|
|
{
|
|
$this->queueService = new QueueService();
|
|
|
|
while (true) {
|
|
$message = $this->queueService->pop('account_queue');
|
|
if ($message) {
|
|
// 处理消息
|
|
$this->processMessage($message);
|
|
} else {
|
|
// 暂停一段时间再检查队列
|
|
sleep(1);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected function processMessage($message)
|
|
{
|
|
$SybOil = new SybOil();
|
|
// 在这里处理回调数据
|
|
$SybOil->saveLogStore('account_queue队列数据处理:【'.$message.'】');
|
|
$account = AccountModel::detail($message);
|
|
$company = CompanyModel::detail($account['company_id']);
|
|
// 对接平台接口
|
|
$res = $SybOil->userOptAdd(['mobile'=>$account['mobile'],'userName'=>$account['userName'],'userIdCard'=>$account['userIdCard'],'userType'=>$account['userType']], $company);
|
|
if($res['code'] == '00' && isset($res['data']['userNo'])){
|
|
$data['userNo'] = $res['data']['userNo'];
|
|
$account->edit($data);
|
|
}else{
|
|
$SybOil->saveLogStore('平台创建用户失败【'.($res['errMessage'] ?? $res['message']).'】');
|
|
}
|
|
}
|
|
} |