public function run($args) { $mem_start = memory_get_usage(); $bankiRuData = new BankiRuParser('bankiRu'); $bankiRuData->currencyType = 0; $bankiRuData->parse(); $rbcDataDollar = new RbcParser('rbc'); $rbcDataDollar->currencyType = 1; $rbcDataDollar->parse(); $rbcDataEuro = new RbcParser('rbc'); $rbcDataEuro->currencyType = 2; $rbcDataEuro->parse(); ApiData::getRates(False); # обновим кеш, чтобы в нем были валидные данные, пока мы над базой колдуем ApiData::getCoordinates(False); ApiData::getDepartments(False); $connection = Yii::app()->db; $transaction = $connection->beginTransaction(); try { BankCourses::model()->deleteAll(); $bankiRuData->save(); $rbcDataDollar->save(); $rbcDataEuro->save(); $transaction->commit(); } catch (Exception $e) { print '---------------------------------------------------'; print_r($e); $transaction->rollback(); } ApiData::getRates(False); # обновим кеш, чтобы в нем были обновленные данные ApiData::getCoordinates(False); ApiData::getDepartments(False); echo memory_get_usage() - $mem_start; }
public static function getCoordinates($checkCache = true) { $response = new ApiResponseModel(); $data = array(); if ($checkCache) { $data = ApiCache::get(Yii::app()->params['cache']['keys']['coordinates']); } if (!$data) { $availableBanks = BankCourses::model()->findAvailableBanks()->findAll(); if (count($availableBanks) > 0) { $ids = array(); foreach ($availableBanks as $bankInfo) { $ids[] = $bankInfo['bank_id']; } $answer = new CoordinatesApiModel(); $coordinates = BankBranches::model()->getDepartmentCoordinates($ids)->findAll(); foreach ($coordinates as $coordinate) { $answer->add($coordinate); } $data = $answer->getResult(); $response->setData($data); $response->setHash(ApiCache::set(Yii::app()->params['cache']['keys']['coordinates'], $data, Yii::app()->params['cache']['time'])); } } else { $response->setData($data); $response->setHash(ApiCache::getCheck(Yii::app()->params['cache']['keys']['coordinates'])); } return $response->getApiResponse(); }
public function save() { foreach ($this->banks as $site_bank_id => $bankInfo) { $bank = Bank::model()->getBankByNameLike($bankInfo['name'])->find(); if ($bank) { foreach ($bankInfo['rates'] as $currency => $info) { $cur = new BankCourses(); $cur->bank_id = $bank->id; $cur->buy = $info['buy']; $cur->sale = $info['sell']; $cur->currency = $currency; $cur->save(); } } } }
public function actionView() { $bankId = Yii::app()->request->getQuery('id'); $bank = Bank::model()->findByPk($bankId); $departments = BankBranches::model()->getBankDepartment($bankId)->findAll(); $rates = BankCourses::model()->getBankRates($bankId)->findAll(); $this->render('view', array('bank' => $bank, 'departments' => $departments, 'rates' => $rates)); }
public function save() { foreach ($this->banks as $key => $bankInfo) { $bank = False; $bankResource = BankResources::model()->getBankResource($this->sourceType, $key)->find(); if ($bankResource) { $bank = Bank::model()->findByPk($bankResource->bank_id); } if (!$bank) { $bank = new Bank(); } foreach ($bankInfo as $sum => $info) { if (!$bank->id) { // $bank->phone = $info['info']['tel']; $bank->address = $info['info']['address']; $bank->name = $info['name']; $bank->save(); $bankResource = new BankResources(); $bankResource->bank_id = $bank->id; $bankResource->source_id = $this->sourceType; $bankResource->source_alias = $key; $bankResource->save(); $newBranch = new BankBranches(); $newBranch->address = $info['info']['address']; $yandexGeoDecode = @file_get_contents('http://geocode-maps.yandex.ru/1.x/?format=json&results=1&geocode=город Москва, ' . $newBranch->address); if ($yandexGeoDecode) { $answer = json_decode($yandexGeoDecode, True); if (!isset($answer['response']) && count($answer['response']['GeoObjectCollection']['featureMember']) == 0) { continue; } $pos = $answer['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']['Point']['pos']; $pos = explode(' ', $pos); $newBranch->latitude = $pos[1]; $newBranch->longtitude = $pos[0]; $newBranch->preparePhone($info['info']['tel']); $newBranch->save(); $newBranch->bank_id = $bank->id; $newBranch->save(); } } if ($bank->id) { $cur = new BankCourses(); $cur->bank_id = $bank->id; $cur->buy = $info['pok']; $cur->sale = $info['prod']; $cur->sum = $sum; $cur->currency = $this->siteCurrencyType; $cur->save(); } } } }