feat:更新博客统计模块

This commit is contained in:
2025-10-26 20:00:56 +08:00
parent f6d1096dbc
commit 02983a882d

View File

@@ -1,7 +1,7 @@
from typing import List
from fastapi import Request
from sqlalchemy import select, func, desc, and_, asc, delete
from sqlalchemy import select, func, desc, and_, asc, delete, distinct
from sqlalchemy.orm import Session
from models.blog import Blog, BlogCategory, BlogVisit, BlogContent, BlogComment
@@ -235,10 +235,19 @@ def query_blog_category(db: Session) -> List[BlogCategoryResponse]:
def query_blog_stats(db: Session) -> BlogStatsResponse:
blog_count_stmt = select(func.count(Blog.id)).where(Blog.is_approved == 1)
blog_count = db.execute(blog_count_stmt).scalar() or 0
word_count_stmt = select(func.sum(Blog.word_count)).where(Blog.is_approved == 1)
word_count = db.execute(word_count_stmt).scalar() or 0
category_count_stmt = select(func.count(distinct(Blog.category_id))).where(Blog.is_approved == 1)
category_count = db.execute(category_count_stmt).scalar() or 0
return BlogStatsResponse(
blogCount=db.query(Blog).count(),
categoryCount=db.query(BlogCategory).count(),
wordCount=db.query(func.sum(Blog.word_count)).scalar()
blogCount=blog_count,
categoryCount=category_count,
wordCount=word_count
)