From 42a165557e1904de11df0b19554a3daa62ae02e9 Mon Sep 17 00:00:00 2001 From: jingrow Date: Tue, 11 Nov 2025 22:20:07 +0800 Subject: [PATCH] fix Local Job pagination and total count --- apps/jingrow/jingrow/api/local_jobs.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/apps/jingrow/jingrow/api/local_jobs.py b/apps/jingrow/jingrow/api/local_jobs.py index 4f46467..69059a7 100644 --- a/apps/jingrow/jingrow/api/local_jobs.py +++ b/apps/jingrow/jingrow/api/local_jobs.py @@ -63,11 +63,14 @@ async def get_local_jobs( # 构建请求参数 + offset = (page - 1) * page_length params = { 'page': page, 'page_length': page_length, 'order_by': order_by, - 'start': (page - 1) * page_length + 'start': offset, + 'limit_start': offset, + 'limit_page_length': page_length, } if filters: @@ -88,14 +91,21 @@ async def get_local_jobs( if isinstance(data, list): # 如果data直接是数组 items = data - total = len(data) elif isinstance(data, dict): # 如果data是对象,尝试获取data字段 items = data.get('data', []) - total = data.get('total', len(items)) else: items = [] - total = 0 + + # 获取总数:优先使用响应中提供的字段,否则调用统计接口 + possible_total = 0 + if isinstance(data, dict): + possible_total = data.get('total') or data.get('count') or data.get('total_count') or 0 + + if possible_total: + total = int(possible_total) + else: + total = get_local_job_count() return { "success": True,