Exemplo n.º 1
0
 /**
  * @return WotProvince the static model class
  */
 public static function getByAttributes($attributes)
 {
     $arena = WotArena::model()->findByPk($attributes['arena_id']);
     if (empty($arena)) {
         $arena = new WotArena();
         $arena->arena_id = $attributes['arena_id'];
         $arena->arena_name = $attributes['arena_name'];
         $arena->save(false);
     }
     $model = self::model()->findByBk($attributes['province_id']);
     if (empty($model)) {
         $model = new WotProvince();
         $model->province_id = $attributes['province_id'];
         $model->province_name = $attributes['name'];
         $model->arena_id = $attributes['arena_id'];
         $model->attaked = $attributes['attaked'];
         $model->occupancy_time = $attributes['occupancy_time'];
         $model->combats_running = $attributes['combats_running'];
         $model->prime_time = $attributes['prime_time'];
         $model->gold = $attributes['gold'];
         $model->save(false);
     }
     return $model;
 }
Exemplo n.º 2
0
 /**
  * 
  * @param WotClan $clan
  */
 public static function updateClanProvinces($clan)
 {
     $clanId = $clan->clan_id . '-' . $clan->clan_name;
     $data = self::ajaxRequest("http://worldoftanks.ru/community/clans/{$clanId}/provinces/list/");
     $currentProvinces = array();
     if (!empty($data)) {
         if ($data['status'] == 'ok') {
             foreach ($data['request_data']['items'] as $item) {
                 $province = WotProvince::getByAttributes($item['name'], $item['id']);
                 $map = WotMap::getByName($item['arena_name']);
                 $currentProvinces[$item['name']] = $item['id'];
                 $clanProvince = WotClanProvince::model()->findByAttributes(array('province_id' => $province->province_id, 'clan_id' => $clan->clan_id, 'date_end' => null));
                 if (empty($clanProvince)) {
                     $clanProvince = new WotClanProvince();
                     $clanProvince->clan_id = $clan->clan_id;
                     $clanProvince->province_id = $province->province_id;
                     $clanProvince->prime_time = $item['prime_time'];
                     $clanProvince->map_id = $map->map_id;
                     $clanProvince->revenue = $item['revenue'];
                     $clanProvince->type = $item['type'];
                     $days = intval($item['occupancy_time']);
                     if ($days > 0) {
                         $clanProvince->date_start = new CDbExpression("date_add(curdate(), interval -{$days} DAY)");
                     } else {
                         $clanProvince->date_start = new CDbExpression('curdate()');
                     }
                     $clanProvince->save(false);
                 }
             }
             foreach ($clan->clanProvinces as $clanProvince) {
                 if (!isset($currentProvinces[$clanProvince->province->province_name])) {
                     $clanProvince->date_end = new CDbExpression('now()');
                     $clanProvince->save(false);
                 }
             }
         }
     }
 }