dataList(1); /** * 渲染模板 */ return $this->render('index', $params); } /** * 禁用的广告列表 */ public function actionDisabled() { $params = $this->dataList(0); /** * 渲染模板 */ return $this->render('disabled', $params); } protected function dataList($enable = 1) { $request = Yii::$app->request; $clientId = ''; /** * 组织SQL */ $pageSize = $request->get("pageSize") ? (int)$request->get("pageSize") : 20; $result = UserAdsRepository::search(['is_enable' => $enable], ['orderBy' => ['sort_order' => SORT_ASC]], $clientId); $pages = $result->paginate($pageSize); $userAdses = $result->fetch($pages->offset, $pages->limit); /** * 数据整理 */ $data = []; foreach ($userAdses as $userAds) { if ($userAds['cover_img_path']) { $logo = ImageManager::getUrl($userAds['cover_img_path'], ImageManager::$STYLE_90); } else { $logo = Yii::$app->request->BaseUrl . '/images/default-item.jpg'; } $clientLabel = UserAds::clientLabels($userAds['client']); $data[] = [ 'logo' => $logo, 'id' => $userAds['id'], 'client' => $clientLabel, 'detail' => $userAds['detail'], 'title' => $userAds['title'], 'link_mode' => $userAds['link_mode'], 'link_mode_label' => $userAds['link_mode_label'], 'url' => $userAds['url'] ?? '无', 'appid' => $userAds['appid'] ?? '无', 'path' => $userAds['path'] ?? '无', 'status' => ($userAds['is_enable'] == 1) ? '已启用' : '已禁用', 'sort_order' => $userAds['sort_order'], // 'created_at' => date('Y-m-d H:i:s', $userAds['created_at']), // 'updated_at' => date('Y-m-d H:i:s', $userAds['updated_at']), 'enable' => ($userAds['is_enable'] == 1) ? '禁用' : '启用', ]; } return [ 'userAdses' => $data, 'pages' => $pages ]; } /** * 新增界面 */ public function actionCreate() { $request = Yii::$app->request; $selectedLinkMode= $request->get('selectedLinkMode'); if (empty($selectedLinkMode)) { $selectedLinkMode = UserAdsLinkMode::LINK_MODE_NONE; } $clientLabels = UserAds::clientLabels(); $linkModes = UserAdsLinkMode::label(); $params = [ 'linkModes' => $linkModes, 'selectedLinkMode' => $selectedLinkMode, 'clientLabels' => $clientLabels, ]; return $this->render('create', $params); } /** * 新增执行动作 */ public function actionDoAdd() { $post = Yii::$app->request->post(); if (empty($post)) { return ; } $attrs = [ 'title' => $post['title'], 'cover_img_path' => $post['cover_img_path'], 'is_enable' => $post['is_enable'], 'client' => $post['client'], 'sort_order' => $post['sort_order'], 'link_mode' => $post['link_mode'], 'url' => $post['url'] ?? '', 'appid' => $post['appid'] ?? '', 'path' => $post['path'] ?? '', ]; if (!UserAds::create($attrs)) { Yii::$app->session->setFlash('danger', '广告添加失败'); return ; } Yii::$app->session->setFlash('success', '广告添加成功'); return $this->redirect(['index']); } /** * 更新界面 */ public function actionUpdate($id) { $model = $this->findModel($id); $request = Yii::$app->request; $selectedLinkMode= $request->get('selectedLinkMode'); if (empty($selectedLinkMode)) { $selectedLinkMode = $model->link_mode; } $clientLabels = UserAds::clientLabels(); $selectedClient = $model->client; $linkModes = UserAdsLinkMode::label(); $params = [ 'model' => $model, 'linkModes' => $linkModes, 'selectedLinkMode' => $selectedLinkMode, 'clientLabels' => $clientLabels, 'selectedClient' => $selectedClient, ]; return $this->render('update', $params); } /** * 更新执行动作 */ public function actionDoUpdate($id) { $post = Yii::$app->request->post(); if (empty($post)) { return; } $attrs = [ 'title' => $post['title'], 'cover_img_path' => $post['cover_img_path'], 'is_enable' => $post['is_enable'], 'sort_order' => $post['sort_order'], 'client' => $post['client'], 'link_mode' => $post['link_mode'], 'url' => $post['url'] ?? '', 'appid' => $post['appid'] ?? '', 'path' => $post['path'] ?? '', ]; if (!UserAds::update($id, $attrs)) { Yii::$app->session->setFlash('danger', '广告更新失败'); return ; } Yii::$app->session->setFlash('success', '广告更新成功'); return $this->redirect(['index']); } /** * 删除执行动作 */ public function actionDelete($id) { if (!UserAds::delete($id)) { Yii::$app->session->setFlash('danger', '广告删除失败'); return ; } Yii::$app->session->setFlash('success', '广告删除完成'); return $this->redirect(['index']); } /** * 根据主键查找模型 */ protected function findModel($id) { $userAdsModel = UserAdsRepository::findOne($id); if ($userAdsModel) { return $userAdsModel; } else { throw new NotFoundHttpException('访问页面不存在'); } } /** * 启用或禁用 */ public function actionEnable($id) { $model = $this->findModel($id); $model->is_enable = ($model->is_enable == 1) ? 0 : 1; $model->save(); return $this->redirect(['index']); } /** * 批量启用 */ public function actionBatchEnable($ids) { $_ids = explode(',', $ids); $_ids = array_filter($_ids); foreach ($_ids as $id) { UserAds::enable($id); } Yii::$app->getSession()->setFlash('success', '批量启用成功'); return $this->redirect(['index']); } /** * 批量禁用 */ public function actionBatchDisable($ids) { $_ids = explode(',', $ids); $_ids = array_filter($_ids); foreach ($_ids as $id) { UserAds::disable($id); } Yii::$app->getSession()->setFlash('success', '批量禁用成功'); return $this->redirect(['disabled']); } /** * AJAX * 上传LOGO */ public function actionAjaxUploadLogo() { $request = Yii::$app->request; $id = $request->get("id") ? $request->get("id") : null; $image = $_FILES['logo']; // 图片路径数据整理 $tmp = explode('.', $image['name']); $suffix = end($tmp); $savePath = ImageManager::getUserAdsPath($suffix); if (empty($id)) { ImageManager::add($image["tmp_name"], $savePath); } else { // 已存在的图片进行替换,并执行一次数据save操作,否则在按提交前就会图片丢失 $model = $this->findModel($id); $cover_img_path = $model->cover_img_path; ImageManager::replace($cover_img_path, $savePath, $image["tmp_name"]); UserAds::updateCoverImage($id, $savePath); } /** * 后台操作日志 */ AdminLogs::doImport('广告图片上传', 1); return json_encode([ 'success' => true, 'thumpnailImagePath' => ImageManager::getUrl($savePath), 'imagePath' => $savePath, ]); } }