where('status', 2) ->count(); // 昨日新增发布 $yesterdayArticles = Articles::where('delete_time', null) ->where('status', 2) ->where('publish_date', '>=', $yesterday . ' 00:00:00') ->where('publish_date', '<=', $yesterday . ' 23:59:59') ->count(); // 本月新增发布 $monthNewArticles = Articles::where('delete_time', null) ->where('status', 2) ->where('publish_date', '>=', $monthStart . ' 00:00:00') ->where('publish_date', '<=', $monthEnd) ->count(); // 总点赞量 $totalLikes = Articles::where('delete_time', null) ->where('status', 2) ->sum('likes'); // 总访问量 $totalViews = Articles::where('delete_time', null) ->where('status', 2) ->sum('views'); // 热门内容TOP5 $hotArticles = Articles::where('delete_time', null) ->where('status', 2) ->order('views', 'desc') ->limit(5) ->withAttr('cate', function ($value) { return ArticlesCategory::where('id', $value)->value('name') ?? '未分类'; }) ->field('id,title,cate,views,likes,publish_date,status') ->select(); $stats = [ 'total_articles' => $totalArticles, 'yesterday_articles' => $yesterdayArticles, 'month_articles' => $monthNewArticles, 'total_likes' => (int)$totalLikes, 'total_views' => (int)$totalViews, 'hot_articles' => $hotArticles->toArray() ]; $this->logSuccess('内容统计', '获取内容统计', ['data' => $stats]); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $stats ]); } catch (DbException $e) { $this->logFail('内容统计', '获取内容统计', $e->getMessage()); return json([ 'code' => 500, 'msg' => '获取失败:' . $e->getMessage(), 'data' => [] ]); } } /** * 用户统计 * @return Json */ public function getUserStats() { try { $stats = [ 'total_users' => AdminUser::where('delete_time', null)->count(), ]; // 记录操作日志 $this->logSuccess('用户统计', '获取用户统计', ['data' => $stats]); return json([ 'code' => 200, 'msg' => '获取成功', 'data' => $stats ]); } catch (DbException $e) { // 记录失败日志 $this->logFail('用户统计', '获取用户统计', $e->getMessage()); return json([ 'code' => 500, 'msg' => '获取失败:' . $e->getMessage(), 'data' => [] ]); } } }