92 lines
2.4 KiB
PHP
Executable File
92 lines
2.4 KiB
PHP
Executable File
<?php
|
|
|
|
namespace App\Console\Commands\Pls;
|
|
|
|
use App\Enums\BoolEnum;
|
|
use App\Model\Pls;
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Support\Facades\Log;
|
|
use QL\QueryList;
|
|
|
|
class SyncPlsIssue extends Command
|
|
{
|
|
/**
|
|
* 这个就是命令名称
|
|
*/
|
|
protected $signature = 'pls:sync_pls_issue';
|
|
|
|
/**
|
|
* 命令的说明描述
|
|
* @var string
|
|
*/
|
|
protected $description = '';
|
|
|
|
/**
|
|
* 创建命令的构造方法。
|
|
* @param string $words 传入的字符参数
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
}
|
|
|
|
/**
|
|
* 命令的具体执行触发方法
|
|
* @return mixed
|
|
*/
|
|
public function handle()
|
|
{
|
|
$cdate = date('Y-m-d H:i:s');
|
|
$pls = Pls::where('close_time', '>', $cdate)->where('enable', BoolEnum::YES)->first();
|
|
if ($pls) {
|
|
Log::info('SyncPlsIssue 已存在在售期号:'.$pls->issue_num);
|
|
return;
|
|
}
|
|
|
|
Log::info('SyncPlsIssue 开始同步排列三的开售期号');
|
|
$url = 'https://trade.500.com/pls/';
|
|
$con = file_get_contents($url);
|
|
$query = QueryList::setHtml($con);
|
|
$issueString = $query->find('.logo-text > .f14')->text();
|
|
$closeString = $query->find('.logo-info')->text();
|
|
|
|
preg_match('/\d+/', $issueString, $issueMat);
|
|
preg_match('/(\d{2}-\d{2}\s\d{2}:\d{2})/', $closeString, $closeMat);
|
|
|
|
$logData = [
|
|
'$issueString' => $issueString,
|
|
'$closeString' => $closeString,
|
|
'$issueMat' => $issueMat,
|
|
'$closeMat' => $closeMat,
|
|
];
|
|
Log::info('SyncPlsIssue 数据', $logData);
|
|
|
|
$issue = $issueMat[0];
|
|
$closeTime = $closeMat[0];
|
|
|
|
if (!$issue) {
|
|
Log::error('SyncPlsIssue 获取排列三当前期号失败');
|
|
return;
|
|
}
|
|
|
|
$pls = Pls::where('issue_num', $issue)->first();
|
|
if ($pls) {
|
|
return;
|
|
}
|
|
|
|
Pls::where('enable', BoolEnum::YES)
|
|
->where('state', BoolEnum::NO)
|
|
->update([
|
|
'enable' => BoolEnum::NO
|
|
]);
|
|
|
|
$pls = new Pls();
|
|
$pls->enable = BoolEnum::YES;
|
|
$pls->issue_num = $issue;
|
|
$pls->close_time = date('Y') . '-' . $closeTime;
|
|
$pls->prize_time = date('Y-m-d H:i:s', strtotime($pls->close_time) + 25 * 60);
|
|
$pls->save();
|
|
}
|
|
}
|