/**
  * возвращает игроков, относящихся к данному ивенту для фантазии
  * @param int $fantasy_id
  * @return mixed
  */
 public static function loadPlayersListOnFantasy($fantasy_id = 0)
 {
     $event_id = PokerFantasy::getEventId($fantasy_id);
     $eventModel = PokerEvent::findOne($event_id);
     if ($eventModel === null) {
         return;
     }
     $rows = $eventModel->eventPlayersList;
     //echo'<pre>';print_r($rows);echo'</pre>';die;
     return $rows;
 }
 public function getInfos(&$dataProvider)
 {
     $arFantasies = [];
     foreach ($dataProvider->models as $model) {
         $arFantasies[$model->game][] = $model->fantasy_id;
     }
     //echo'<pre>';print_r($arFantasies);echo'</pre>';//die;
     foreach ($arFantasies as $game => $fanrasies) {
         switch ($game) {
             case GamesParams::GAME_DOTA:
                 $fantasyModel = new DotaFantasy();
                 $draftModel = new DotaDraft();
                 break;
             case GamesParams::GAME_POKER:
                 $fantasyModel = new PokerFantasy();
                 $draftModel = new PokerDraft();
                 break;
         }
         $fantasiesList = $fantasyModel->getFantasiesFromIds($fanrasies);
         $drafts_counts = $draftModel->getDraftsCount($fanrasies);
         //echo'<pre>';print_r($drafts_counts);echo'</pre>';//die;
         foreach ($dataProvider->models as $model) {
             if ($model->game == $game) {
                 foreach ($fantasiesList as $item) {
                     if ($item['id'] == $model->fantasy_id) {
                         $model->info = $item;
                     }
                 }
                 foreach ($drafts_counts as $id => $item) {
                     if ($id == $model->fantasy_id) {
                         $model->info['drafts_counts'] = $item;
                     }
                 }
             }
         }
     }
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = PokerFantasy::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]]]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'event_id' => $this->event_id, 'users_count' => $this->users_count, 'deposit' => $this->deposit, 'prize_pool' => $this->prize_pool]);
     $query->andFilterWhere(['like', 'name', $this->name]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params, $fantasy_type = 'all', $only_active = true)
 {
     $query = PokerFantasy::find()->joinWith('event');
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'event_id' => $this->event_id, 'users_count' => $this->users_count, 'deposit' => $this->deposit, 'prize_pool' => $this->prize_pool]);
     $query->andFilterWhere(['like', 'name', $this->name]);
     switch ($fantasy_type) {
         case self::FANTASY_LIST_NOW:
             $query->andFilterWhere(['<', 'start', time()]);
             $query->andFilterWhere(['>', 'end', time()]);
             break;
         case self::FANTASY_LIST_FUTURE:
             $query->andFilterWhere(['>', 'start', time()]);
             break;
         case self::FANTASY_LIST_MY:
             if (!Yii::$app->user->isGuest) {
                 $fantasyIds = UserFantasy::getFavFantasyIds(Yii::$app->user->id, Transaction::TR_GAME_POKER);
                 //echo'<pre>';print_r($fantasyIds);echo'</pre>';//die;
                 //$query->andFilterWhere([ $this->tableName(). '.id' =>$fantasyIds]);
                 if (count($fantasyIds) == 0) {
                     $fantasyIds = [0];
                 }
                 $query->andFilterWhere(['IN', $this->tableName() . '.id', $fantasyIds]);
             }
             break;
     }
     if ($only_active == true) {
         $query->andFilterWhere(['=', 'status', self::FANTASY_ACTIVE]);
     }
     return $dataProvider;
 }
Beispiel #5
0
 public static function getFavFantasies($user_id = 0)
 {
     $sql = 'SELECT `id`, `fantasy_id`, `game` FROM ' . self::tableName() . ' WHERE `user_id` = :user_id ORDER BY `id` DESC LIMIT 0,4';
     $params = [':user_id' => $user_id];
     $rows = Yii::$app->db->createCommand($sql)->bindValues($params)->queryAll();
     //echo'<pre>';print_r($rows);echo'</pre>';//die;
     $arFantasies = [];
     foreach ($rows as $row) {
         $arFantasies[$row['game']][] = $row['fantasy_id'];
     }
     //echo'<pre>';print_r($arFantasies);echo'</pre>';//die;
     foreach ($arFantasies as $game => $fanrasies) {
         switch ($game) {
             case GamesParams::GAME_DOTA:
                 $fantasyModel = new DotaFantasy();
                 break;
             case GamesParams::GAME_POKER:
                 $fantasyModel = new PokerFantasy();
                 break;
         }
         $fantasiesList = $fantasyModel->getFantasiesFromIds($fanrasies);
         foreach ($rows as &$row) {
             if ($row['game'] == $game) {
                 foreach ($fantasiesList as $item) {
                     if ($item['id'] == $row['fantasy_id']) {
                         $row['info'] = $item;
                     }
                 }
             }
         }
         //echo'<pre>';print_r($fantasiesList);echo'</pre>';//die;
     }
     //echo'<pre>';print_r($rows);echo'</pre>';//die;
     return $rows;
 }
