feat:增加分页条件查询博客接口

This commit is contained in:
2025-11-04 15:55:42 +08:00
parent a698267d9e
commit 8650f92259
2 changed files with 24 additions and 3 deletions

View File

@@ -44,6 +44,12 @@ def query_blog_by_page(db: Session, current_page: int = 1, page_size: int = 10,
def query_blog_by_condition(db: Session, blog_query: BlogQuery) -> List[BlogResponse]:
stmt = get_query_blog_by_condition_stmt(blog_query)
results = db.execute(stmt).fetchall()
return [BlogResponse.model_validate(result) for result in results]
def get_query_blog_by_condition_stmt(blog_query: BlogQuery):
stmt = (select(
Blog.id,
Blog.title,
@@ -54,12 +60,15 @@ def query_blog_by_condition(db: Session, blog_query: BlogQuery) -> List[BlogResp
BlogContent.content.label("content"),
Blog.word_count.label("wordCount"),
Blog.read_duration.label("readDuration"),
func.count(BlogVisit.id).label("visitCount"),
Blog.is_approved.label("isApproved"),
Blog.create_time.label("createTime"),
Blog.update_time.label("updateTime")
).where(Blog.is_approved == 1)
.outerjoin(BlogCategory, Blog.category_id == BlogCategory.id)
.outerjoin(BlogContent, Blog.content_id == BlogContent.id))
.outerjoin(BlogContent, Blog.content_id == BlogContent.id)
.outerjoin(BlogVisit, Blog.id == BlogVisit.blog_id)
.group_by(Blog.id))
conditions = []
@@ -77,9 +86,13 @@ def query_blog_by_condition(db: Session, blog_query: BlogQuery) -> List[BlogResp
stmt = stmt.order_by(desc(Blog.is_great), desc(Blog.update_time))
results = db.execute(stmt).fetchall()
return stmt
return [BlogResponse.model_validate(result) for result in results]
def query_blog_by_condition_page(db: Session, blog_query: BlogQuery,
current_page: int = 1, page_size: int = 10) -> PageResult[BlogResponse]:
stmt = get_query_blog_by_condition_stmt(blog_query)
return paginate_query(db, stmt, current_page, page_size)
def query_unapproved_blog(db: Session) -> List[BlogResponse]: