feat: Airwallex 发卡管理后台完整实现

- 后端: FastAPI + SQLAlchemy + SQLite, JWT认证, 代理支持的AirwallexClient
- 前端: React 18 + Vite + Ant Design 5, 中文界面
- 功能: 卡片管理, 持卡人管理, 交易记录, API令牌, 系统设置, 审计日志
- 第三方API: X-API-Key认证, 权限控制
- Docker部署: docker-compose编排前后端
This commit is contained in:
zqq61
2026-03-15 23:05:08 +08:00
commit 4f53889a8e
98 changed files with 10847 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
"""Audit logging service."""
from datetime import datetime, timezone
from sqlalchemy.orm import Session
from app.models.db_models import AuditLog, CardLog
def create_audit_log(
db: Session,
action: str,
resource_type: str,
operator: str,
resource_id: str = "",
ip_address: str = "",
details: str = "",
) -> AuditLog:
"""Create an audit log entry."""
log = AuditLog(
action=action,
resource_type=resource_type,
resource_id=resource_id,
operator=operator,
ip_address=ip_address,
details=details,
created_at=datetime.now(timezone.utc),
)
db.add(log)
db.commit()
db.refresh(log)
return log
def create_card_log(
db: Session,
action: str,
status: str,
operator: str,
card_id: str = "",
cardholder_id: str = "",
request_data: str = "",
response_data: str = "",
) -> CardLog:
"""Create a card operation log entry."""
log = CardLog(
card_id=card_id,
cardholder_id=cardholder_id,
action=action,
status=status,
operator=operator,
request_data=request_data,
response_data=response_data,
created_at=datetime.now(timezone.utc),
)
db.add(log)
db.commit()
db.refresh(log)
return log