feat: update audit platform workspace
This commit is contained in:
@@ -1,155 +1,40 @@
|
||||
"""评查点控制器。"""
|
||||
"""Legacy evaluation point API.
|
||||
|
||||
The current rule configuration flow is backed by leaudit_evaluation_point_groups
|
||||
and rule version tables. The old evaluation_points table is no longer present
|
||||
in the active schema, so keep this route explicit and non-destructive.
|
||||
"""
|
||||
|
||||
from fastapi import Depends, Query
|
||||
from fastapi.responses import JSONResponse
|
||||
|
||||
from fastapi_common.fastapi_common_security.security import verify_access_token
|
||||
from fastapi_common.fastapi_common_web.controller import BaseController
|
||||
from fastapi_modules.fastapi_leaudit.domian.Dto.evaluationPointDto import (
|
||||
EvaluationPointCreateDTO,
|
||||
EvaluationPointUpdateDTO,
|
||||
)
|
||||
from fastapi_modules.fastapi_leaudit.services.evaluationPointService import IEvaluationPointService
|
||||
from fastapi_modules.fastapi_leaudit.services.impl.evaluationPointServiceImpl import EvaluationPointServiceImpl
|
||||
from fastapi_modules.fastapi_leaudit.services.impl.permissionServiceImpl import PermissionServiceImpl
|
||||
from fastapi_modules.fastapi_leaudit.services.permissionService import IPermissionService
|
||||
|
||||
|
||||
class EvaluationPointController(BaseController):
|
||||
"""评查点控制器。"""
|
||||
|
||||
_PERMISSIONS = {
|
||||
"list": "evaluation_point:list:read",
|
||||
"detail": "evaluation_point:detail:read",
|
||||
"create": "evaluation_point:create:write",
|
||||
"update": "evaluation_point:update:write",
|
||||
"delete": "evaluation_point:delete:delete",
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def _tenant_context(payload: dict) -> dict[str, str | None]:
|
||||
return {
|
||||
"UserArea": payload.get("area"),
|
||||
"UserRole": payload.get("user_role"),
|
||||
"TenantCode": payload.get("tenant_code"),
|
||||
"TenantName": payload.get("tenant_name"),
|
||||
}
|
||||
"""Deprecated legacy evaluation point controller."""
|
||||
|
||||
def __init__(self):
|
||||
super().__init__(prefix="/v3/evaluation-points", tags=["评查点"])
|
||||
self.PointService: IEvaluationPointService = EvaluationPointServiceImpl()
|
||||
self.PermissionService: IPermissionService = PermissionServiceImpl()
|
||||
super().__init__(prefix="/v3/evaluation-points", tags=["旧评查点接口"])
|
||||
|
||||
@self.router.get("")
|
||||
async def ListEvaluationPoints(
|
||||
name: str | None = Query(None, description="名称模糊搜索"),
|
||||
code: str | None = Query(None, description="编码模糊搜索"),
|
||||
risk: str | None = Query(None, description="风险等级"),
|
||||
is_enabled: bool | None = Query(None, description="是否启用"),
|
||||
evaluation_point_groups_pid: int | None = Query(None, description="一级分组ID"),
|
||||
evaluation_point_groups_id: int | None = Query(None, description="二级分组ID"),
|
||||
document_attribute_type: str | None = Query(None, description="文档属性类型"),
|
||||
area: str | None = Query(None, description="地区/兼容租户展示值"),
|
||||
tenant_code: str | None = Query(None, description="租户编码"),
|
||||
tenant_name: str | None = Query(None, description="租户名称(兼容筛选)"),
|
||||
page: int = Query(1, ge=1, description="页码"),
|
||||
page_size: int = Query(20, ge=1, le=500, description="分页大小"),
|
||||
payload: dict = Depends(verify_access_token),
|
||||
):
|
||||
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["list"]]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有评查点查看权限", "data": None})
|
||||
tenant_context = self._tenant_context(payload)
|
||||
data = await self.PointService.ListPoints(
|
||||
int(payload["user_id"]),
|
||||
tenant_context["UserArea"],
|
||||
tenant_context["UserRole"],
|
||||
tenant_context["TenantCode"],
|
||||
tenant_context["TenantName"],
|
||||
name,
|
||||
code,
|
||||
risk,
|
||||
is_enabled,
|
||||
evaluation_point_groups_pid,
|
||||
evaluation_point_groups_id,
|
||||
document_attribute_type,
|
||||
area,
|
||||
tenant_code,
|
||||
tenant_name,
|
||||
page,
|
||||
page_size,
|
||||
)
|
||||
return JSONResponse(status_code=200, content=data.model_dump())
|
||||
@self.router.api_route("", methods=["GET", "POST"])
|
||||
async def LegacyEvaluationPointsRoot():
|
||||
return self._gone()
|
||||
|
||||
@self.router.get("/attribute-types")
|
||||
async def GetEvaluationPointAttributeTypes(payload: dict = Depends(verify_access_token)):
|
||||
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["list"]]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有评查点查看权限", "data": None})
|
||||
data = await self.PointService.GetAttributeTypes()
|
||||
return JSONResponse(status_code=200, content=data.model_dump())
|
||||
@self.router.api_route("/attribute-types", methods=["GET"])
|
||||
async def LegacyEvaluationPointAttributeTypes():
|
||||
return self._gone()
|
||||
|
||||
@self.router.get("/{PointId}")
|
||||
async def GetEvaluationPoint(PointId: int, payload: dict = Depends(verify_access_token)):
|
||||
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["detail"]]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有评查点查看权限", "data": None})
|
||||
tenant_context = self._tenant_context(payload)
|
||||
data = await self.PointService.GetPoint(
|
||||
int(payload["user_id"]),
|
||||
tenant_context["UserArea"],
|
||||
tenant_context["UserRole"],
|
||||
tenant_context["TenantCode"],
|
||||
tenant_context["TenantName"],
|
||||
PointId,
|
||||
)
|
||||
return JSONResponse(status_code=200, content=data.model_dump())
|
||||
@self.router.api_route("/{PointId}", methods=["GET", "PUT", "DELETE"])
|
||||
async def LegacyEvaluationPointDetail(PointId: int):
|
||||
return self._gone()
|
||||
|
||||
@self.router.post("")
|
||||
async def CreateEvaluationPoint(body: EvaluationPointCreateDTO, payload: dict = Depends(verify_access_token)):
|
||||
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["create"]]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有创建评查点权限", "data": None})
|
||||
tenant_context = self._tenant_context(payload)
|
||||
data = await self.PointService.CreatePoint(
|
||||
int(payload["user_id"]),
|
||||
tenant_context["UserArea"],
|
||||
tenant_context["UserRole"],
|
||||
tenant_context["TenantCode"],
|
||||
tenant_context["TenantName"],
|
||||
body,
|
||||
)
|
||||
return JSONResponse(status_code=200, content=data.model_dump())
|
||||
|
||||
@self.router.put("/{PointId}")
|
||||
async def UpdateEvaluationPoint(PointId: int, body: EvaluationPointUpdateDTO, payload: dict = Depends(verify_access_token)):
|
||||
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["update"]]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有更新评查点权限", "data": None})
|
||||
tenant_context = self._tenant_context(payload)
|
||||
data = await self.PointService.UpdatePoint(
|
||||
int(payload["user_id"]),
|
||||
tenant_context["UserArea"],
|
||||
tenant_context["UserRole"],
|
||||
tenant_context["TenantCode"],
|
||||
tenant_context["TenantName"],
|
||||
PointId,
|
||||
body,
|
||||
)
|
||||
return JSONResponse(status_code=200, content=data.model_dump())
|
||||
|
||||
@self.router.delete("/{PointId}")
|
||||
async def DeleteEvaluationPoint(PointId: int, payload: dict = Depends(verify_access_token)):
|
||||
if not await self._check_permission(int(payload["user_id"]), [self._PERMISSIONS["delete"]]):
|
||||
return JSONResponse(status_code=403, content={"code": 403, "msg": "当前用户没有删除评查点权限", "data": None})
|
||||
tenant_context = self._tenant_context(payload)
|
||||
data = await self.PointService.DeletePoint(
|
||||
int(payload["user_id"]),
|
||||
tenant_context["UserArea"],
|
||||
tenant_context["UserRole"],
|
||||
tenant_context["TenantCode"],
|
||||
tenant_context["TenantName"],
|
||||
PointId,
|
||||
)
|
||||
return JSONResponse(status_code=200, content=data.model_dump())
|
||||
|
||||
async def _check_permission(self, user_id: int, permission_keys: list[str]) -> bool:
|
||||
for permission_key in permission_keys:
|
||||
if await self.PermissionService.CheckPermission(user_id, permission_key):
|
||||
return True
|
||||
return False
|
||||
@staticmethod
|
||||
def _gone() -> JSONResponse:
|
||||
return JSONResponse(
|
||||
status_code=410,
|
||||
content={
|
||||
"code": 410,
|
||||
"msg": "旧评查点接口已下线,请使用规则组/规则配置接口",
|
||||
"data": None,
|
||||
},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user