Example #1
0
 public static function achievment($achievmentName)
 {
     if (empty(self::$_models)) {
         self::$_models = self::model()->findAll(array('index' => 'achievment_name'));
     }
     if (!isset(self::$_models[$achievmentName])) {
         $model = new self();
         $model->achievment_name = $achievmentName;
         $model->save(false);
         self::$_models[$achievmentName] = $model;
     }
     return self::$_models[$achievmentName];
 }
Example #2
0
 /**
  * 
  * @param WotClan $clan
  */
 public static function updateClanPlayersInfo($clan)
 {
     $url = strtr(self::$wotApiPlayerUrl, array('{applicationId}' => self::getApplicationId(), '{playerId}' => implode(',', array_keys($clan->players))));
     $jsonString = self::getContent($url);
     if ($jsonString != false) {
         $jsonData = json_decode($jsonString, true);
         if ($jsonData['status'] == 'ok') {
             $tran = Yii::app()->db->beginTransaction();
             foreach ($jsonData['data'] as $playerId => $data) {
                 $player = $clan->players[$playerId];
                 $achievments = $player->achievments;
                 $player->updated_at = date('Y-m-d H:i', $data['updated_at']);
                 foreach ($data['achievements'] as $key => $value) {
                     if ($value > 0) {
                         if (isset($achievments[$key])) {
                             $playerAchievment = $achievments[$key];
                         } else {
                             $achievment = WotAchievment::achievment($key);
                             $playerAchievment = new WotPlayerAchievment();
                             $playerAchievment->achievment_id = $achievment->achievment_id;
                             $playerAchievment->player_id = $player->player_id;
                         }
                         if ($playerAchievment->cnt != $value) {
                             $playerAchievment->cnt = $value;
                             $playerAchievment->updated_at = $player->updated_at;
                             $playerAchievment->save(false);
                         }
                     }
                 }
                 foreach (array('all', 'clan', 'company', 'historical') as $statName) {
                     $stat = $player->getStatistic($statName);
                     $stat->attributes = $data['statistics'][$statName];
                     $stat->updated_at = $player->updated_at;
                     $stat->save(false);
                 }
                 $player->max_xp = $data['statistics']['max_xp'];
                 $player->created_at = date('Y-m-d H:i', $data['created_at']);
                 $player->player_name = $data['nickname'];
                 $player->last_battle_time = date('Y-m-d H:i', $data['last_battle_time']);
                 $player->logout_at = date('Y-m-d H:i', $data['logout_at']);
                 $player->global_rating = $data['global_rating'];
                 $player->save(false);
             }
             $tran->commit();
         } else {
             Yii::log($jsonString, 'error');
         }
         //	var_dump($jsonData);
     }
 }