48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
"""银行交易查询服务 — 接口请求日志写入文件。"""
|
|
|
|
import time
|
|
|
|
from app.services.bank.client import query_bank_transactions, BankApiError
|
|
from app.services.bank.file_logger import log_bank_api_request
|
|
|
|
|
|
async def query_transactions_with_log(
|
|
admin_id: str,
|
|
**kwargs,
|
|
) -> dict:
|
|
"""查询银行流水并记录接口日志到文件。
|
|
|
|
:param admin_id: 操作管理员 ID
|
|
:param kwargs: 透传给 query_bank_transactions 的参数
|
|
:return: 接口返回的原始数据
|
|
"""
|
|
acct_no = kwargs.get("acct_no", "")
|
|
request_params = {k: v for k, v in kwargs.items()}
|
|
start_time = time.monotonic()
|
|
try:
|
|
result = await query_bank_transactions(**kwargs)
|
|
duration_ms = int((time.monotonic() - start_time) * 1000)
|
|
log_bank_api_request(
|
|
acct_no=acct_no,
|
|
request_params=request_params,
|
|
response_data=result,
|
|
status_code=200,
|
|
is_success=True,
|
|
admin_id=admin_id,
|
|
duration_ms=duration_ms,
|
|
)
|
|
return result
|
|
except BankApiError as e:
|
|
duration_ms = int((time.monotonic() - start_time) * 1000)
|
|
log_bank_api_request(
|
|
acct_no=acct_no,
|
|
request_params=request_params,
|
|
response_data=None,
|
|
status_code=e.http_status,
|
|
is_success=False,
|
|
error_msg=str(e),
|
|
admin_id=admin_id,
|
|
duration_ms=duration_ms,
|
|
)
|
|
raise
|