%PDF- %PDF-
| Direktori : /www/loslex/test/app/Workers/Cup/ |
| Current File : /www/loslex/test/app/Workers/Cup/LosCupShooterWinHelper.php |
<?php
namespace App\Workers\Cup;
use Illuminate\Support\Facades\DB;
class LosCupShooterWinHelper
{
public static function compareShooters(array $contest_ids, string $division, int $shooter_a_id, int $shooter_b_id)
{
$strContestIds = implode(",", $contest_ids);
$abWins = self::getCupWins($strContestIds, $division, $shooter_a_id, $shooter_b_id);
$baWins = self::getCupWins($strContestIds, $division, $shooter_b_id, $shooter_a_id);
return $baWins <=> $abWins; // BA to AB protože potřebujeme sestupné řazení (víckrát vyhrál => je na lepší (nižší) pozici)
}
private static function getCupWins(string $contest_ids, string $division, int $shooter_a_id, int $shooter_b_id) : int
{
return DB::scalar(
"SELECT COUNT(A.contest_id) FROM `cup_contest_results` AS A, `cup_contest_results` AS B WHERE A.contest_id = B.contest_id AND A.bgdivision = '$division' AND B.bgdivision = '$division' AND A.user_id = $shooter_a_id AND B.user_id = $shooter_b_id AND A.contest_id IN ($contest_ids) AND A.percent > B.percent;",
);
}
}