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:
56
backend/app/services/audit_log.py
Normal file
56
backend/app/services/audit_log.py
Normal 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
|
||||
Reference in New Issue
Block a user