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 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 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)); }