<?php /** * Created by PhpStorm. * User: rlgyzhcn * Date: 18-5-31 * Time: 上午9:56 */ namespace backend\controllers; use Yii; use common\models\pwallet\Coin; use backend\models\coin\CoinForm; use yii\web\UploadedFile; use yii\validators\ImageValidator; use common\business\CoinBusiness; /** * 币种管理控制器 * Class CoinController * @package backend\controllers */ class CoinController extends BaseController { public function actionIndex() { if (Yii::$app->request->isAjax) { $request = Yii::$app->request; $page = $request->get('page', 1); $limit = $request->get('limit', 10); $name = $request->get('name', null); $platform = $request->get('platform', 'all'); $recommend = $request->get('recommend', 'all'); $condition = []; if ($name) { $condition[] = ['like', 'name', $name]; } if ($platform != 'all') { $condition[] = ['chain' => $platform]; } if ($recommend != 'all') { $recommend = $recommend ? 1 : 0; $condition[] = ['recommend' => $recommend]; } $data = CoinBusiness::getList($page, $limit, $condition); $data['code'] = 0; //ajax return Yii::$app->response->format = 'json'; return $data; } $platforms = Coin::getChainList(); return $this->render('index', ['platforms' => $platforms]); } public function actionAdd() { $model = new CoinForm(); $model->scenario = 'add'; if (Yii::$app->request->isPost) { $request = Yii::$app->request; if ($model->load($request->post()) && $model->validate()) { /** * @var $coin \common\models\pwallet\Coin */ $coin = Yii::createObject(Coin::className()); $result = $coin->addOne($request->post()); if ($result === true) { $this->success('添加成功', '/admin/coin/index'); } } //表单验证失败 $errors = $model->errors; if ($errors) { foreach ($errors as $key => $item) { $errors = $item[0]; break; } } elseif (isset($result) && $result['code'] != 0) { $errors = $result['message']; } $this->error($errors, Yii::$app->request->getReferrer()); } return $this->render('add', ['model' => $model]); } public function actionEdit() { if (Yii::$app->request->isPost) { $model = new CoinForm(); $model->scenario = 'update'; $req = Yii::$app->request; Yii::$app->response->format = 'json'; if ($model->load($req->post()) && $model->validate()) { $coin = Yii::createObject(Coin::className()); $result = $coin->updateOne($req->post()); if ($result === true) { return ['code' => 0, 'msg' => 'succeed']; } } $errors = $model->errors; if ($errors) { foreach ($errors as $key => $item) { $errors = $item[0]; break; } } elseif (isset($result) && $result['code'] != 0) { $errors = $result['message']; } return ['code' => 1, 'msg' => $errors]; } elseif (Yii::$app->request->isGet) { $id = Yii::$app->request->get('id', null); if ($id) { $coin = Coin::findOne(['id' => $id]); $this->layout = false; return $this->render('edit', ['model' => $coin]); } } } /** * 上传币种图标 */ public function actionUpload() { Yii::$app->response->format = 'json'; $uploaded_file = UploadedFile::getInstanceByName('file'); try { /** * @var $validator ImageValidator */ $validator = Yii::createObject(ImageValidator::className(), ['extensions' => 'png,jpg,gif']); if ($validator->validate($uploaded_file)) { $src = Yii::$app->uploader->upload($uploaded_file); if ($src === false) { return ['code' => 1, 'msg' => '上传失败']; } else { return ['code' => 0, 'data' => ['src' => $src]]; } } } catch (\Exception $exception) { return ['code' => $exception->getCode(), 'msg' => $exception->getMessage()]; } } public function actionDelete() { $id = Yii::$app->request->get('id', 0); if ($id) { $model = Coin::findOne(['id' => $id]); if ($model) { try { $model->delete(); $this->success('删除成功', '/admin/coin/index', true); } catch (\Throwable $t) { } catch (\Exception $e) { } } } $this->error('删除失败', Yii::$app->request->getReferrer(), true); } public function actionGetExchangeListById() { $id = Yii::$app->request->get('id', 0); $exchanges = []; if ($id) { $exchanges = CoinBusiness::getExchangeListById($id); } $this->layout = false; return $this->render('exchange', ['exchanges' => $exchanges]); } }