Selaa lähdekoodia

/tasks接口修改

jihuaqiang 4 kuukautta sitten
vanhempi
commit
55a4ca9d42
2 muutettua tiedostoa jossa 34 lisäystä ja 2 poistoa
  1. 9 2
      src/api/main.py
  2. 25 0
      src/database/models.py

+ 9 - 2
src/api/main.py

@@ -209,7 +209,8 @@ async def get_tasks(status: int = None, page_number: int = 1, page_size: int = 1
     
     Args:
         status: 任务状态筛选(可选)
-        limit: 限制数量
+        page_number: 页码
+        page_size: 每页数量
         
     Returns:
         任务列表
@@ -220,7 +221,11 @@ async def get_tasks(status: int = None, page_number: int = 1, page_size: int = 1
         raise HTTPException(status_code=503, detail="数据库未初始化")
     
     try:
+        # 获取任务列表
         tasks = task_dao.get_tasks_by_status(status, page_number, page_size)
+        # 获取符合条件的总数
+        total = task_dao.get_tasks_count(status)
+        
         return {
             "tasks": [
                 {
@@ -237,7 +242,9 @@ async def get_tasks(status: int = None, page_number: int = 1, page_size: int = 1
                 }
                 for task in tasks
             ],
-            "total": len(tasks)
+            "page_number": page_number,
+            "page_size": page_size,
+            "total": total
         }
         
     except Exception as e:

+ 25 - 0
src/database/models.py

@@ -192,6 +192,31 @@ class QueryTaskDAO:
             logger.error(f"获取任务失败: {e}")
             return None
     
+    def get_tasks_count(self, status: Optional[int] = None) -> int:
+        """
+        获取任务总数
+        
+        Args:
+            status: 任务状态(可选,不传则统计所有状态)
+            
+        Returns:
+            任务总数
+        """
+        try:
+            with self.db_manager.get_cursor() as cursor:
+                if status is not None:
+                    sql = "SELECT COUNT(*) as count FROM knowledge_suggest_query WHERE status = %s"
+                    cursor.execute(sql, (status,))
+                else:
+                    sql = "SELECT COUNT(*) as count FROM knowledge_suggest_query"
+                    cursor.execute(sql)
+                
+                result = cursor.fetchone()
+                return result['count'] if result else 0
+        except Exception as e:
+            logger.error(f"获取任务总数失败: {e}")
+            return 0
+    
     def get_tasks_by_status(self, status: Optional[int] = None, page_number: int = 1, page_size: int = 10) -> List[KnowledgeSuggestQuery]:
         """
         根据状态获取任务列表