@ -13,8 +13,11 @@ from dependencies import get_current_active_user
router = APIRouter ( prefix = " /blogs " , tags = [ " 博客管理 " ] )
router = APIRouter ( prefix = " /blogs " , tags = [ " 博客管理 " ] )
# 获取列表
# 获取列表
@router.get ( " /list " )
@router.get ( " /list " )
async def blog_list ( ) :
async def blog_list ( ) :
# 列表参数:博客名称、博客内容、创建时间、博客图片、博客查看时间、博客阅读次数、博客字数、类型名称、标签名列表
select_query = """
select_query = """
SELECT blogs . blogtitle , blogs . blogcontent , blogs . create_at , blogs . img ,
SELECT blogs . blogtitle , blogs . blogcontent , blogs . create_at , blogs . img ,
blogs . readminite , blogs . readnum , blogs . wordcount , types . typename ,
blogs . readminite , blogs . readnum , blogs . wordcount , types . typename ,
@ -23,8 +26,9 @@ FROM blogs
LEFT JOIN `types` ON blogs . typeid = types . id
LEFT JOIN `types` ON blogs . typeid = types . id
LEFT JOIN blog_label ON blog_label . blogid = blogs . id
LEFT JOIN blog_label ON blog_label . blogid = blogs . id
LEFT JOIN labels ON blog_label . labelid = labels . id
LEFT JOIN labels ON blog_label . labelid = labels . id
GROUP BY blogs . blogtitle , blogs . blogcontent , blogs . create_at , blogs . img ,
GROUP BY blogs . blogtitle , blogs . blogcontent , blogs . create_at , blogs . img ,
blogs . readminite , blogs . readnum , blogs . wordcount , types . typename ;
blogs . readminite , blogs . readnum , blogs . wordcount , types . typename ORDER BY create_at DESC ;
"""
"""
@ -80,7 +84,14 @@ async def blog_list_search(
start_date : str = Query ( None , description = " 开始时间 " ) ,
start_date : str = Query ( None , description = " 开始时间 " ) ,
end_date : str = Query ( None , description = " 结束时间 " ) ,
end_date : str = Query ( None , description = " 结束时间 " ) ,
) :
) :
select_query = " SELECT blogs.id, blogtitle, blogcontent, typename, create_at, update_at, blogs.descr FROM blogs LEFT JOIN `types` ON blogs.typeid = types.id WHERE 1=1 "
select_query = """
SELECT blogs . id , blogtitle , blogcontent , wordcount , typename , create_at , update_at , blogs . descr , JSON_ARRAYAGG ( labels . labelname ) AS labelnames
FROM blogs
LEFT JOIN `types` ON blogs . typeid = types . id
LEFT JOIN blog_label ON blogs . id = blog_label . blogid
LEFT JOIN labels ON blog_label . labelid = labels . id
WHERE 1 = 1
"""
params = [ ]
params = [ ]
if blogtitle :
if blogtitle :
select_query + = " AND blogtitle LIKE %s "
select_query + = " AND blogtitle LIKE %s "
@ -94,7 +105,7 @@ async def blog_list_search(
if end_date :
if end_date :
select_query + = " AND create_at <= %s "
select_query + = " AND create_at <= %s "
params . append ( end_date )
params . append ( end_date )
select_query + = " ORDER BY create_at DESC "
select_query + = " GROUP BY blogs.id, blogs.blogtitle, blogs.blogcontent,blogs.wordcount, types.typename, blogs.create_at, blogs.update_at, blogs.descr ORDER BY create_at DESC"
blog_list = fetch_all ( select_query , params = params , fetchall = True )
blog_list = fetch_all ( select_query , params = params , fetchall = True )
return response_success ( data = blog_list , message = " blog serach succuessfully! " )
return response_success ( data = blog_list , message = " blog serach succuessfully! " )