Beispiel #6
0
 /**
  * возвращает модель фантазии в зависимости от вида игры
  *
  * @param int $fantasy_id
  * @param int $game_id
  * @return mixed
  */
 private static function getFantasyModel($fantasy_id, $game_id)
 {
     switch ($game_id) {
         case Transaction::TR_GAME_DOTA:
             $fantasyModel = DotaFantasy::findOne($fantasy_id);
             break;
         case Transaction::TR_GAME_POKER:
             $fantasyModel = PokerFantasy::findOne($fantasy_id);
             break;
     }
     return $fantasyModel;
 }
Beispiel #7
0
 /**
  * добавляет в базу новую ставку
  * @param Model $fantasy
  */
 public function addRate($fantasy)
 {
     $draftModel = new PokerDraft();
     $PokerDraftPlayer = new PokerDraftPlayer();
     $draftModel->attributes = $this->attributes;
     $draftModel->save();
     //echo'<pre>'; print_r($draftModel);echo'</pre>';die;
     $PokerDraftPlayer->addPlayersRows($this->players, $draftModel->id);
     //снимаем взнос+комиссия у игрока
     $user = User::findOne(Yii::$app->user->id);
     $deposit_before = $user->deposit;
     $user->deposit = $user->deposit - $fantasy->deposit - $fantasy->fee;
     if ($user->save()) {
         //заносим в лог
         $data = ['fantasy_id' => $fantasy->id, 'game' => Transaction::TR_GAME_POKER];
         $trans_descr = Transaction::buildTransactionDescrForSave(Transaction::TR_TYPE_FANTASY_PAYMENT, $data);
         Transaction::saveTransaction($user->id, $deposit_before, -($fantasy->deposit + $fantasy->fee), $trans_descr);
     }
     //если нужно - увеличиваем призовой фонд
     //$total_sum_rates = PokerDraft::getCountFantasyDrafts($fantasy->id) * $fantasy->deposit;
     $total_sum_rates = $draftModel->getCountFantasyDrafts($fantasy->id) * $fantasy->deposit;
     if ($total_sum_rates > $fantasy->prize_pool_real) {
         PokerFantasy::upateRealPrizePool($fantasy->id, $total_sum_rates);
     }
 }
 public function actionShowRatings($id)
 {
     $modelFantasy = new PokerFantasy();
     //$model = $modelFantasy->getFantasyInfo($id);
     $model = $modelFantasy->loadFantasyInfo($id);
     //echo'<pre>';print_r($model->name);echo'</pre>';die;
     if ($model === false) {
         return;
     }
     $DraftModel = new PokerDraft();
     $rates_list = $DraftModel->getRatesListWithResults([$id]);
     //echo'<pre>';print_r($rates_list);echo'</pre>';//die;
     //echo'<pre>';print_r($model);echo'</pre>';die;
     $params = PokerParams::loadParams();
     $prizes = PrizeMatrix::getPrizesForFantasy($model);
     //echo'<pre>';print_r($prizes);echo'</pre>';//die;
     return $this->renderPartial('/common/show-ratings', ['model' => $model, 'rates_list' => $rates_list, 'params' => $params, 'prizes' => $prizes, 'game_id' => GamesParams::GAME_POKER, 'game_name' => GamesParams::GAME_POKER_NAME]);
 }
Beispiel #9
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getFantasy()
 {
     return $this->hasOne(PokerFantasy::className(), ['id' => 'fantasy_id']);
 }
Beispiel #10
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getFantasies()
 {
     return $this->hasMany(PokerFantasy::className(), ['event_id' => 'id']);
 }
 /**
  * Финализирует фантазии по окончившимся турнирам.
  * Считает места, распределяет выигранные стредства.
  * @return mixed
  */
 public function actionFinishFantasies()
 {
     $fantasy_model = new PokerFantasy();
     $result = $fantasy_model->finishFantasies();
     switch ($result) {
         case 0:
             $msg_type = 'success';
             $msg = 'Finish fantasies was successful.';
             break;
         case 1:
             $msg_type = 'error';
             $msg = 'Возникла ошибка при расчете процентов по выигрышу.';
             break;
         case 2:
             $msg_type = 'error';
             $msg = 'Возникла ошибка при расчете сумм по выигрышу.';
             break;
     }
     Yii::$app->session->setFlash($msg_type, $msg);
     return $this->redirect(['index']);
 }
<?php

use yii\helpers\Html;
use yii\helpers\Url;
use yii\widgets\Menu;
use common\models\poker\PokerFantasy;
$current_events_url = Url::to(['poker-fantasy/' . $current_action, 'type' => 'all']);
$futured_events_url = Url::to(['poker-fantasy/' . $current_action]);
$fantasy_type_list = [];
$fantasy_type_list_ = PokerFantasy::getTypeList();
//print_r($fantasy_type_list_);
foreach ($fantasy_type_list_ as $k => $val) {
    $url = Url::to(['poker-fantasy/' . $current_action, 'type' => $k]);
    $fantasy_type_list[$url] = $val;
}
$active_fantasy_type = Url::to(['poker-fantasy/' . $current_action, 'type' => $fantasy_type]);
$event_type_params = ['id' => 'fantasy-type', 'class' => 'width-150'];
if ($current_action == 'stat') {
    $event_type_params['disabled'] = 'disabled';
}
?>

<div class="section-head head-menu">

	<?php 
echo Html::dropDownList('event-type', $active_fantasy_type, $fantasy_type_list, $event_type_params);
?>
	
	<h1>POKER DRAFT</h1>
	
	<div class="clr clr-1380"></div>