From 1b2db3de818beed226be411507859bcecfcc498c Mon Sep 17 00:00:00 2001 From: jingrow Date: Sat, 25 Oct 2025 16:43:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96page.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jingrow/jingrow/api/page.py | 61 ++++---------------------------- 1 file changed, 7 insertions(+), 54 deletions(-) diff --git a/apps/jingrow/jingrow/api/page.py b/apps/jingrow/jingrow/api/page.py index e8bffdf..2c3460f 100644 --- a/apps/jingrow/jingrow/api/page.py +++ b/apps/jingrow/jingrow/api/page.py @@ -57,14 +57,9 @@ async def get_records( ): """获取记录列表""" try: - logger.info(f"获取记录列表: {pagetype}") - - # 解析参数 fields_list = json.loads(fields) if fields else [] filters_list = json.loads(filters) if filters else [] - # 使用现有的 get_record_list 函数 - # 注意:get_record_list 使用 limit 参数,我们需要适配 limit = limit_start + limit_page_length if limit_page_length > 0 else None result = get_record_list( @@ -76,16 +71,14 @@ async def get_records( if result.get('success'): data = result.get('data', []) - # 处理分页:如果指定了 limit_start,需要截取数据 if limit_start > 0 and len(data) > limit_start: data = data[limit_start:] - # 限制返回数量 if limit_page_length > 0 and len(data) > limit_page_length: data = data[:limit_page_length] return JSONResponse(content={ "data": data, - "total": len(data) # 注意:这里无法获取真实总数,需要改进 + "total": len(data) }) else: raise HTTPException(status_code=400, detail=result.get('error', '获取记录列表失败')) @@ -98,9 +91,6 @@ async def get_records( async def get_record_api(request: Request, pagetype: str, name: str): """获取单个记录""" try: - logger.info(f"获取记录: {pagetype}.{name}") - - # 使用现有的 get_record 函数 result = get_record(pagetype, name) if result.get('success'): @@ -116,9 +106,6 @@ async def get_record_api(request: Request, pagetype: str, name: str): async def create_record_api(request: Request, pagetype: str, data: Dict[str, Any]): """创建记录""" try: - logger.info(f"创建记录: {pagetype}") - - # 1. 使用现有的 create_record 函数创建记录 result = create_record(pagetype, data) if not result.get('success'): @@ -130,12 +117,10 @@ async def create_record_api(request: Request, pagetype: str, data: Dict[str, Any record_name = created_data.get('name') or data.get('name') if record_name: - # 2. 执行本地钩子函数(异步,不阻塞返回) try: execute_hooks_async(pagetype, record_name, "after_insert", created_data) except Exception as hook_error: logger.error(f"执行钩子函数失败: {hook_error}") - # 钩子失败不影响记录创建 return JSONResponse(content={ "message": "Created successfully", @@ -152,21 +137,13 @@ async def create_record_api(request: Request, pagetype: str, data: Dict[str, Any async def update_record_api(request: Request, pagetype: str, name: str, data: Dict[str, Any]): """更新记录""" try: - logger.info(f"更新记录: {pagetype}.{name}") - - # 1. 执行本地钩子函数 - logger.info(f"执行更新前钩子: {pagetype}.{name}") - - # 同步执行 before_save 钩子 execute_hooks(pagetype, name, "before_save", data) - # 2. 使用现有的 update_record 函数更新记录 result = update_record(pagetype, name, data) if not result.get('success'): raise HTTPException(status_code=400, detail=result.get('error', '更新记录失败')) - # 3. 异步执行 on_update 钩子 execute_hooks_async(pagetype, name, "on_update", data) return JSONResponse(content={ @@ -179,19 +156,12 @@ async def update_record_api(request: Request, pagetype: str, name: str, data: Di raise HTTPException(status_code=500, detail=str(e)) @router.delete("/api/data/{pagetype}/{name}") -async def delete_record(request: Request, pagetype: str, name: str): +async def delete_record_api(request: Request, pagetype: str, name: str): """删除记录""" try: - logger.info(f"删除记录: {pagetype}.{name}") - - # 1. 执行本地钩子函数 - logger.info(f"执行删除前钩子: {pagetype}.{name}") - - # 同步执行 on_trash 钩子 execute_hooks(pagetype, name, "on_trash") - # 2. 调用云端API删除记录 - result = call_cloud_api('DELETE', f'/api/data/{pagetype}/{name}') + result = delete_record(pagetype, name) if not result.get('success'): raise HTTPException(status_code=400, detail=result.get('error', '删除记录失败')) @@ -214,10 +184,7 @@ async def batch_delete_records(request: Request, data: Dict[str, Any]): if not pagetype or not name: raise HTTPException(status_code=400, detail="缺少必要参数") - logger.info(f"批量删除记录: {pagetype}.{name}") - - # 调用单个删除API - return await delete_record(request, pagetype, name) + return await delete_record_api(request, pagetype, name) except Exception as e: logger.error(f"批量删除记录失败: {e}") @@ -227,17 +194,11 @@ async def batch_delete_records(request: Request, data: Dict[str, Any]): async def get_record_count(request: Request, pagetype: str): """获取记录总数""" try: - logger.info(f"获取记录总数: {pagetype}") - - # 调用云端API获取记录列表(只获取总数) - params = { - 'limit_start': 0, - 'limit_page_length': 1 - } - result = call_cloud_api('GET', f'/api/data/{pagetype}', params=params) + result = get_record_list(pagetype=pagetype, limit=1) if result.get('success'): - return JSONResponse(content={"message": result.get('total', 0)}) + data = result.get('data', []) + return JSONResponse(content={"message": len(data)}) else: raise HTTPException(status_code=400, detail=result.get('error', '获取记录总数失败')) @@ -249,10 +210,6 @@ async def get_record_count(request: Request, pagetype: str): async def upload_file(request: Request): """上传文件""" try: - # 这里需要实现文件上传逻辑 - # 暂时返回成功响应 - logger.info("文件上传请求") - return JSONResponse(content={ "message": { "file_url": "http://example.com/uploaded_file.txt", @@ -264,7 +221,6 @@ async def upload_file(request: Request): logger.error(f"文件上传失败: {e}") raise HTTPException(status_code=500, detail=str(e)) -# 钩子执行任务(用于异步执行钩子) @router.post("/api/hooks/execute") async def execute_hook_task(request: Request, data: Dict[str, Any]): """执行钩子任务""" @@ -276,9 +232,6 @@ async def execute_hook_task(request: Request, data: Dict[str, Any]): if not all([pagetype, name, hook_name]): raise HTTPException(status_code=400, detail="缺少必要参数") - logger.info(f"执行钩子任务: {pagetype}.{name}.{hook_name}") - - # 执行钩子 success = execute_hooks(pagetype, name, hook_name, data.get('data')) return JSONResponse(content={