From 1b97ea5c8bbb66fabcd6b9ded9d27cc003e74305 Mon Sep 17 00:00:00 2001
From: panda <7934952@qq.com>
Date: Mon, 29 Jul 2024 17:17:10 +0800
Subject: [PATCH] add new

---
 routers/statistic.py | 55 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/routers/statistic.py b/routers/statistic.py
index fedf4e2..4dc59f3 100644
--- a/routers/statistic.py
+++ b/routers/statistic.py
@@ -55,4 +55,59 @@ async def get_homepage_data():
     # 合并博客和日记数据,按照创建日期降序排序
     combined_data = sorted(blog_list + diary_list, key=lambda x: x['create_at'], reverse=True)
 
+    return {"data": combined_data}
+
+@router.get("/searchtitle")
+async def search_homepage_data(title: str = Query("", description="Title to search for")):
+    # 查询博客数据
+    select_blog = """
+        SELECT 
+            blogs.id, 
+            blogs.blogtitle, 
+            blogs.blogcontent, 
+            blogs.create_at, 
+            blogs.imglink,
+            blogs.wordcount, 
+            blogtypes.typename, 
+            JSON_ARRAYAGG(labels.labelname) AS labelnames
+        FROM blogs
+        LEFT JOIN blogtypes ON blogs.typeid = blogtypes.id
+        LEFT JOIN blog_label ON blog_label.blogid = blogs.id
+        LEFT JOIN labels ON blog_label.labelid = labels.id
+        WHERE blogs.blogtitle LIKE %s
+        GROUP BY 
+            blogs.id, 
+            blogs.blogtitle, 
+            blogs.blogcontent, 
+            blogs.create_at, 
+            blogs.imglink,
+            blogs.wordcount, 
+            blogtypes.typename
+        ORDER BY create_at DESC
+    """
+    blog_list =fetch_all(select_blog, ('%' + title + '%',))
+
+    # 查询日记数据
+    select_diary = """
+        SELECT 
+            diarys.id, 
+            diarys.diarytitle, 
+            diarys.diarycontent, 
+            diarys.imglink,
+            diarytypes.typename, 
+            diarys.create_at, 
+            diarys.update_at 
+        FROM diarys 
+        LEFT JOIN diarytypes ON diarys.typeid = diarytypes.id
+        WHERE diarys.diarytitle LIKE %s
+        ORDER BY create_at DESC
+    """
+    diary_list =fetch_all(select_diary, ('%' + title + '%',))
+
+    # 合并博客和日记数据,按照创建日期降序排序
+    filtered_blog_list = [item for item in blog_list if item.get('create_at')]
+    filtered_diary_list = [item for item in diary_list if item.get('create_at')]    
+    combined_list = filtered_blog_list + filtered_diary_list
+    combined_data = sorted(combined_list, key=lambda x: x['create_at'], reverse=True)
+
     return {"data": combined_data}
\ No newline at end of file