/** * 问答详情 * @date: 2016-1-16 * @author: futao */ public function infoAction() { $this->setLeftNav("info"); $req = $this->request; $questionId = intval($req->getQuery('id', null, 0)); if ($questionId < 0) { echo "参数错误!"; return; } $questionColumns = ['ub.user_id', 'ub.user_nickname', 'ub.user_cover', 'Apps\\Common\\Models\\Question.user_id', 'Apps\\Common\\Models\\Question.question_content', 'Apps\\Common\\Models\\Question.question_pics', 'Apps\\Common\\Models\\Question.question_addtime', 'Apps\\Common\\Models\\Question.question_browsers', 'Apps\\Common\\Models\\Question.question_id']; $info = Question::query()->columns($questionColumns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\Question.user_id', 'ub')->where("Apps\\Common\\Models\\Question.question_id = {$questionId} and Apps\\Common\\Models\\Question.question_state = 1")->execute()->getFirst(); if (!$info) { echo "问题不存在!"; exit; } $info->user_cover = PicUrl::UserCover($info->user_cover, $this->di); 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); } $answerColumns = ['ub.user_nickname', 'ub.user_cover', 'Apps\\Common\\Models\\QuestionAnswer.answer_content', 'Apps\\Common\\Models\\QuestionAnswer.answer_addtime', 'Apps\\Common\\Models\\QuestionAnswer.answer_id', 'Apps\\Common\\Models\\QuestionAnswer.original_content', 'Apps\\Common\\Models\\QuestionAnswer.answer_pics', 'Apps\\Common\\Models\\QuestionAnswer.type', 'Apps\\Common\\Models\\QuestionAnswer.user_id']; $answerList = QuestionAnswer::query()->columns($answerColumns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionAnswer.user_id', 'ub')->where("Apps\\Common\\Models\\QuestionAnswer.question_id = {$questionId} and Apps\\Common\\Models\\QuestionAnswer.answer_state = 1")->orderBy("Apps\\Common\\Models\\QuestionAnswer.answer_floor asc")->execute()->toArray(); foreach ($answerList as $k => $val) { if (unserialize(base64_decode($answerList[$k]['answer_content']))) { $answerList[$k]['answer_content'] = unserialize(base64_decode($answerList[$k]['answer_content'])); } if (unserialize(base64_decode($answerList[$k]['original_content']))) { $answerList[$k]['original_content'] = unserialize(base64_decode($answerList[$k]['original_content'])); } if (json_decode($answerList[$k]['answer_pics'])) { $answerList[$k]['answer_pics'] = json_decode($answerList[$k]['answer_pics']); } if ($answerList[$k]['type'] == 1) { $answerList[$k]['reply'] = QuestionAnswerComments::query()->columns(['ub.user_nickname', 'ub.user_cover', 'ub.user_id', 'content', 'add_time', 'id'])->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionAnswerComments.user_id', 'ub')->where("question_id = {$questionId} and answer_id = " . $answerList[$k]['answer_id'] . " and to_user_id = " . $answerList[$k]['user_id'])->orderBy("id desc")->execute()->toArray(); } $answerList[$k]['user_cover'] = PicUrl::UserCover($answerList[$k]['user_cover'], $this->di); } $userList = UserBase::find("is_manage = 1"); $seeList = QuestionViewsUser::query()->columns(['distinct ub.user_id', 'ub.user_cover'])->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionViewsUser.user_id', 'ub')->where("question_id = {$questionId}")->orderBy("id desc")->limit(7)->execute(); $this->view->setVar('seelist', $seeList); $this->view->setVar('comment_count', QuestionAnswer::count('answer_state = 1 and question_id = ' . $questionId)); $this->view->setVar('question_id', $questionId); $this->view->setVar('userlist', $userList); $this->view->setVar('questioninfo', $info); $this->view->setVar('answerlist', $answerList); $this->view->pick('question/info'); }
/** * 答案列表 * @date: 2016年1月19日 * @author: futao */ public function answerListAction() { $this->setLeftNav('answer_list'); $req = $this->request; $id = intval($req->getQuery('id', null, 0)); if ($id <= 0) { $this->view->disable(); echo '问题不存在!'; return; } $page = intval($req->getQuery('page', null, 1)); $page = $page > 0 ? $page : 1; $limit = $this->pageNavLimit; $offset = $limit * ($page - 1); $columns = ['question_id', 'answer_id', 'ub.user_id', 'user_nickname', 'user_cover', 'answer_floor', 'answer_content', 'answer_pics', 'answer_follows', 'answer_state', 'answer_addtime']; $list = QuestionAnswer::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\UserBase', 'ub.user_id = Apps\\Common\\Models\\QuestionAnswer.user_id', 'ub')->where('question_id = :id:', ['id' => $id])->orderBy('answer_id ASC')->limit($limit, $offset)->execute()->toArray(); foreach ($list as $k => $v) { //答案解码 if (unserialize(base64_decode($list[$k]['answer_content']))) { $list[$k]['answer_content'] = unserialize(base64_decode($list[$k]['answer_content'])); } } $this->view->setVar('page', $page); $this->view->setVar('limit', $limit); $this->view->setVar('total', QuestionAnswer::count('question_id = ' . $id)); $this->view->setVar('data', $list); $this->view->setVar('id', $id); }