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', ''); $recommend = $request->get('recommend', ''); $condition = []; if ($name) { $condition[] = ['like', 'name', $name]; } if ($platform != '') { $condition[] = ['chain' => $platform]; } if (Yii::$app->user->id != Yii::$app->params['admin']) { $platform_id = Yii::$app->user->identity->platform_id; $condition[] = ['>', "find_in_set($platform_id, platform_id)", 0]; } if (!empty($recommend)) { //使用连表查询推荐币种 $data = CoinBusiness::getRecommendList($page, $limit, $condition); } else { $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\psources\Coin */ $coin = Yii::createObject(Coin::className()); $data = array_merge($request->post(), ['platform_id' => Yii::$app->user->identity->platform_id]); unset($data['id']); $result = $coin->addOne($data); 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()) { $platform_id = Yii::$app->user->identity->platform_id; $can = false; if (Yii::$app->params['admin'] != Yii::$app->user->id) { $coin = Coin::find()->where(['id' => $req->post('id'), 'platform_id' => $platform_id])->one(); if ($coin) { $can = true; } } else { $can = true; } if ($can) { $coin = Yii::createObject(Coin::className()); $result = $coin->updateOne($req->post()); if ($result === true) { return ['code' => 0, 'msg' => 'succeed']; } } else { return ['code' => -1, 'msg' => '没有权限修改']; } } $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() { Yii::$app->response->format = 'json'; $id = Yii::$app->request->get('id', 0); if ($id) { $model = Coin::findOne(['id' => $id]); if ($model) { $platform_id = Yii::$app->user->identity->platform_id; $can = false; if (Yii::$app->params['admin'] != Yii::$app->user->id) { $coin = Coin::find()->where(['id' => $id, 'platform_id' => $platform_id])->one(); if ($coin) { $can = true; } } else { $can = true; } if ($can) { try { $model->delete(); return ['code' => 0, 'msg' => 'succeed']; } catch (\Throwable $t) { return ['code' => $t->getCode(), 'msg' => $t->getMessage()]; } } else { return ['code' => -1, 'msg' => '没有权限修改']; } } } return ['code' => -1, 'msg' => '删除失败']; } 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]); } }