From 7e18da80d521336fde96fbe8bbad9bf68cd34055 Mon Sep 17 00:00:00 2001 From: xiaochong0302 Date: Sun, 23 Jul 2023 19:06:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E7=BC=BA=E5=A4=B1=E7=9A=84An?= =?UTF-8?q?swerList.php=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/Logic/Answer/AnswerList.php | 78 ++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 app/Services/Logic/Answer/AnswerList.php diff --git a/app/Services/Logic/Answer/AnswerList.php b/app/Services/Logic/Answer/AnswerList.php new file mode 100644 index 00000000..54761bd7 --- /dev/null +++ b/app/Services/Logic/Answer/AnswerList.php @@ -0,0 +1,78 @@ +getParams(); + + $params['deleted'] = 0; + + $sort = $pagerQuery->getSort(); + $page = $pagerQuery->getPage(); + $limit = $pagerQuery->getLimit(); + + $answerRepo = new AnswerRepo(); + + $pager = $answerRepo->paginate($params, $sort, $page, $limit); + + return $this->handleAnswers($pager); + } + + public function handleAnswers($pager) + { + if ($pager->total_items == 0) { + return $pager; + } + + $builder = new AnswerListBuilder(); + + $answers = $pager->items->toArray(); + + $questions = $builder->getQuestions($answers); + + $users = $builder->getUsers($answers); + + $items = []; + + foreach ($answers as $answer) { + + $question = $questions[$answer['question_id']] ?? new \stdClass(); + $owner = $users[$answer['owner_id']] ?? new \stdClass(); + + $items[] = [ + 'id' => $answer['id'], + 'summary' => $answer['summary'], + 'published' => $answer['published'], + 'accepted' => $answer['accepted'], + 'comment_count' => $answer['comment_count'], + 'like_count' => $answer['like_count'], + 'create_time' => $answer['create_time'], + 'update_time' => $answer['update_time'], + 'question' => $question, + 'owner' => $owner, + ]; + } + + $pager->items = $items; + + return $pager; + } + +}