API统计页面

This commit is contained in:
BBIT-Kai
2026-07-27 10:16:24 +08:00
parent 89f6944e65
commit 38efd8ef1a
21 changed files with 3554 additions and 123 deletions
+14
View File
@@ -903,6 +903,7 @@ async def query_cube_export(
base_load: dict[str, Any],
tenant_id: str | None,
limit_source: str | None,
column_keys: list[str] | None = None,
) -> dict[str, Any]:
query = deepcopy(base_load)
if not tenant_id:
@@ -925,6 +926,19 @@ async def query_cube_export(
key: _column_title(key, sql_info["aliases"], member_titles)
for key in keys
}
if column_keys:
selected_keys = list(dict.fromkeys(str(key).strip() for key in column_keys))
invalid_keys = [key for key in selected_keys if key not in headers]
if invalid_keys:
raise HTTPException(
status_code=422,
detail=f"导出列不存在或已失效:{', '.join(invalid_keys[:5])}",
)
headers = {key: headers[key] for key in selected_keys}
rows = [
{key: row.get(key) for key in selected_keys}
for row in rows
]
return {
"headers": headers,
"rows": rows,