'ADL.*,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME', 'from' => AdLocation::tableName().' AS ADL', 'join' => [ ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=ADL.CREATE_ADMIN'], ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=ADL.UPDATE_ADMIN'], ], 'orderBy' => 'ADL.CREATED_AT ASC', ]); return static::notice($data); } /** * 列表 * @return mixed * @throws \yii\web\HttpException */ public function actionList(){ $lid = Yii::$app->request->get('lid'); $condition = ' AND AD.LID=:LID'; $params[':LID']=$lid; $data = Ad::lists($condition, $params, [ 'select' => 'AD.*,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME', 'from' => Ad::tableName().' AS AD', 'join' => [ ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=AD.CREATE_ADMIN'], ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=AD.UPDATE_ADMIN'], ], 'orderBy' => 'AD.SORT DESC,AD.CREATED_AT ASC', ]); $data['allLocation'] = AdLocation::getAllLocation(); $data['allArticle'] = Article::find()->select('ID,TITLE')->asArray()->all(); return static::notice($data); } /** * 添加 * @return mixed * @throws \yii\web\HttpException */ public function actionAdd(){ if(Yii::$app->request->isPost) { return parent::edit(AdForm::class, Yii::t('ctx', 'AdAddedSuccessfully'), null, null, null, function($formModel, $result){ // 添加操作日志 // Log::adminHandle('添加广告:'.$result->TITLE); }); } // 获取全部分类 $allLocation = AdLocation::getAllLocation(); $allArticle = Article::findAllAsArray(); return static::notice(['allLocation'=>$allLocation, 'allArticle' => $allArticle]); } /** * 编辑 * @return mixed * @throws \yii\web\HttpException */ public function actionEdit(){ $id = Yii::$app->request->get('id'); if(Yii::$app->request->isPost) { return parent::edit(AdForm::class, Yii::t('ctx', 'EditAdSuccessfully'), null, null, null, function($formModel, $result){ // 添加操作日志 // Log::adminHandle('编辑广告:'.$result->TITLE); }); } $oneData = Ad::findOneAsArray(['ID'=>$id]); // 获取全部分类 $allLocation = AdLocation::getAllLocation(); $allArticle = Article::findAllAsArray(); return static::notice(['oneData'=>$oneData, 'allLocation'=>$allLocation, 'allArticle' => $allArticle]); } /** * 删除 * @return mixed * @throws \yii\db\Exception * @throws \yii\web\HttpException */ public function actionAdDelete(){ $adForm = new AdForm(); $result = static::delete(Ad::class, function ($selected) use ($adForm) { $adForm->beforeDelete($selected); }, function ($selected) use ($adForm) { $adForm->delete($selected); }, true); return $result; } /** * 隐藏 * @return mixed * @throws \yii\db\Exception * @throws \yii\web\HttpException */ public function actionAdHide(){ $adForm = new AdForm(); $result = static::hide(Ad::class, 'hide', function ($selected) use ($adForm) { }, function ($selected) use ($adForm) { }, true); return $result; } /** * 取消隐藏 * @return mixed * @throws \yii\db\Exception * @throws \yii\web\HttpException */ public function actionAdUnHide(){ $adForm = new AdForm(); $result = static::hide(Ad::class, 'un-hide', function ($selected) use ($adForm) { }, function ($selected) use ($adForm) { }, true); return $result; } /** * 排序 * @return mixed * @throws \yii\web\HttpException */ public function actionSort(){ if(Yii::$app->request->get('id')){ $formModel = new AdForm(); $formModel->scenario = 'sort'; if($formModel->load(Yii::$app->request->get(), '') && $formModel->sortTo()){ return static::notice(Yii::t('ctx', 'successfully')); } else { return static::notice(Yii::t('ctx', 'failed'), 400); } } } /** * 状态 * @return mixed * @throws \yii\web\HttpException */ public function actionStatus(){ if(Yii::$app->request->get('id')){ $formModel = new AdForm(); $formModel->scenario = 'status'; if($formModel->load(Yii::$app->request->get(), '') && $formModel->statusTo()){ return static::notice(Yii::t('ctx', 'successfully')); } else { return static::notice(Yii::t('ctx', 'failed'), 400); } } } /** * 上传图片 * @return mixed * @throws \yii\base\Exception * @throws \yii\db\Exception * @throws \yii\web\HttpException */ public function actionUpload(){ if(\Yii::$app->request->isPost){ $formModel = new UploadForm(); $formModel->scenario = 'ad'; $formModel->file = UploadedFile::getInstanceByName('file'); $formModel->token = \Yii::$app->request->request('uploadToken');; if($formModel->file && $uploader = $formModel->upload()){ return static::notice($uploader->URL); } else { return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400); } } else { $token = Cache::setUploadToken(); return static::notice($token); } } }