/** * 添加问题 * @date: 2016-1-15 * @author: futao */ public function addquestionAction() { $this->setLeftNav('addquestion'); $req = $this->request; if (!$req->isPost()) { $userList = UserBase::find("is_manage = 1"); $tag = BeautyParlorTagInfo::find("parent_id != 0 and tag_state = 1"); $this->view->setVar('city_list', $this->openCityList()); $this->view->setVar('userlist', $userList); $this->view->setVar('tag', $tag); $this->view->pick("question/add"); return; } $this->view->disable(); $echo = function ($msg, $state = false) { echo '<script type="text/javascript">'; echo 'parent.formResult("' . $msg . '", ' . ($state ? 1 : 0) . ')'; echo '</script>'; }; $questionContent = $req->getPost('question_content', null, ''); $questionTag = $req->getPost('question_tag', null, ''); $questionBrowsers = intval($req->getPost('question_browsers', null, 0)); $userId = intval($req->getPost('user_id', null, 0)); $cityCode = intval($req->getPost('city_id', null, 0)); if ($userId < 0 || $questionBrowsers < 0) { $echo("添加失败!"); return; } if (is_array($questionTag)) { foreach ($questionTag as $val) { $tagArr = explode(',', $val); $tagName = $tagArr[1]; $tagNameArr[] = $tagName; } } else { $echo("标签必选!"); return; } $questionModel = new Question(); //保存图片 if ($_FILES['q_photos']['name'][0] != '') { $uploadFile = new UploadPic(); $uploadFile->request = $req; $questionPics = $uploadFile->questionPic(); $questionModel->question_pics = json_encode($questionPics); } else { $questionModel->question_pics = json_encode([]); } $questionModel->question_content = $questionContent; $questionModel->city_code = $cityCode; $questionModel->question_browsers = $questionBrowsers; $questionModel->question_tag = json_encode($tagNameArr); $questionModel->user_id = $userId; if (!$questionModel->save()) { $echo("添加失败!"); return; } if ($questionTag != '' && is_array($questionTag)) { unset($tagNameArr); unset($tagName); unset($tagArr); foreach ($questionTag as $val) { unset($tagId); unset($tagName); $tagArr = explode(',', $val); $tagId = $tagArr[0]; $tagName = $tagArr[1]; $tagNameArr[] = $tagName; $questionTagModel = new QuestionTag(); $questionTagModel->question_id = $questionModel->question_id; $questionTagModel->tag_id = $tagId; $questionTagModel->tag_name = $tagName; if ($questionTagModel->save()) { $echo("添加成功!", true); } } } else { $echo("添加失败!"); return; } }
public function updateAction() { $req = $this->request; if (!$req->isPost()) { $id = intval($req->getQuery('id', null, 0)); $tagTitle = ''; $tagOrder = 0; if ($id > 0) { $info = QuestionTag::findFirst('tag_id=' . $id); if ($info) { $tagTitle = $info->tag_title; $tagOrder = $info->tag_order; } } $this->view->setVar('id', $id); $this->view->setVar('tagTitle', $tagTitle); $this->view->setVar('tagOrder', $tagOrder); return; } $response = new ResponseResult(); $response->callback = $req->getPost('callback', null, 'parent.setFormResult'); $response->callbackJavascriptTag = true; $id = intval($req->getPost('tag_id', null, 0)); $title = $req->getPost('tag_title'); $order = intval($req->getPost('tag_order', null, '-10000')); // 通过名称查找,是否存在 $exist = function ($title, $id) { $existInfo = QuestionTag::query()->columns('*')->where('tag_title = :title:', ['title' => $title])->limit(1)->execute()->getFirst(); if ($existInfo && $existInfo->tag_id != $id) { return true; } return false; }; if ($id > 0) { // 修改 $info = QuestionTag::findFirst('tag_id=' . $id); if (!$info) { $response->sendError(ResponseResultStatus::ERROR, '分类不存在!'); return $response; } if ($exist($title, $id)) { $response->sendError(ResponseResultStatus::ERROR, '名称已经存在了!'); return $response; } $data = []; if ($info->tag_title != $title) { $data['tag_title'] = $title; } if ($order > -1) { $data['tag_order'] = $order; } if (count($data) > 0) { $info->update($data); } } else { // 添加 if ($exist($title, $id)) { $response->sendError(ResponseResultStatus::ERROR, '名称已经存在了!'); return $response; } $tag = new QuestionTag(); $tag->tag_title = $title; $tag->tag_order = $order; if (!$tag->save()) { $this->databaseErrorLog($tag); $response->sendError(ResponseResultStatus::DATABASE_ERROR, '保存数据异常!'); return $response; } } $response->sendResult('ok'); return $response; }