%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/loslex/test/app/Workers/Cup/
Upload File :
Create Path :
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;",
        );
    }
}

Zerion Mini Shell 1.0