public function run() { /** * 验证用户权限 */ if (false == $this->verifyUserAuth()) { return false; } $questionId = intval($this->getDataItem('question_id', 0)); $answer_id = intval($this->getDataItem('answer_id', 0)); $content = Keyword::Filter($this->getDataItem('content', '')); $user_id = intval($this->getDataItem('user_id', 0)); $to_user_id = intval($this->getDataItem('to_user_id', 0)); if ($questionId == 0 || empty($content) || $user_id == 0 || $to_user_id == 0 || $user_id == $to_user_id) { return $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, '缺少参数或参数错误,请检查!'); } if (mb_strlen($content) > 300) { return $this->errorLog(ResultStatus::POST_BODY_FORMAT_ERROR, '回复内容长度不能超过300字符'); } // 身份检查 if ($Question = Question::findFirst('question_id = ' . $questionId)) { $questionData = $Question->toArray(); } else { $questionData = []; } $UserBase = new UserBase(); if (!($questionData['user_id'] == $user_id || $UserBase->is_expert($user_id))) { return $this->errorLog(ResultStatus::QUERY_DATA_NOT_EXIST, '您没有权限评论!'); } //关键字替换 $keyword = CosQKeyword::query()->execute()->toArray(); foreach ($keyword as $k => $v) { $content = str_replace($v['keyword'], '***', $content); } if (!$answer_id) { // 获取回复的id $QuestionAnswer = \Apps\Common\Models\QuestionAnswer::query()->where("question_id = {$questionId} and user_id = {$user_id}")->execute()->getFirst(); $answer_id = $QuestionAnswer->answer_id ?: 0; } $up = new UploadPic(); $data = ['question_id' => $questionId, 'answer_id' => $answer_id, 'content' => $content, 'pics' => json_encode($up->questionPic()), 'user_id' => $user_id, 'to_user_id' => $to_user_id, 'add_time' => date('Y-m-d H:i:s')]; $QuestionAnswerComments = new QuestionAnswerComments(); if ($QuestionAnswerComments->save($data)) { $this->setResult(['success' => 1, 'message' => '评论成功!']); } else { return $this->errorLog(ResultStatus::DATABASE_ERROR, '服务器异常!'); } }
/** * 修改问题 * @date: 2016-1-12 * @author: futao */ public function editAction() { $this->setLeftNav('edit'); $req = $this->request; if (!$req->isPost()) { $id = intval($req->getQuery('id', null, 0)); if ($id != '') { $info = Question::findFirst('question_id = ' . $id . ' and question_state = 1'); } if (!$info) { echo "无效!"; exit; } $user = UserBase::findFirst('user_id =' . $info->user_id); if (unserialize(base64_decode($info->question_content))) { $info->question_content = unserialize(base64_decode($info->question_content)); } if (json_decode($info->question_pics)) { $info->question_pics = json_decode($info->question_pics); } //全部标签 $allTag = BeautyParlorTagInfo::find("parent_id != 0"); //已选择标签 $questionTag = QuestionTag::find('question_id = ' . $info->question_id); //选择的标签转换成字符串 foreach ($questionTag as $k => $v) { if ($k == 0) { $tagIds = $v->tag_id; } else { $tagIds = $tagIds . "," . $v->tag_id; } } $this->view->setVar('question_tag', $questionTag); $this->view->setVar('alltag', $allTag); $this->view->setVar('user', $user); $this->view->setVar('info', $info); $this->view->setVar('tagids', $tagIds); return; } $this->view->disable(); $echo = function ($msg, $state = false) { echo '<script type="text/javascript">'; echo 'parent.formResult("' . $msg . '", ' . ($state ? 1 : 0) . ')'; echo '</script>'; }; $question_id = $req->getPost('question_id', null, 0); $question_browsers = $req->getPost('question_browsers', null, 0); $questionTag = $req->getPost('question_tag', null, ''); //修改标签 if ($questionTag != '' && is_array($questionTag)) { QuestionTag::find("question_id = {$question_id}")->delete(); 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 = $question_id; $questionTagModel->tag_id = $tagId; $questionTagModel->tag_name = $tagName; $questionTagModel->save(); } } $allTag = BeautyParlorTagInfo::find("parent_id != 0")->toArray(); if ($question_id > 0 && $question_browsers >= 0) { $questionModel = Question::findFirst("question_id = {$question_id} and question_state = 1"); //////////////////////////question_tag字段重新赋值 if (json_decode($questionModel->question_tag)) { $questionTagArr = json_decode($questionModel->question_tag); foreach ($allTag as $k => $v) { foreach ($questionTagArr as $key => $val) { if ($questionTagArr[$key] == $allTag[$k]['tag_title']) { unset($questionTagArr[$key]); } } } } $questionTagArr = array_values($questionTagArr); foreach ($tagNameArr as $v) { $questionTagArr[] = $v; } //////////////////////////////////////////////////////////// $questionModel->question_tag = json_encode(array_unique($questionTagArr)); $questionModel->question_browsers = $question_browsers; if ($questionModel->save()) { $echo("修改成功!", true); } else { $echo("修改失败!"); } } else { $echo("参数错误!"); } }
/** * 回答问题 * @date: 2016-1-16 * @author: futao */ public function addanswerAction() { $this->view->disable(); $req = $this->request; $type = $req->getPost('type', null, 0); //1:回复楼主 3:回复网友 $userId = intval($req->getPost('user_id', null, 0)); $answerId = intval($req->getPost('answer', null, 0)); $questionId = intval($req->getPost('question_id', null, 0)); $content = $req->getPost('content', null, ''); $echo = function ($msg, $state = false) { echo '<script type="text/javascript">'; echo 'parent.formResult("' . $msg . '", ' . ($state ? 1 : 0) . ')'; echo '</script>'; }; if ($type == 3) { if ($answerId < 0) { $echo("参数错误!"); return; } } if ($questionId < 0 || $userId < 0) { $echo('参数错误!'); return; } $floor = QuestionAnswer::query()->where("question_id = {$questionId}")->orderBy("answer_id desc")->execute()->getFirst(); if (!floor) { $floor = json_encode(['answer_floor' => 0]); } Question::findFirst($questionId)->update(['is_manager_reply' => 1]); $uploadModel = new UploadPic(); $uploadModel->request = $req; $picArr = $uploadModel->questionPic(); if ($type == 1) { $questionModel = new QuestionAnswer(); $questionModel->answer_floor = $floor->answer_floor + 1; $questionModel->answer_content = base64_encode(serialize($content)); $questionModel->user_id = $userId; $questionModel->question_id = $questionId; $questionModel->answer_state = 1; $questionModel->type = 0; $questionModel->answer_pics = json_encode($picArr); if ($questionModel->save()) { $echo("回复成功!", true); } } else { if ($type == 3) { $answerInfo = QuestionAnswer::findFirst($answerId); $questionModel = new QuestionAnswer(); $questionModel->answer_floor = $floor->answer_floor + 1; $questionModel->answer_content = base64_encode(serialize($content)); $questionModel->user_id = $userId; $questionModel->question_id = $questionId; $questionModel->answer_state = 1; $questionModel->type = 0; $questionModel->answer_pics = json_encode($picArr); $questionModel->original_content = $answerInfo->answer_content; if ($questionModel->save()) { $echo('回复成功!', true); } } else { $echo('参数错误!'); } } }
public function setStateAction() { $req = $this->request; if ($req->isPost()) { $id = intval($req->getPost('id', null, 0)); $state = intval($req->getPost('state', null, -10000)); if (!in_array($state, [-1, 0, 1])) { return (new ResponseResult())->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '请求异常'); } $info = Question::findFirst('question_id=' . $id); if ($info) { $info->update(['question_state' => $state]); } return (new ResponseResult())->sendResult('ok'); } else { return (new ResponseResult())->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '请求异常'); } }