|
|
@@ -34,10 +34,10 @@ async def get_tasks(type: str, current_user: dict = Depends(get_current_user_wit
|
|
|
"""获取任务项目列表 (聚合显示)"""
|
|
|
try:
|
|
|
projects = await task_service.get_task_list(type)
|
|
|
- return ApiResponse(code=0, message="成功", data=projects).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="成功", data=projects).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("获取项目列表失败")
|
|
|
- return ApiResponse(code=500, message=str(e)).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e)).model_dump()
|
|
|
|
|
|
|
|
|
@router.get("/tasks/details")
|
|
|
@@ -45,10 +45,10 @@ async def get_task_details(project_id: str, type: str, current_user: dict = Depe
|
|
|
"""获取项目下的文件详情"""
|
|
|
try:
|
|
|
files = await task_service.get_project_details(project_id, type)
|
|
|
- return ApiResponse(code=0, message="成功", data=files).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="成功", data=files).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("获取项目详情失败")
|
|
|
- return ApiResponse(code=500, message=str(e)).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e)).model_dump()
|
|
|
|
|
|
|
|
|
# --- 外部联动接口 API ---
|
|
|
@@ -59,18 +59,18 @@ async def init_external_project(request: Request, current_user: dict = Depends(g
|
|
|
try:
|
|
|
# 简单验证是否为管理员(根据业务需求调整)
|
|
|
if not current_user.get("is_superuser") and current_user.get("role") != "admin":
|
|
|
- return ApiResponse(code=403, message="权限不足").model_dump()
|
|
|
+ return ApiResponse(code="200003", message="权限不足").model_dump()
|
|
|
|
|
|
data = await request.json()
|
|
|
success, result = await task_service.create_anno_project(data)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message="项目初始化成功", data={"project_id": result}).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="项目初始化成功", data={"project_id": result}).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=f"项目初始化失败: {result}").model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"项目初始化失败: {result}").model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("项目初始化接口异常")
|
|
|
- return ApiResponse(code=500, message=str(e)).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e)).model_dump()
|
|
|
|
|
|
@router.get("/external/projects/{project_id}/progress")
|
|
|
@router.get("/external/projects/progress")
|
|
|
@@ -81,16 +81,16 @@ async def get_external_project_progress(
|
|
|
"""查询项目进度"""
|
|
|
try:
|
|
|
if not project_id:
|
|
|
- return ApiResponse(code=400, message="缺少项目ID").model_dump()
|
|
|
+ return ApiResponse(code="400001", message="缺少项目ID").model_dump()
|
|
|
|
|
|
progress = await task_service.get_project_progress(project_id=project_id)
|
|
|
if "error" in progress:
|
|
|
- return ApiResponse(code=500, message=progress["error"]).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=progress["error"]).model_dump()
|
|
|
|
|
|
- return ApiResponse(code=0, message="成功", data=progress).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="成功", data=progress).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("查询进度接口异常")
|
|
|
- return ApiResponse(code=500, message=str(e)).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e)).model_dump()
|
|
|
|
|
|
@router.post("/external/projects/{project_id}/export")
|
|
|
@router.post("/external/projects/export")
|
|
|
@@ -106,7 +106,7 @@ async def export_external_project(
|
|
|
actual_project_id = project_id or req.project_id
|
|
|
if not actual_project_id:
|
|
|
logger.warning("导出请求缺少项目ID")
|
|
|
- return ApiResponse(code=400, message="缺少项目ID").model_dump()
|
|
|
+ return ApiResponse(code="400001", message="缺少项目ID").model_dump()
|
|
|
|
|
|
logger.info(f"正在为项目 {actual_project_id} 执行导出,格式: {req.format}")
|
|
|
result = await task_service.export_labeled_data(
|
|
|
@@ -117,13 +117,13 @@ async def export_external_project(
|
|
|
|
|
|
if "error" in result:
|
|
|
logger.error(f"导出执行失败: {result['error']}")
|
|
|
- return ApiResponse(code=500, message=result["error"]).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=result["error"]).model_dump()
|
|
|
|
|
|
logger.info(f"项目 {actual_project_id} 导出成功")
|
|
|
- return ApiResponse(code=0, message="成功", data=result).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="成功", data=result).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("导出数据接口异常")
|
|
|
- return ApiResponse(code=500, message=str(e)).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e)).model_dump()
|
|
|
|
|
|
@router.get("/external/download-proxy")
|
|
|
async def download_proxy(url: str, filename: str, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -178,7 +178,7 @@ async def download_proxy(url: str, filename: str, current_user: dict = Depends(g
|
|
|
)
|
|
|
except Exception as e:
|
|
|
logger.exception("下载代理异常")
|
|
|
- return ApiResponse(code=500, message=str(e)).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e)).model_dump()
|
|
|
|
|
|
@router.post("/documents/upload-url")
|
|
|
async def get_upload_url(req: UploadUrlRequest, credentials: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -188,12 +188,12 @@ async def get_upload_url(req: UploadUrlRequest, credentials: dict = Depends(get_
|
|
|
success, message, data = await sample_service.get_upload_url(req.filename, req.content_type, prefix=req.prefix)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, data=data, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, data=data, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("获取上传链接失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.get("/documents/proxy-view")
|
|
|
async def proxy_view(url: str, token: Optional[str] = None, credentials: Optional[HTTPAuthorizationCredentials] = Depends(security_optional)):
|
|
|
@@ -210,7 +210,7 @@ async def proxy_view(url: str, token: Optional[str] = None, credentials: Optiona
|
|
|
actual_token = token
|
|
|
|
|
|
if not actual_token:
|
|
|
- return ApiResponse(code=401, message="未提供认证令牌", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="未提供认证令牌", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
|
|
|
# 增加超时时间,支持大文件下载
|
|
|
@@ -303,7 +303,7 @@ async def download_document(url: str, filename: Optional[str] = None, token: Opt
|
|
|
"""代理下载云端文件,支持从 MinIO 等外部地址下载"""
|
|
|
try:
|
|
|
if not url:
|
|
|
- return ApiResponse(code=400, message="缺少URL参数", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="400001", message="缺少URL参数", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
# 确保 URL 已解码
|
|
|
url = urllib.parse.unquote(url)
|
|
|
@@ -316,7 +316,7 @@ async def download_document(url: str, filename: Optional[str] = None, token: Opt
|
|
|
actual_token = token
|
|
|
|
|
|
if not actual_token:
|
|
|
- return ApiResponse(code=401, message="未提供认证令牌", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="未提供认证令牌", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
|
|
|
# 增加超时时间,支持大文件下载
|
|
|
@@ -343,7 +343,7 @@ async def download_document(url: str, filename: Optional[str] = None, token: Opt
|
|
|
|
|
|
except Exception as e:
|
|
|
logger.exception(f"文件下载失败, url={url}")
|
|
|
- return ApiResponse(code=500, message=f"下载失败: {str(e)} (URL: {url})", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"下载失败: {str(e)} (URL: {url})", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/batch-enter")
|
|
|
async def batch_enter_knowledge_base(req: BatchEnterRequest, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -352,7 +352,7 @@ async def batch_enter_knowledge_base(req: BatchEnterRequest, current_user: dict
|
|
|
|
|
|
username = current_user.get("sub")
|
|
|
if not username:
|
|
|
- return ApiResponse(code=401, message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
sample_service = SampleService()
|
|
|
|
|
|
@@ -365,11 +365,11 @@ async def batch_enter_knowledge_base(req: BatchEnterRequest, current_user: dict
|
|
|
)
|
|
|
|
|
|
# 如果全部失败,返回非零状态码,触发前端错误提示
|
|
|
- code = 0 if success_count > 0 else 1
|
|
|
+ code = "000000" if success_count > 0 else "000001"
|
|
|
return ApiResponse(code=code, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("批量操作失败")
|
|
|
- return ApiResponse(code=500, message=f"批量操作失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"批量操作失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/batch-clear")
|
|
|
async def batch_clear_knowledge_base(req: BatchClearRequest, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -377,19 +377,19 @@ async def batch_clear_knowledge_base(req: BatchClearRequest, current_user: dict
|
|
|
try:
|
|
|
username = current_user.get("sub")
|
|
|
if not username:
|
|
|
- return ApiResponse(code=401, message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
sample_service = SampleService()
|
|
|
success_count, message = await sample_service.clear_knowledge_base_data(req.ids, username)
|
|
|
|
|
|
return ApiResponse(
|
|
|
- code=0 if success_count > 0 else 1,
|
|
|
+ code = "000000" if success_count > 0 else "000001",
|
|
|
message=message,
|
|
|
timestamp=datetime.now(timezone.utc).isoformat()
|
|
|
).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("批量清空失败")
|
|
|
- return ApiResponse(code=500, message=f"批量清空失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"批量清空失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/batch-delete")
|
|
|
async def batch_delete_documents(req: BatchDeleteRequest, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -400,13 +400,13 @@ async def batch_delete_documents(req: BatchDeleteRequest, current_user: dict = D
|
|
|
affected_rows, message = await sample_service.batch_delete_documents(req.ids)
|
|
|
|
|
|
return ApiResponse(
|
|
|
- code=0,
|
|
|
+ code="000000",
|
|
|
message=message,
|
|
|
timestamp=datetime.now(timezone.utc).isoformat()
|
|
|
).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("批量删除失败")
|
|
|
- return ApiResponse(code=500, message=f"批量删除失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"批量删除失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
@@ -422,7 +422,7 @@ async def batch_add_to_task(req: BatchAddTaskRequest, current_user: dict = Depen
|
|
|
|
|
|
user_id = current_user.get("sub")
|
|
|
if not user_id:
|
|
|
- return ApiResponse(code=401, message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
username = current_user.get("username", user_id)
|
|
|
|
|
|
@@ -430,13 +430,13 @@ async def batch_add_to_task(req: BatchAddTaskRequest, current_user: dict = Depen
|
|
|
success, message = await sample_service.batch_add_to_task(req.doc_ids, username, req.project_name, task_tags=req.tags)
|
|
|
|
|
|
return ApiResponse(
|
|
|
- code=0 if success else 500,
|
|
|
+ code = "000000" if success > 0 else "000500",
|
|
|
message=message,
|
|
|
timestamp=datetime.now(timezone.utc).isoformat()
|
|
|
).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("批量加入任务失败")
|
|
|
- return ApiResponse(code=500, message=f"批量加入任务失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"批量加入任务失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/convert")
|
|
|
async def convert_document(req: ConvertRequest, background_tasks: BackgroundTasks, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -449,7 +449,7 @@ async def convert_document(req: ConvertRequest, background_tasks: BackgroundTask
|
|
|
# 1. 获取文档详情以取得 title 和 file_url
|
|
|
doc = await sample_service.get_document_detail(doc_id)
|
|
|
if not doc:
|
|
|
- return ApiResponse(code=404, message="文档不存在", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="300001", message="文档不存在", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
title = doc.get("title")
|
|
|
file_url = doc.get("file_url")
|
|
|
@@ -458,13 +458,13 @@ async def convert_document(req: ConvertRequest, background_tasks: BackgroundTask
|
|
|
|
|
|
# 2. 检查当前状态,避免重复请求
|
|
|
if status == 1:
|
|
|
- return ApiResponse(code=0, message="文档正在转换中,请勿重复操作", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="文档正在转换中,请勿重复操作", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
if status == 2:
|
|
|
- return ApiResponse(code=0, message="文档已转换完成", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="文档已转换完成", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
if not file_url:
|
|
|
- return ApiResponse(code=400, message="文档缺少文件链接,无法转换", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="400001", message="文档缺少文件链接,无法转换", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
# 3. 立即将状态更新为“转换中”,避免前端轮询延迟
|
|
|
await sample_service.update_conversion_status(doc_id, status=1)
|
|
|
@@ -474,13 +474,13 @@ async def convert_document(req: ConvertRequest, background_tasks: BackgroundTask
|
|
|
background_tasks.add_task(manager.process_document, doc_id, title, file_url, table_type)
|
|
|
|
|
|
return ApiResponse(
|
|
|
- code=0,
|
|
|
+ code="000000",
|
|
|
message="转换任务已在后台启动",
|
|
|
timestamp=datetime.now(timezone.utc).isoformat()
|
|
|
).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("启动转换失败")
|
|
|
- return ApiResponse(code=500, message=f"启动转换失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"启动转换失败: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/add")
|
|
|
async def add_document(doc: DocumentAdd, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -489,7 +489,7 @@ async def add_document(doc: DocumentAdd, current_user: dict = Depends(get_curren
|
|
|
|
|
|
user_id = current_user.get("sub")
|
|
|
if not user_id:
|
|
|
- return ApiResponse(code=401, message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
sample_service = SampleService()
|
|
|
|
|
|
@@ -499,12 +499,12 @@ async def add_document(doc: DocumentAdd, current_user: dict = Depends(get_curren
|
|
|
success, message, doc_id = await sample_service.add_document(doc_data, user_id)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, data={"id": doc_id}, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, data={"id": doc_id}, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("添加文档失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.get("/documents/detail/{doc_id}")
|
|
|
async def get_document_detail(doc_id: str, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -515,13 +515,13 @@ async def get_document_detail(doc_id: str, current_user: dict = Depends(get_curr
|
|
|
doc = await sample_service.get_document_detail(doc_id)
|
|
|
|
|
|
if not doc:
|
|
|
- return ApiResponse(code=404, message="文档不存在", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="300001", message="文档不存在", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
- return ApiResponse(code=0, message="获取详情成功", data=doc, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="获取详情成功", data=doc, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
except Exception as e:
|
|
|
logger.exception("获取文档详情失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.get("/documents/list")
|
|
|
async def get_document_list(
|
|
|
@@ -555,7 +555,7 @@ async def get_document_list(
|
|
|
)
|
|
|
|
|
|
return ApiResponse(
|
|
|
- code=0,
|
|
|
+ code="000000",
|
|
|
message="查询成功",
|
|
|
data={
|
|
|
"items": items,
|
|
|
@@ -569,7 +569,7 @@ async def get_document_list(
|
|
|
).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("获取文档列表失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/edit")
|
|
|
async def edit_document(doc: DocumentAdd, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -577,7 +577,7 @@ async def edit_document(doc: DocumentAdd, current_user: dict = Depends(get_curre
|
|
|
try:
|
|
|
|
|
|
if not doc.id:
|
|
|
- return ApiResponse(code=400, message="缺少ID参数", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="400001", message="缺少ID参数", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
# 调用 service 层
|
|
|
sample_service = SampleService()
|
|
|
@@ -591,12 +591,12 @@ async def edit_document(doc: DocumentAdd, current_user: dict = Depends(get_curre
|
|
|
success, message = await sample_service.edit_document(doc_data, updater_id)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("编辑文档失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/documents/enter")
|
|
|
async def enter_document(data: dict, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -604,7 +604,7 @@ async def enter_document(data: dict, current_user: dict = Depends(get_current_us
|
|
|
try:
|
|
|
doc_id = data.get("id")
|
|
|
if not doc_id:
|
|
|
- return ApiResponse(code=400, message="缺少ID", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="400001", message="缺少ID", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
username = current_user.get("sub", "admin") if payload else "admin"
|
|
|
|
|
|
@@ -613,12 +613,12 @@ async def enter_document(data: dict, current_user: dict = Depends(get_current_us
|
|
|
success, message = await sample_service.enter_document(doc_id, username)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("入库失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
|
|
|
|
|
|
@@ -686,7 +686,7 @@ async def get_basic_info_list(
|
|
|
)
|
|
|
|
|
|
return ApiResponse(
|
|
|
- code=0,
|
|
|
+ code="000000",
|
|
|
message="查询成功",
|
|
|
data={"items": items, "total": total, "page": page, "size": size},
|
|
|
timestamp=datetime.now(timezone.utc).isoformat()
|
|
|
@@ -694,7 +694,7 @@ async def get_basic_info_list(
|
|
|
|
|
|
except Exception as e:
|
|
|
logger.exception("查询基本信息失败")
|
|
|
- return ApiResponse(code=500, message=f"服务器内部错误: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=f"服务器内部错误: {str(e)}", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/basic-info/add")
|
|
|
async def add_basic_info(type: str, data: dict, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -703,18 +703,18 @@ async def add_basic_info(type: str, data: dict, current_user: dict = Depends(get
|
|
|
|
|
|
user_id = current_user.get("sub")
|
|
|
if not user_id:
|
|
|
- return ApiResponse(code=401, message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
sample_service = SampleService()
|
|
|
success, message, doc_id = await sample_service.add_basic_info(type, data, user_id)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, data={"id": doc_id}, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, data={"id": doc_id}, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("新增基本信息失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/basic-info/edit")
|
|
|
async def edit_basic_info(type: str, id: str, data: dict, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -723,18 +723,18 @@ async def edit_basic_info(type: str, id: str, data: dict, current_user: dict = D
|
|
|
|
|
|
user_id = current_user.get("sub")
|
|
|
if not user_id:
|
|
|
- return ApiResponse(code=401, message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="200002", message="令牌中缺少用户信息", timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
sample_service = SampleService()
|
|
|
success, message = await sample_service.edit_basic_info(type, id, data, user_id)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("编辑基本信息失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.post("/basic-info/delete")
|
|
|
async def delete_basic_info(type: str, id: str, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -745,12 +745,12 @@ async def delete_basic_info(type: str, id: str, current_user: dict = Depends(get
|
|
|
success, message = await sample_service.delete_basic_info(type, id)
|
|
|
|
|
|
if success:
|
|
|
- return ApiResponse(code=0, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
else:
|
|
|
- return ApiResponse(code=500, message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=message, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
logger.exception("删除基本信息失败")
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.get("/documents/categories/primary")
|
|
|
async def get_primary_categories(current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -760,9 +760,9 @@ async def get_primary_categories(current_user: dict = Depends(get_current_user_w
|
|
|
# 仅保留用户要求的分类
|
|
|
default_categories = ["办公制度", "行业标准", "法律法规", "施工方案", "施工图片"]
|
|
|
categories = [{"id": name, "name": name} for name in default_categories]
|
|
|
- return ApiResponse(code=0, message="获取成功", data=categories, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="获取成功", data=categories, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.get("/documents/categories/secondary")
|
|
|
async def get_secondary_categories(primaryId: str, current_user: dict = Depends(get_current_user_with_refresh)):
|
|
|
@@ -775,9 +775,9 @@ async def get_secondary_categories(primaryId: str, current_user: dict = Depends(
|
|
|
secondary_names = ["采购", "报销", "审批"]
|
|
|
categories = [{"id": name, "name": name} for name in secondary_names]
|
|
|
|
|
|
- return ApiResponse(code=0, message="获取成功", data=categories, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="000000", message="获取成功", data=categories, timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
except Exception as e:
|
|
|
- return ApiResponse(code=500, message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
+ return ApiResponse(code="500001", message=str(e), timestamp=datetime.now(timezone.utc).isoformat()).model_dump()
|
|
|
|
|
|
@router.get("/documents/search")
|
|
|
async def search_documents(
|