Ejemplo n.º 1
0
 public static function updateTanks()
 {
     $jsonString = self::getContent(str_replace('{applicationId}', self::getApplicationId(), self::$wotApiTanks));
     if ($jsonString != false) {
         $jsonData = json_decode($jsonString, true);
         if ($jsonData['status'] == 'ok') {
             $tran = Yii::app()->db->beginTransaction();
             $tanks = WotTank::model()->findAll(array('index' => 'tank_id'));
             $nations = WotTankNation::model()->findAll(array('index' => 'tank_nation_id'));
             $classes = WotTankClass::model()->findAll(array('index' => 'tank_class_id'));
             foreach ($jsonData['data'] as $data) {
                 if (!isset($nations[$data['nation']])) {
                     $nation = new WotTankNation();
                     $nation->tank_nation_id = $data['nation'];
                     $nation->tank_nation_name = $data['nation_i18n'];
                     $nation->save(false);
                     $nations[$data['nation']] = $nation;
                 }
                 if (!isset($classes[$data['type']])) {
                     $class = new WotTankClass();
                     $class->tank_class_id = $data['type'];
                     $class->tank_class_name = $data['type_i18n'];
                     $class->save(false);
                     $classes[$data['type']] = $class;
                 }
                 if (!isset($tanks[$data['tank_id']])) {
                     $tank = new WotTank();
                 } else {
                     $tank = $tanks[$data['tank_id']];
                 }
                 $tank->tank_id = $data['tank_id'];
                 $tank->tank_class_id = $data['type'];
                 $tank->tank_nation_id = $data['nation'];
                 $tank->tank_level = $data['level'];
                 $tank->is_premium = $data['is_premium'];
                 if (preg_match("/#(.*?):(.*)/", $data['name'], $mathes)) {
                     $tankName = $mathes[2];
                 } else {
                     $tankName = $data['name'];
                 }
                 $tank->tank_name = $tankName;
                 $tank->tank_name_i18n = $data['name_i18n'];
                 $tank->save(false);
             }
             $tran->commit();
         }
     }
 }