feat: add tenant-scoped rule and permission management

This commit is contained in:
wren
2026-05-21 22:03:08 +08:00
parent a2c2bf1969
commit 1f1bccf3b3
193 changed files with 64463 additions and 1771 deletions
@@ -0,0 +1,62 @@
"""页级图片质量控制器。"""
from typing import Any
from fastapi import Depends, Form
from fastapi_common.fastapi_common_security.security import verify_access_token
from fastapi_common.fastapi_common_web.controller import BaseController
from fastapi_common.fastapi_common_web.domain.responses import Result
from fastapi_modules.fastapi_leaudit.domian.vo.pageQualityVo import (
PageQualityDetailVO,
PageQualityRecheckVO,
PageQualitySummaryVO,
)
from fastapi_modules.fastapi_leaudit.services.impl.pageQualityServiceImpl import PageQualityServiceImpl
from fastapi_modules.fastapi_leaudit.services.pageQualityService import IPageQualityService
class PageQualityController(BaseController):
"""页级图片质量控制器。"""
def __init__(self):
super().__init__(prefix="", tags=["页级图片质量"])
self.PageQualityService: IPageQualityService = PageQualityServiceImpl()
@self.router.get("/documents/{DocumentId}/page-quality/summary", response_model=Result[PageQualitySummaryVO])
async def GetDocumentPageQualitySummary(
DocumentId: int,
payload: dict[str, Any] = Depends(verify_access_token),
):
"""获取文档页级模糊检测摘要。"""
data = await self.PageQualityService.GetDocumentSummary(
CurrentUserId=int(payload["user_id"]),
DocumentId=DocumentId,
)
return Result.success(data=data)
@self.router.get("/documents/{DocumentId}/page-quality", response_model=Result[PageQualityDetailVO])
async def GetDocumentPageQualityDetail(
DocumentId: int,
payload: dict[str, Any] = Depends(verify_access_token),
):
"""获取文档页级模糊检测详情。"""
data = await self.PageQualityService.GetDocumentDetail(
CurrentUserId=int(payload["user_id"]),
DocumentId=DocumentId,
)
return Result.success(data=data)
@self.router.post("/documents/{DocumentId}/page-quality/recheck", response_model=Result[PageQualityRecheckVO])
async def RecheckDocumentPageQuality(
DocumentId: int,
speed: str = Form("normal", description="执行速度档位:urgent/normal"),
payload: dict[str, Any] = Depends(verify_access_token),
):
"""手工重跑页级模糊检测。"""
data = await self.PageQualityService.RecheckDocument(
CurrentUserId=int(payload["user_id"]),
DocumentId=DocumentId,
Speed=speed,
)
return Result.success(data=data, message="页级模糊检测任务已投递")