<?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>
/** * Аццкий говнокод * */ 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', 'Услуга «' . $transaction->description . '» успешно активирована'); $this->checkUnBadStatus($model, $service); $this->redirect(Yii::app()->request->getUrlReferrer()); }