1
This commit is contained in:
parent
76061af451
commit
701f9355ba
@ -220,6 +220,96 @@ class CircuitRankingService extends BaseService {
|
|||||||
}
|
}
|
||||||
//21-100之间的名次 塞入35名
|
//21-100之间的名次 塞入35名
|
||||||
//101-200之间的名次 塞入40名
|
//101-200之间的名次 塞入40名
|
||||||
|
$sortAndroids = myself()->arraySort($androids, 'cumulative_score', 'desc');
|
||||||
|
$lastScore = $maxScore;
|
||||||
|
for ($i = 0; $i < 75; ++$i) {
|
||||||
|
if (20 + $i > count($sortRows)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ($i > count($sortAndroids)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$currUser = $sortRows[20 + $i];
|
||||||
|
$currScore = $currUser['cumulative_score'];
|
||||||
|
if ($currScore >= $lastScore) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$rangeScore = $lastScore - $currScore;
|
||||||
|
$allocScore = $currScore + rand(0, $rangeScore - 1);
|
||||||
|
$curAndroid = $sortAndroids[$i];
|
||||||
|
self::updateAndroid($curAndroid, $allocScore, $currentStageMeta);
|
||||||
|
$lastScore = $currScore;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static function updateAndroidScore($android, $newScore, $currentStageMeta)
|
||||||
|
{
|
||||||
|
if ($newScore <= $android['cumulative_score']) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ($curAndroid['cumulative_score'] <= 0) {
|
||||||
|
SqlHelper::upsert
|
||||||
|
($this->_getMysql(''),
|
||||||
|
't_circuit_battle',
|
||||||
|
array(
|
||||||
|
'account_id' => $android['robot_id'],
|
||||||
|
'season' => $currentStageMeta['circuit_season'],
|
||||||
|
'phase' => $currentStageMeta['circuit_phase'],
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'cumulative_score' => $newScore,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'account_id' => $android['robot_id'],
|
||||||
|
'season' => $currentStageMeta['circuit_season'],
|
||||||
|
'phase' => $currentStageMeta['circuit_phase'],
|
||||||
|
'is_android' => 1,
|
||||||
|
'cumulative_score' => $newScore,
|
||||||
|
'createtime' => myself()->_getNowTime(),
|
||||||
|
'modifytime' => myself()->_getNowTime(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
SqlHelper::upsert
|
||||||
|
($this->_getMysql(''),
|
||||||
|
't_circuit_battle',
|
||||||
|
array(
|
||||||
|
'account_id' => $android['robot_id'],
|
||||||
|
'season' => $currentStageMeta['circuit_season'],
|
||||||
|
'phase' => $currentStageMeta['circuit_phase'],
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'cumulative_score' => function() use($android, $newScore) {
|
||||||
|
$addScore = $android['cumulative_score'] - $newScore;
|
||||||
|
return 'cumulative_score +' . $addScore;
|
||||||
|
},
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'account_id' => $android['robot_id'],
|
||||||
|
'season' => $currentStageMeta['circuit_season'],
|
||||||
|
'phase' => $currentStageMeta['circuit_phase'],
|
||||||
|
'is_android' => 1,
|
||||||
|
'cumulative_score' => $newScore,
|
||||||
|
'createtime' => myself()->_getNowTime(),
|
||||||
|
'modifytime' => myself()->_getNowTime(),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
SqlHelper::update
|
||||||
|
($this->_getMysql(''),
|
||||||
|
't_circuit_battle',
|
||||||
|
array(
|
||||||
|
'account_id' => $android['robot_id'],
|
||||||
|
'season' => $currentStageMeta['circuit_season'],
|
||||||
|
'phase' => $currentStageMeta['circuit_phase'],
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'cumulative_score' => function() use($android, $newScore) {
|
||||||
|
$addScore = $android['cumulative_score'] - $newScore;
|
||||||
|
return 'cumulative_score +' . $addScore;
|
||||||
|
},
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user