diff --git a/app/Caches/ModerationStat.php b/app/Caches/ModerationStat.php index 518b76f3..db625365 100644 --- a/app/Caches/ModerationStat.php +++ b/app/Caches/ModerationStat.php @@ -24,10 +24,14 @@ class ModerationStat extends Cache $statRepo = new StatRepo(); $articleCount = $statRepo->countPendingArticles(); + $questionCount = $statRepo->countPendingQuestions(); + $answerCount = $statRepo->countPendingAnswers(); $commentCount = $statRepo->countPendingComments(); return [ 'article_count' => $articleCount, + 'question_count' => $questionCount, + 'answer_count' => $answerCount, 'comment_count' => $commentCount, ]; } diff --git a/app/Http/Admin/Services/Index.php b/app/Http/Admin/Services/Index.php index bb529fb8..4749042a 100644 --- a/app/Http/Admin/Services/Index.php +++ b/app/Http/Admin/Services/Index.php @@ -2,11 +2,11 @@ namespace App\Http\Admin\Services; -use App\Caches\ModerationStat; use App\Caches\SiteGlobalStat; use App\Caches\SiteTodayStat; use App\Library\AppInfo; use App\Library\Utils\ServerInfo; +use App\Repos\Stat as StatRepo; use GuzzleHttp\Client; class Index extends Service @@ -56,9 +56,19 @@ class Index extends Service public function getModerationStat() { - $cache = new ModerationStat(); + $statRepo = new StatRepo(); - return $cache->get(); + $articleCount = $statRepo->countPendingArticles(); + $questionCount = $statRepo->countPendingQuestions(); + $answerCount = $statRepo->countPendingAnswers(); + $commentCount = $statRepo->countPendingComments(); + + return [ + 'article_count' => $articleCount, + 'question_count' => $questionCount, + 'answer_count' => $answerCount, + 'comment_count' => $commentCount, + ]; } public function getReleases() diff --git a/app/Http/Admin/Views/index/main_mod_stat.volt b/app/Http/Admin/Views/index/main_mod_stat.volt index 60c96ce2..f9c5a1ba 100644 --- a/app/Http/Admin/Views/index/main_mod_stat.volt +++ b/app/Http/Admin/Views/index/main_mod_stat.volt @@ -14,7 +14,7 @@
提问
- 0 + {{ mod_stat.question_count }}
@@ -22,7 +22,7 @@
回答
- 0 + {{ mod_stat.answer_count }}
diff --git a/app/Repos/Stat.php b/app/Repos/Stat.php index 127e7a76..ae8aa260 100644 --- a/app/Repos/Stat.php +++ b/app/Repos/Stat.php @@ -2,12 +2,14 @@ namespace App\Repos; +use App\Models\Answer as AnswerModel; use App\Models\Article as ArticleModel; use App\Models\Comment as CommentModel; use App\Models\Online as OnlineModel; use App\Models\Order as OrderModel; use App\Models\OrderStatus as OrderStatusModel; use App\Models\PointRedeem as PointRedeemModel; +use App\Models\Question as QuestionModel; use App\Models\Refund as RefundModel; use App\Models\User as UserModel; use Phalcon\Mvc\Model\Resultset; @@ -24,6 +26,22 @@ class Stat extends Repository ]); } + public function countPendingQuestions() + { + return (int)ArticleModel::count([ + 'conditions' => 'published = :published: AND deleted = 0', + 'bind' => ['published' => QuestionModel::PUBLISH_PENDING], + ]); + } + + public function countPendingAnswers() + { + return (int)AnswerModel::count([ + 'conditions' => 'published = :published: AND deleted = 0', + 'bind' => ['published' => AnswerModel::PUBLISH_PENDING], + ]); + } + public function countPendingComments() { return (int)CommentModel::count([