| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace backendApi\modules\v1\controllers;
- use common\helpers\Form;
- use common\models\Currency;
- use common\models\CurrencyConversions;
- use common\models\forms\CurrenciesConversionsForm;
- use yii\db\Exception;
- use yii\web\HttpException;
- class CurrencyController extends BaseController
- {
- public $modelClass = Currency::class;
- public $currencyConversionsModelClass = CurrencyConversions::class;
- public function actionCurrencies()
- {
- $data = $this->modelClass::getFromCache();
- return static::notice(['data' => $data]);
- }
- public function actionCurrenciesConversions()
- {
- // 货币列表
- $currencies = $this->modelClass::getFromCache();
- // 货币汇率配置
- $currencyConversion = $this->currencyConversionsModelClass::getFromCache();
- $currencyConversion = array_column($currencyConversion, NULL, 'TO_CURRENCY_ID');
- foreach ($currencies as &$currency) {
- $currency['PRODUCT_RATE'] = $currencyConversion[$currency['ID']]['PRODUCT_RATE'] ?? 0;
- $currency['BONUSES_RATE'] = $currencyConversion[$currency['ID']]['BONUSES_RATE'] ?? 0;
- }
- return static::notice(['data' => $currencies]);
- }
- /**
- * @throws Exception
- * @throws HttpException
- */
- public function actionSetCurrenciesConversions()
- {
- if (\Yii::$app->request->isPost) {
- $formModel = new CurrenciesConversionsForm();
- $formModel->scenario = 'setCurrenciesConversions';
- if ($formModel->load(\Yii::$app->request->post(), '') && $formModel->setCurrenciesConversions()) {
- // 更新缓存
- $this->currencyConversionsModelClass::updateToCache();
- return static::notice(\Yii::t('ctx', 'successfully'));
- } else {
- return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
- }
- }
- return static::notice(\Yii::t('ctx', 'illegalRequest'));
- }
- }
|