Esempio n. 1
0
 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, '服务器异常!');
     }
 }
Esempio n. 2
0
 /**
  * 修改问题
  * @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('参数错误!');
         }
     }
 }
Esempio n. 4
0
 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, '请求异常');
     }
 }