コード例 #1
0
 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();
 }
コード例 #2
0
 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;
 }
コード例 #3
0
 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));
 }