request; $engineerName = $request->get('engineerName'); $engineerPhone = $request->get('engineerPhone'); /** * 查询过滤处理 */ $get = []; $get['engineerName'] = empty($engineerName) ? "" : $engineerName; $get['engineerPhone'] = empty($engineerPhone) ? "" : $engineerPhone; $query = EngineerAdministratorsModel::find() ->alias("a") ->select(['a.*', 'ep.nickname', 'e.phone','concat(ep.firstname, ep.lastname) as realname']) ->leftJoin(EngineerModel::tableName() . ' e', "a.engineer_id = e.id") ->leftJoin(EngineerProfileModel::tableName() . ' ep', "e.id = ep.engineer_id") ->orderBy('a.id DESC'); if (!empty($engineerName)) { $query->andWhere(['or', ['like', 'concat(ep.firstname, ep.lastname)', $engineerName], ['like', 'ep.nickname', $engineerName]]); } if (!empty($engineerPhone)) { $query->andWhere(['like', 'e.phone', $engineerPhone]); } /** * 分页处理 */ $pageSize = $request->get("pageSize") ? (int)$request->get("pageSize") : 30; $pages = new Pagination(['totalCount' => $query->count(), 'pageSize' => $pageSize]); $dataList = $query->offset($pages->offset)->limit($pages->limit)->asArray()->all(); return $this->render('index', array( 'dataList' => $dataList, 'pages' => $pages, 'gets' => $get )); } /** * 根据主键查找模型 */ protected function findModel($id) { $user = Yii::createObject(EngineerAdministratorsModel::className()); if (($model = $user::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('访问页面不存在'); } } /** * is_order_notify 是否接收订单通知:0-否 1-是 * 启用或禁用 */ public function actionEnableOrderNotify($id) { $model = $this->findModel($id); $model->is_order_notify = ($model->is_order_notify == 1) ? 0 : 1; $model->save(); Yii::$app->session->setFlash('success', '设置成功'); return $this->redirect(['index']); } /** * is_order_share 是否可以分享订单:0-否 1-是 * 启用或禁用 */ public function actionEnableOrderShare($id) { $model = $this->findModel($id); $model->is_order_share = ($model->is_order_share == 1) ? 0 : 1; $model->save(); Yii::$app->session->setFlash('success', '设置成功'); return $this->redirect(['index']); } /** * is_cs_notify 是否可以接收客服通知:0-否 1-是 * 启用或禁用 */ public function actionEnableCsNotify($id) { $model = $this->findModel($id); $model->is_cs_notify = ($model->is_cs_notify == 1) ? 0 : 1; $model->save(); Yii::$app->session->setFlash('success', '设置成功'); return $this->redirect(['index']); } /** * is_activity_notify 是否可以接收营销活动通知:0-否 1-是 * 启用或禁用 */ public function actionEnableActivityNotify($id) { $model = $this->findModel($id); $model->is_activity_notify = ($model->is_activity_notify == 1) ? 0 : 1; $model->save(); Yii::$app->session->setFlash('success', '设置成功'); return $this->redirect(['index']); } /** * 删除工程师 */ public function actionDelete($id) { $result = EngineerAdministratorsModel::deleteAll(["id" => $id]); Yii::$app->session->setFlash('success', '删除成功'); return $this->redirect(['index']); } /** * 添加工程师 */ public function actionDoAdd() { $userId = Yii::$app->request->post("engineer_id"); $engineer = Yii::$app->request->post("engineer"); if ($userId) { $hasExists = EngineerAdministratorsModel::findOne(["engineer_id" => $userId]); if (empty($hasExists)) { $addResult = EngineerAdministrators::Create(["engineer_id" => $userId]); if ($addResult) { Yii::$app->session->setFlash('success', '添加成功'); } else { Yii::$app->session->setFlash('error', '添加失败'); } } else { Yii::$app->session->setFlash('error', "工程师($engineer)添加失败,因为之前已经添加"); } } else { Yii::$app->session->setFlash('error', '添加失败'); } return $this->redirect(['index']); } /** 搜索可收信息工程师 * @return string */ public function actionSearchEngineer() { $e = new stdClass(); $e->success = false; $e->list = []; $req = Yii::$app->request; $keyword = $req->post('query'); $keyword = str_replace(array(" ", " ", "\t", "\n", "\r"), '', $keyword); $engineerModel = EngineerModel::find(); $engineerModel->leftJoin('engineer_profile', "engineer.id = engineer_profile.engineer_id"); $engineerModel->select(['engineer.id as id', 'engineer.phone as phone', 'engineer_profile.nickname as nickname', 'concat(engineer_profile.firstname,engineer_profile.lastname) as name']); if (!empty($keyword)) { $engineerModel->where(['or', ['like', 'engineer.phone', $keyword], ['like', 'engineer_profile.nickname', $keyword], ['like', 'concat(engineer_profile.firstname,engineer_profile.lastname)', $keyword]]); } $engineerModel->andWhere(['engineer.subscribe' => 1]); $engineerModel->andWhere("ifnull(engineer.phone,'') <> ''"); $engineerModel->asArray(); $engineerModel->limit(10); $engineerList = $engineerModel->all(); $e->success = true; $e->list = $engineerList; return $this->renderJson($e); } }