Файл: public_html/core/payment/lib/UnitPayModel.php
Строк: 127
<?php
class UnitPayModel
{
    private $mysqli;
    static function getInstance()
    {
        return new self();
    }
    private function __construct()
    {
        $port = Config::DB_PORT;
        if (empty($port)) {
            $port = ini_get("mysqli.default_port");
        }
        $this->mysqli = @new mysqli (
            Config::DB_HOST, Config::DB_USER, Config::DB_PASS, Config::DB_NAME, $port
        );
        /* проверка подключения */
        if (mysqli_connect_errno()) {
            throw new Exception('Не удалось подключиться к бд');
        }
    }
    function createPayment($unitpayId, $account, $sum, $itemsCount)
    {
        $query = '
            INSERT INTO
                unitpay_payments (unitpayId, account, sum, itemsCount, dateCreate, status)
            VALUES
                (
                    "'.$this->mysqli->real_escape_string($unitpayId).'",
                    "'.$this->mysqli->real_escape_string($account).'",
                    "'.$this->mysqli->real_escape_string($sum).'",
                    "'.$this->mysqli->real_escape_string($itemsCount).'",
                    NOW(),
                    0
                )
        ';
        return $this->mysqli->query($query);
    }
    function getPaymentByUnitpayId($unitpayId)
    {
        $query = '
                SELECT * FROM
                    unitpay_payments
                WHERE
                    unitpayId = "'.$this->mysqli->real_escape_string($unitpayId).'"
                LIMIT 1
            ';
            
        $result = $this->mysqli->query($query);
        if (!$result){
            throw new Exception($this->mysqli->error);
        }
        return $result->fetch_object();
    }
    function confirmPaymentByUnitpayId($unitpayId)
    {
        $query = '
                UPDATE
                    unitpay_payments
                SET
                    status = 1,
                    dateComplete = NOW()
                WHERE
                    unitpayId = "'.$this->mysqli->real_escape_string($unitpayId).'"
                LIMIT 1
            ';
        return $this->mysqli->query($query);
    }
    
    function getAccountByName($account)
    {
        $sql = "
            SELECT
                *
            FROM
               ".Config::TABLE_ACCOUNT."
            WHERE
               ".Config::TABLE_ACCOUNT_NAME." = '".$this->mysqli->real_escape_string($account)."'
            LIMIT 1
         ";
         
        $result = $this->mysqli
            ->query($sql);
        if (!$result){
            throw new Exception($this->mysqli->error);
        }
        return $result->fetch_object();
    }
    function questUpdate($uid, $quest_id, $count=1)
    {
        $quest = $this->mysqli->query("SELECT * FROM `quest_user` WHERE `quest` = '".$quest_id."' AND `user` = '".$uid."'")->fetch_object();
        if($quest->rewarded == 0)
        {
            $this->mysqli->query("UPDATE `quest_user` SET `count` = `count` + '".$count."' WHERE `id` = '".$quest->id."'");
        }
    }
    
    function donateForAccount($account, $countRes)
    {
        $count = $countRes;
        if($countRes == 100) $count += 10;
        elseif($countRes == 300) $count += 30;
        elseif($countRes == 500) $count += 50;
        elseif($countRes == 1000) $count += 100;
        elseif($countRes == 3000) $count += 300;
        $user = $this->mysqli->query("SELECT * FROM `users` WHERE `id` = '".$account."'")->fetch_object();
        if($user->referer > 0)
        {
            $percent = round($count/100*20);
            $this->mysqli->query("UPDATE `users` SET `gold` = `gold` + '".$percent."' WHERE `id` = '".$user->referer."'");
        }
        if($user->vip_type == 1) $count += round($countRes/100*10);
        elseif($user->vip_type == 2) $count += round($countRes/100*30);
        elseif($user->vip_type == 3) $count += round($countRes/100*50);
        $this->questUpdate($account, 5, $count);
        $query = "
            UPDATE
                ".Config::TABLE_ACCOUNT."
            SET
                ".Config::TABLE_ACCOUNT_DONATE." = ".Config::TABLE_ACCOUNT_DONATE." + ".$this->mysqli->real_escape_string($count)."
            WHERE
                ".Config::TABLE_ACCOUNT_NAME." = '".$this->mysqli->real_escape_string($account)."'
        ";
        return $this->mysqli->query($query);
    }
}