API统计页面
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user