From f094f10011174f1eb49bcebd9f86e772bcbcb832 Mon Sep 17 00:00:00 2001 From: xiaochong0302 Date: Mon, 22 May 2023 21:13:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E8=AF=AF=E5=88=A0=E7=9A=84An?= =?UTF-8?q?swerList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- app/Library/Sitemap.php | 2 +- app/Services/Logic/Answer/AnswerList.php | 77 +++++++++++++++++++ .../Logic/Article/ArticleDataTrait.php | 1 - 4 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 app/Services/Logic/Answer/AnswerList.php diff --git a/README.md b/README.md index 05d3b71d..cfc4cf02 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Tips: 请用手机注册一个新账号,用户中心 -> 关注订阅,扫码 ### 项目组件 - 后台框架:[phalcon 3.4.5](https://phalcon.io) -- 前端框架:[layui 2.7.6](https://layui.com) +- 前端框架:[layui 2.8.2](https://layui.com) - 全文检索:[xunsearch 1.4.9](http://www.xunsearch.com) - 即时通讯:[workerman 3.5.22](https://workerman.net) - 基础依赖:[php7.3](https://php.net), [mysql5.7](https://mysql.com), [redis5.0](https://redis.io) diff --git a/app/Library/Sitemap.php b/app/Library/Sitemap.php index 6ba121ed..e857488f 100644 --- a/app/Library/Sitemap.php +++ b/app/Library/Sitemap.php @@ -46,7 +46,7 @@ class Sitemap public function build($filename = null) { $xml = '' . "\n"; - $xml .= '' . "\n"; + $xml .= '' . "\n"; foreach ($this->items as $item) { $item['loc'] = htmlentities($item['loc'], ENT_QUOTES); diff --git a/app/Services/Logic/Answer/AnswerList.php b/app/Services/Logic/Answer/AnswerList.php new file mode 100644 index 00000000..9dab30dc --- /dev/null +++ b/app/Services/Logic/Answer/AnswerList.php @@ -0,0 +1,77 @@ +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; + } + +} diff --git a/app/Services/Logic/Article/ArticleDataTrait.php b/app/Services/Logic/Article/ArticleDataTrait.php index 77b11d93..ef40bdfa 100644 --- a/app/Services/Logic/Article/ArticleDataTrait.php +++ b/app/Services/Logic/Article/ArticleDataTrait.php @@ -120,7 +120,6 @@ trait ArticleDataTrait $tagRepo = new TagRepo(); $tags = $tagRepo->findByIds($newTagIds); if ($tags->count() > 0) { - $articleTags = []; foreach ($tags as $tag) { $articleTags[] = ['id' => $tag->id, 'name' => $tag->name]; $this->recountTagArticles($tag->id);