Skip to content
Snippets Groups Projects
campaigns.php 2.41 KiB
Newer Older
<?php

class Campaigns
{

    private $database;

    const FIELDS_gebuchte_werbung = '`t1`.`id`, `t1`.`uid`, `t1`.`tan`, `t1`.`kid`, `t1`.`ziel`, `t1`.`banner`, `t1`.`verdienst`, `t1`.`preis`, `t1`.`aufendhalt`, `t1`.`menge`, `t1`.`reload`, `t1`.`sponsor`, `t1`.`werbeart`, `t1`.`status`';

    public function __construct( $database )
    {
        $this->database = $database;
    }

Christoph Zysik's avatar
Christoph Zysik committed
    public function decreaseAvailCountById( $id, $value = 1 )
        $sql = 'UPDATE `'. DB_PREFIX . '_gebuchte_werbung` SET `menge` = GREATEST(0, `menge` - :value ) WHERE `id`= :id';
        $sql_params = array(
                           ':id' => $id,
                           ':value' => $value
                      );
        return $this->database->sqlUpdate($sql, $sql_params);
    }

    public function getIsClickableByTanAndType( $tan, $type, $ip, $uid, $zeit )
    {
        $sql = self::FIELDS_gebuchte_werbung .' FROM `'. DB_PREFIX .'_gebuchte_werbung` AS `t1`
               LEFT JOIN `'. DB_PREFIX .'_reloads` AS `t2` ON ( `t1`.`tan` = `t2`.`tan`  AND  (`t2`.`uid` = :t2uid OR `t2`.`ip` = :t2ip ) AND `t2`.`bis` > :t2bis )
               WHERE `t1`.`tan` = :t1tan AND `t2`.`tan` IS NULL AND `t1`.`werbeart` = :t1type AND `t1`.`menge` >= 1 AND `t1`.`status` = 1 AND `t1`.`sponsor` != :t1uid LIMIT 1';

        $sql_params = array(
                           ':t2uid'  => $uid,
                           ':t2ip'   => $ip,
                           ':t2bis'  => $zeit,
                           ':t1tan'  => $tan,
                           ':t1type' => $type,
                           ':t1uid'  => $uid,
                     );
        $result = $this->database->select( $sql, $sql_params );
        return ( isset($result[0]) ) ? $result[0] : false;

    }
    public function getByTanAndType( $tan, $type, $status = false )
    {
        $where_status = ( false !== $status ) ? ' AND `status` = :status ' : '';

        $sql = self::FIELDS_gebuchte_werbung .' FROM `'.DB_PREFIX.'_gebuchte_werbung` AS `t1` WHERE `tan` = :tan AND `werbeart` = :type '.$where_status.' LIMIT 1';
        $sql_params = array(
                           ':tan'     => $tan,
                           ':type'    => $type,
                      );
        if( false !== $status )
        {
            $sql_params[':status'] = $status;
        }

        $result = $this->database->select($sql, $sql_params);
        return ( isset($result[0]) ) ? $result[0] : false;