feat: add tenant-scoped rule and permission management
This commit is contained in:
@@ -30,7 +30,8 @@ class GovdocController(BaseController):
|
||||
async def UploadDocument(
|
||||
file: UploadFile = File(...),
|
||||
typeId: int | None = Form(default=None),
|
||||
region: str = Form(default="default"),
|
||||
region: str | None = Form(default=None, description="兼容保留字段:租户展示值/旧地区"),
|
||||
tenant_code: str | None = Form(default=None, description="租户编码"),
|
||||
autoRun: bool = Form(default=True),
|
||||
speed: str = Form(default="normal"),
|
||||
ruleVersionId: int | None = Form(default=None),
|
||||
@@ -44,6 +45,7 @@ class GovdocController(BaseController):
|
||||
file=file,
|
||||
typeId=typeId,
|
||||
region=region,
|
||||
tenantCode=tenant_code,
|
||||
autoRun=autoRun,
|
||||
speed=speed,
|
||||
ruleVersionId=ruleVersionId,
|
||||
@@ -57,7 +59,8 @@ class GovdocController(BaseController):
|
||||
pageSize: int = Query(default=20, ge=1, le=100),
|
||||
keyword: str | None = Query(default=None),
|
||||
fileExt: str | None = Query(default=None),
|
||||
region: str | None = Query(default=None),
|
||||
region: str | None = Query(default=None, description="兼容保留字段:租户展示值/旧地区"),
|
||||
tenant_code: str | None = Query(default=None, description="租户编码"),
|
||||
status: str | None = Query(default=None),
|
||||
resultStatus: str | None = Query(default=None),
|
||||
createdBy: int | None = Query(default=None),
|
||||
@@ -75,6 +78,7 @@ class GovdocController(BaseController):
|
||||
keyword=keyword,
|
||||
fileExt=fileExt,
|
||||
region=region,
|
||||
tenantCode=tenant_code,
|
||||
status=status,
|
||||
resultStatus=resultStatus,
|
||||
createdBy=createdBy,
|
||||
@@ -151,7 +155,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""查询 run 状态、阶段、耗时、错误摘要。"""
|
||||
result = await self.GovdocService.GetRunStatus(runId=runId)
|
||||
result = await self.GovdocService.GetRunStatus(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
# ── 结果与报告 ────────────────────────────────────
|
||||
@@ -162,7 +166,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取审查结果摘要:summary + checked rules + findings 统计 + entities 摘要。"""
|
||||
result = await self.GovdocService.GetRunResult(runId=runId)
|
||||
result = await self.GovdocService.GetRunResult(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/findings")
|
||||
@@ -171,7 +175,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取段落级 findings 明细列表。"""
|
||||
result = await self.GovdocService.GetRunFindings(runId=runId)
|
||||
result = await self.GovdocService.GetRunFindings(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/entities")
|
||||
@@ -180,7 +184,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取识别出的标题、文号、署名等实体。"""
|
||||
result = await self.GovdocService.GetRunEntities(runId=runId)
|
||||
result = await self.GovdocService.GetRunEntities(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/structure")
|
||||
@@ -189,7 +193,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取文档结构统计(结构面板数据)。"""
|
||||
result = await self.GovdocService.GetRunStructure(runId=runId)
|
||||
result = await self.GovdocService.GetRunStructure(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/outline")
|
||||
@@ -198,7 +202,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取文档大纲树(大纲面板数据)。"""
|
||||
result = await self.GovdocService.GetRunOutline(runId=runId)
|
||||
result = await self.GovdocService.GetRunOutline(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/paragraphs")
|
||||
@@ -207,7 +211,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取前端文档联动视图所需的段落 HTML。"""
|
||||
result = await self.GovdocService.GetRunParagraphs(runId=runId)
|
||||
result = await self.GovdocService.GetRunParagraphs(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/report/html")
|
||||
@@ -216,7 +220,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取 HTML 报告内容或下载地址。"""
|
||||
result = await self.GovdocService.GetReportHtml(runId=runId)
|
||||
result = await self.GovdocService.GetReportHtml(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/runs/{runId}/report/docx")
|
||||
@@ -225,7 +229,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取批注 DOCX 下载地址。"""
|
||||
result = await self.GovdocService.GetReportDocx(runId=runId)
|
||||
result = await self.GovdocService.GetReportDocx(runId=runId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
@self.router.get("/documents/{documentId}/original")
|
||||
@@ -234,7 +238,7 @@ class GovdocController(BaseController):
|
||||
payload: dict[str, Any] = Depends(verify_access_token),
|
||||
):
|
||||
"""获取原始上传文档下载地址。"""
|
||||
result = await self.GovdocService.DownloadOriginal(documentId=documentId)
|
||||
result = await self.GovdocService.DownloadOriginal(documentId=documentId, userId=int(payload["user_id"]))
|
||||
return Result.success(data=result)
|
||||
|
||||
# ── 规则 ──────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user