Exemplo n.º 1
0
<?php
$this->pageTitle = 'Премиум-аккаунт';
//$this->layout = '//layouts/column2left';
$this->renderPartial('_menu');
$prices = array(
    '3days'=>ServiceManager::getPrice(ServiceManager::SERVICE_PREMIUM_3DAYS),
    'small'=>ServiceManager::getPrice(ServiceManager::SERVICE_PREMIUM_SMALL),
    'big'=>ServiceManager::getPrice(ServiceManager::SERVICE_PREMIUM_BIG),
    '3daysCharge'=>ServiceManager::getPriceCharge(ServiceManager::SERVICE_PREMIUM_3DAYS),
    'smallCharge'=>ServiceManager::getPriceCharge(ServiceManager::SERVICE_PREMIUM_SMALL),
    'bigCharge'=>ServiceManager::getPriceCharge(ServiceManager::SERVICE_PREMIUM_BIG),
);
$show3col = false;
$show3col = $me->first_visit > ServiceManager::TIME_RISE; //$me->id == 4932797 || $me->id == 4932794;

$this->breadcrumbs=array(
    'Профиль'=>array('/profile'),
    'Премиум-аккаунт',
);?>
<h1>Премиум аккаунт</h1>
<?php if ($me->premium): ?>
    <p><span class="pink">Премиум аккаунт оплачен до <? echo date('d.m.Y H:i:s',$me->premium_end->time_task) ?></span></p>
<?php endif; ?>
<h3>Мужчинам</h3>

<p>Для общения с девушками необходимо оплачивать премиум-аккаунт.<br>
Пробный аккаунт, который вы получили после регистрации действует 36 часов. В течение этого времени вы можете решить, интересно вам общение на нашем сайте или нет.<br>
Без премиум аккаунта ваша анкета остаётся в поиске, вы можете получать сообщения, но отвечать не сможете.<br>
Эта услуга в том числе и для вашего удобства. Мы отсекаем праздных посетителей и спамеров.</p>

<h3>Девушкам</h3>
Exemplo n.º 2
0
    /**
     * Аццкий говнокод
     *
     */
    public function actionOrderService()
    {
        $service = Yii::app()->request->getPost('service');
        $model = Anketa::model()->findByPk(Yii::app()->user->id);
        $transaction = new Btransaction();
        $transaction->id_user = $model->id;
        $transaction->time_end = $transaction->time_start = time();
        $transaction->info = array('ip' => $_SERVER['REMOTE_ADDR']);
        $time_task = $time_top = $time_premium = 0;
        switch ($service) {
            case 1:
                // подъем анкеты
                if (Btransaction::model()->count('id_user = :id_user AND time_start > :delta AND description = :description', array(':id_user' => $transaction->id_user, ':delta' => time() - 60 * 5, ':description' => 'Поднятие анкеты'))) {
                    //Yii::app()->end();
                    $this->redirect(Yii::app()->request->getUrlReferrer());
                }
                // если чаще, чем в 5 минут - не списываем
                $transaction->amount = -100;
                $transaction->description = 'Поднятие анкеты';
                $transaction->status = 1;
                $model->setUp();
                break;
            case 2:
                $transaction->amount = -250;
                $transaction->description = 'ТОП на 2 недели';
                $transaction->status = 1;
                $time_top = 14 * 24 * 3600;
                break;
            case 3:
                $transaction->amount = -400;
                $transaction->description = 'ТОП на 30 дней ';
                $transaction->status = 1;
                $time_top = 30 * 24 * 3600;
                break;
            case 4:
                $transaction->amount = -ServiceManager::getPrice(4);
                $transaction->description = 'ПРЕМИУМ 2 недели';
                $transaction->status = 1;
                $time_premium = 14 * 24 * 3600;
                break;
            case 5:
                $transaction->amount = -ServiceManager::getPrice(5);
                $transaction->description = 'ПРЕМИУМ на 30 дней';
                $transaction->status = 1;
                $time_premium = 30 * 24 * 3600;
                break;
            case 6:
                $transaction->amount = -ServiceManager::getPrice(6);
                $transaction->description = 'ПРЕМИУМ на 3 дня';
                $transaction->status = 1;
                $time_premium = 3 * 24 * 3600;
                break;
            default:
                Yii::app()->user->setFlash('error', 'Неверная операция');
                $this->redirect(Yii::app()->request->getUrlReferrer());
        }
        if ($time_top) {
            $model->top = 1;
            $time_task = $time_top;
            $task = 'untop';
        }
        if ($time_premium) {
            /**
             * Если человек с пробным аккаунтом проплачивает прем – неизрасходованный пробник в двойном размере
             * прибавляется к прему. Т.е. человек, мгновенно оплативший прем после регистрации получит 72 часа к прему.
             */
            $bonus_time = 0;
            if ($model->getAccountType() == Anketa::ACCOUNT_TRIAL) {
                $bonus_time = ($model->trial_end - time()) * 2;
            }
            if ($bonus_time <= 0) {
                $bonus_time = 0;
            }
            $model->setPremium(1);
            $time_task = $time_premium + $bonus_time;
            $task = 'unpremium';
        }
        if ($model->balance + $transaction->amount < 0) {
            Yii::app()->user->setFlash('error', 'Недостаточно средств');
            $this->redirect(Yii::app()->request->getUrlReferrer());
        }
        if ($time_task) {
            $q = 'INSERT INTO `task` (id_user, `type`,time_task,`data`,status)
VALUES (:id_user,:type,:time_task+UNIX_TIMESTAMP(),:data,:status)
ON DUPLICATE KEY UPDATE
 time_task = GREATEST(time_task,UNIX_TIMESTAMP()) + :time_task,status=:status;';
            Yii::app()->db->createCommand($q)->execute(array(':id_user' => $transaction->id_user, ':type' => $task, ':time_task' => $time_task, ':data' => '', ':status' => 1));
        }
        $transaction->info = serialize($transaction->info);
        if ($transaction->save(false)) {
            // без валидации..
            $model->addBalance($transaction->amount);
            $model->savePriority();
        }
        Yii::app()->user->setFlash('success', 'Услуга &laquo;' . $transaction->description . '&raquo; успешно активирована');
        $this->checkUnBadStatus($model, $service);
        $this->redirect(Yii::app()->request->getUrlReferrer());
    }