Commit 0ef821ef authored by shajiaiming's avatar shajiaiming

fix

parent 3db8d0cd
......@@ -17,46 +17,46 @@ class GameBetController extends Controller
public function actionGameStatus()
{
$nodes = \Yii::$app->params['chain_parallel']['wasm'];
if(empty($nodes)){
echo date('Y-m-d H:i:s') . '无节点'.PHP_EOL;
if (empty($nodes)) {
echo date('Y-m-d H:i:s') . '无节点' . PHP_EOL;
return 0;
}
foreach ($nodes as $key => $node) {
$service = new Chain33Business();
$result = $service->getGameStatus($node);
if (0 !== $result['code']) {
echo $key.':'.date('Y-m-d H:i:s') . $result['msg'].PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . $result['msg'] . PHP_EOL;
continue;
}
$queryResultItems = $result['result'] ?? [];
if (empty($queryResultItems)) {
echo $key.':'.date('Y-m-d H:i:s') . 'error'.PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . 'error' . PHP_EOL;
continue;
}
$resultJSON = json_decode($queryResultItems['queryResultItems'][0]['resultJSON'], true);
$current_round = $resultJSON['current_round'];
$cache_current_round = Yii::$app->redis->get('chain33_game_bet_status_'.$key);
$cache_current_round = Yii::$app->redis->get('chain33_game_bet_status_' . $key);
if (empty($cache_current_round)) {
$cache_current_round = CoinGameBet::find()->where(['platform' => $key])->max('round');
Yii::$app->redis->set('chain33_game_bet_status_'.$key, $cache_current_round, 'EX', 300);
Yii::$app->redis->set('chain33_game_bet_status_' . $key, $cache_current_round, 'EX', 300);
}
$cache_current_round = (false == $cache_current_round ? 0 : $cache_current_round);
if ($cache_current_round >= $current_round) {
echo $key.':'.date('Y-m-d H:i:s') . '数据已为最新' . PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . '数据已为最新' . PHP_EOL;
continue;
}
Yii::$app->redis->set('chain33_game_bet_status_'.$key, $current_round, 'EX', 300);
Yii::$app->redis->set('chain33_game_bet_status_' . $key, $current_round, 'EX', 300);
$result = $service->getBetStatus($cache_current_round, $current_round, '', $node);
if (0 !== $result['code']) {
echo $key.':'.date('Y-m-d H:i:s') . '数据错误' . PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . '数据错误' . PHP_EOL;
continue;
}
$queryResultItems = $result['result'] ?? [];
if (empty($queryResultItems)) {
echo $key.':'.date('Y-m-d H:i:s') . '数据错误' . PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . '数据错误' . PHP_EOL;
continue;
}
$platform = $key;
......@@ -68,7 +68,7 @@ class GameBetController extends Controller
];
}
CoinGameBet::loadArray($datas);
echo $platform.':'.date('Y-m-d H:i:s') . '数据更新成功'.PHP_EOL;
echo $platform . ':' . date('Y-m-d H:i:s') . '数据更新成功' . PHP_EOL;
continue;
}
return 0;
......@@ -77,34 +77,35 @@ class GameBetController extends Controller
public function actionBetUpdate()
{
$nodes = \Yii::$app->params['chain_parallel']['wasm'];
if(empty($nodes)){
echo date('Y-m-d H:i:s') . '无节点'.PHP_EOL;
if (empty($nodes)) {
echo date('Y-m-d H:i:s') . '无节点' . PHP_EOL;
return 0;
}
foreach ($nodes as $key => $node) {
$service = new Chain33Business();
$result = $service->getGameStatus($node);
if (0 !== $result['code']) {
echo $key.':'.date('Y-m-d H:i:s') . $result['msg'].PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . $result['msg'] . PHP_EOL;
continue;
}
$queryResultItems = $result['result'] ?? [];
if (empty($queryResultItems)) {
echo $key.':'.date('Y-m-d H:i:s') . 'error'.PHP_EOL;
echo $key . ':' . date('Y-m-d H:i:s') . 'error' . PHP_EOL;
continue;
}
$resultJSON = json_decode($queryResultItems['queryResultItems'][0]['resultJSON'], true);
$current_height = $resultJSON['height'];
echo $key . ':' . date('Y-m-d H:i:s') . '当前高度为:' . $current_height . PHP_EOL;
$models = CoinGameBet::find()->select('round')->where([
'and',
['valid' => CoinGameBet::VAILD_FALSE],
['<', 'height', $current_height - 14],
['platform' => $key]
])->all();
if(empty($models)){
echo $key.':'.date('Y-m-d H:i:s') . '无需更新的数据'.PHP_EOL;
if (empty($models)) {
echo $key . ':' . date('Y-m-d H:i:s') . '无需更新的数据' . PHP_EOL;
continue;
}
$valid_arr = [];
......@@ -112,20 +113,20 @@ class GameBetController extends Controller
$valid_arr[] = $model->round;
}
$result = $service->getBetStatus('', '', $valid_arr, $node);
if( 0 !== $result['code']){
echo $key.':'.date('Y-m-d H:i:s') . '数据错误'.PHP_EOL;
if (0 !== $result['code']) {
echo $key . ':' . date('Y-m-d H:i:s') . '数据错误' . PHP_EOL;
continue;
}
$queryResultItems = $result['result'] ?? [];
if(empty($queryResultItems)){
echo $key.':'.date('Y-m-d H:i:s') . '数据错误'.PHP_EOL;
if (empty($queryResultItems)) {
echo $key . ':' . date('Y-m-d H:i:s') . '数据错误' . PHP_EOL;
continue;
}
$platform = $key;
foreach ($queryResultItems['queryResultItems'] as $key => $val){
foreach ($queryResultItems['queryResultItems'] as $key => $val) {
if (false == $val['found']) continue;
$resultArr = json_decode($val['resultJSON'],true);
$resultArr = json_decode($val['resultJSON'], true);
CoinGameBet::updateAll([
'amount' => $resultArr['amount'],
'height' => $resultArr['height'],
......@@ -133,12 +134,12 @@ class GameBetController extends Controller
'rand_num' => $resultArr['rand_num'],
'player_win' => $resultArr['player_win'],
'valid' => CoinGameBet::VAILD_TRUE
],[
], [
'round' => $resultArr['round'],
'platform' => $platform
]);
}
echo $platform.':'.date('Y-m-d H:i:s') . '数据更新成功'.PHP_EOL;
echo $platform . ':' . date('Y-m-d H:i:s') . '数据更新成功' . PHP_EOL;
continue;
}
return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment