feat(huya): 协作台账补资料与管理员复制 CK

This commit is contained in:
yml2213
2026-10-17 20:47:31 +08:00
parent 8fac4a1d04
commit f06869c4b1
4 changed files with 528 additions and 28 deletions
+25 -1
View File
@@ -30,7 +30,7 @@ from fastapi import (
from sqlalchemy.orm import Session
from ...database import get_db
from ...deps import authenticate_websocket, require_permission
from ...deps import authenticate_websocket, get_current_user, require_permission
from ...models import AuditLog, HuyaExternalOrder, User
from ...permissions import get_user_permissions
from ...schemas import (
@@ -442,6 +442,30 @@ def export_external_orders_ck(
raise _http_error(exc) from exc
@router.post(
"/external-orders/{order_id}/ck/copy",
response_model=HuyaExternalOrderCkExportOut,
)
def copy_external_order_ck(
order_id: int,
db: Session = Depends(get_db),
current: User = Depends(get_current_user),
):
"""复制单行 CK 明文(**仅超级管理员**;前端直接写剪贴板)。
这个入口比勾选导出更敏感:它把「单行凭据」做成一键复制,因此只给管理员。
仍然复用 :func:`collab.export_cks`:逐行写 ``huya:collab:ck_export`` 审计,
但审计里只记单号,不写 CK 本体。
"""
if current.role != "super_admin":
raise HTTPException(status_code=403, detail="仅超级管理员可复制 CK")
try:
order = collab.get_order(db, order_id)
return collab.export_cks(db, current, [order])
except collab.CollabError as exc:
raise _http_error(exc) from exc
@router.websocket("/external-orders/ws")
async def ws_external_orders(websocket: WebSocket):
"""协作台账实时失效通知:客户端收到后按自己的筛选静默重拉。"""