feat: parse docx blocks during upload

This commit is contained in:
zwt13703
2026-07-01 20:29:31 +08:00
parent 95c507536a
commit 389b9c0c92
5 changed files with 147 additions and 54 deletions
+6 -2
View File
@@ -2,7 +2,8 @@ from fastapi import APIRouter, Depends, File, Form, HTTPException, UploadFile
from sqlalchemy.orm import Session
from ..database import get_db
from ..services.template_service import create_template_record, store_template_file
from ..services.doc_parser import parse_document
from ..services.template_service import create_template_record, save_template_blocks, store_template_file
router = APIRouter(prefix="/api/templates", tags=["templates"])
@@ -17,8 +18,10 @@ def upload_template(
):
"""上传 Word 模板并创建模板记录。"""
try:
stored_path, _ = store_template_file(file)
stored_path, content = store_template_file(file)
blocks = parse_document(content)
template = create_template_record(db, name=name, file_path=stored_path, type=type)
save_template_blocks(db, template.id, blocks)
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc
except Exception as exc:
@@ -29,6 +32,7 @@ def upload_template(
"data": {
"template_id": template.id,
"name": template.name,
"block_count": len(blocks),
"status": "uploaded",
},
"message": "ok",