jingcai-php/app/Console/Commands/Pls/SyncPlsResult.php

92 lines
2.8 KiB
PHP
Executable File

<?php
namespace App\Console\Commands\Pls;
use App\Enums\BoolEnum;
use App\Jobs\RefreshOrderPlsResult;
use App\Model\Pls;
use App\Utils\Helps;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class SyncPlsResult extends Command
{
/**
* 这个就是命令名称
*/
protected $signature = 'pls:sync_pls_result';
/**
* 命令的说明描述
* @var string
*/
protected $description = '';
/**
* 创建命令的构造方法。
* @param string $words 传入的字符参数
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* 命令的具体执行触发方法
* @return mixed
*/
public function handle()
{
Log::info('SyncPlsResult 开始同步排列三的开奖结果');
// $url = 'https://trade.500.com/static/info/prizeinfo/newxml/pls/list5.json';
$url = 'https://trade.500.com/static/info/prizeinfo/newxml/pls/lastPrize.xml?t=' . time();
try {
$content = file_get_contents($url);
$data = Helps::xml2json($content);
$pls = Pls::where('issue_num', $data['PeriodicalNO'])->first();
if ($data['ZhixuanMoney'] <= 0 || $data['Zuxuan3Money'] <= 0 || $data['Zuxuan6Money'] <= 0) {
Log::error('SyncPlsResult 未获取到奖金', $data);
return;
}
if ($pls && $pls->state == BoolEnum::YES) {
return;
}
if (!$pls) {
$pls = new Pls();
}
$pls->state = BoolEnum::YES;
$pls->enable = BoolEnum::NO;
$pls->issue_num = $data['PeriodicalNO'];
$pls->result = explode(',', $data['OutBall']);
$pls->prize = $data['TotalMoney'];
$pls->zhixuan_num = $data['ZhixuanNum'];
$pls->zuxuan3_num = $data['Zuxuan3Num'];
$pls->zuxuan6_num = $data['Zuxuan6Num'];
$pls->zhixuan_prize = $data['ZhixuanMoney'];
$pls->zhixuan_total_prize = $data['ZhixuanTotalMoney'];
$pls->zuxuan3_prize = $data['Zuxuan3Money'];
$pls->zuxuan3_total_prize = $data['Zuxuan3TotalMoney'];
$pls->zuxuan6_prize = $data['Zuxuan6Money'];
$pls->zuxuan6_total_prize = $data['Zuxuan6TotalMoney'];
$pls->daxiao = $data['daxiao'];
$pls->jiou = $data['jiou'];
$pls->zhihe = $data['zhihe'];
$pls->hezhi = $data['hezhi'];
$pls->kuadu = $data['kuadu'];
if (isset($data['ResultTime'])) {
$pls->prize_time = $data['ResultTime'];
}
$pls->save();
RefreshOrderPlsResult::dispatch($pls->id);
} catch (\Exception $exception) {
Log::error('SyncPlsResult error:' . $exception->getMessage());
}
}
}