|
|
@@ -192,21 +192,31 @@ class QueryTaskDAO:
|
|
|
logger.error(f"获取任务失败: {e}")
|
|
|
return None
|
|
|
|
|
|
- def get_tasks_by_status(self, status: int, limit: int = 100) -> List[KnowledgeSuggestQuery]:
|
|
|
+ def get_tasks_by_status(self, status: Optional[int] = None, page_number: int = 1, page_size: int = 10) -> List[KnowledgeSuggestQuery]:
|
|
|
"""
|
|
|
根据状态获取任务列表
|
|
|
|
|
|
Args:
|
|
|
- status: 任务状态
|
|
|
- limit: 限制数量
|
|
|
+ status: 任务状态(可选,不传则查询所有状态)
|
|
|
+ page_number: 页码
|
|
|
+ page_size: 每页数量
|
|
|
|
|
|
Returns:
|
|
|
任务列表
|
|
|
"""
|
|
|
try:
|
|
|
with self.db_manager.get_cursor() as cursor:
|
|
|
- sql = "SELECT * FROM knowledge_suggest_query WHERE status = %s ORDER BY task_id DESC LIMIT %s"
|
|
|
- cursor.execute(sql, (status, limit))
|
|
|
+ # 计算偏移量
|
|
|
+ offset = (page_number - 1) * page_size
|
|
|
+
|
|
|
+ # 根据是否传入status动态构建SQL
|
|
|
+ if status is not None:
|
|
|
+ sql = "SELECT * FROM knowledge_suggest_query WHERE status = %s ORDER BY task_id DESC LIMIT %s OFFSET %s"
|
|
|
+ cursor.execute(sql, (status, page_size, offset))
|
|
|
+ else:
|
|
|
+ sql = "SELECT * FROM knowledge_suggest_query ORDER BY task_id DESC LIMIT %s OFFSET %s"
|
|
|
+ cursor.execute(sql, (page_size, offset))
|
|
|
+
|
|
|
results = cursor.fetchall()
|
|
|
|
|
|
return [KnowledgeSuggestQuery.from_dict(row) for row in results]
|