mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 01:10:23 +08:00
feat(wallet): 钱包系统替代配额系统,新增支付与退款机制
- 新增钱包余额管理、充值、扣费、退款完整流程 - 新增支付网关抽象层(支持手动/支付宝/微信) - 用量计费从配额系统迁移到钱包余额扣费 - 新增管理员钱包管理与支付订单管理页面 - 新增用户钱包中心页面 - 移除独立 Key 锁定机制,统一由钱包余额控制 - 新增相关 API 路由、序列化器与数据库迁移 - 新增钱包、支付、退款相关测试
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
数据库模块
|
||||
"""
|
||||
|
||||
from ..models.database import ApiKey, Base, Usage, User, UserQuota
|
||||
from ..models.database import ApiKey, Base, Usage, User
|
||||
from .database import create_session, get_db, get_db_context, get_db_url, init_db, log_pool_status
|
||||
|
||||
__all__ = [
|
||||
@@ -10,7 +10,6 @@ __all__ = [
|
||||
"User",
|
||||
"ApiKey",
|
||||
"Usage",
|
||||
"UserQuota",
|
||||
"get_db",
|
||||
"get_db_context",
|
||||
"init_db",
|
||||
|
||||
@@ -406,12 +406,21 @@ def init_admin_user(db: Session) -> None:
|
||||
role=UserRole.ADMIN,
|
||||
is_active=True,
|
||||
)
|
||||
admin.quota_usd = cast(Any, 1000.0)
|
||||
admin.set_password(config.admin_password)
|
||||
|
||||
db.add(admin)
|
||||
db.flush() # 分配ID,但不提交事务(由外层 init_db 统一 commit)
|
||||
|
||||
from src.services.wallet import WalletService
|
||||
|
||||
WalletService.initialize_user_wallet(
|
||||
db,
|
||||
user=admin,
|
||||
initial_gift_usd=0,
|
||||
unlimited=True,
|
||||
description="系统管理员初始化钱包",
|
||||
)
|
||||
|
||||
logger.info(f"创建管理员账户成功: {admin.email} ({admin.username})")
|
||||
except Exception as e:
|
||||
logger.error(f"创建管理员账户失败: {e}")
|
||||
@@ -429,9 +438,12 @@ def init_default_models(db: Session) -> None:
|
||||
|
||||
def init_system_configs(db: Session) -> None:
|
||||
"""初始化系统配置"""
|
||||
|
||||
configs: list[dict[str, Any]] = [
|
||||
{"key": "default_user_quota_usd", "value": 10.0, "description": "新用户默认美元配额"},
|
||||
{
|
||||
"key": "default_user_initial_gift_usd",
|
||||
"value": 10.0,
|
||||
"description": "新用户默认初始赠款(美元)",
|
||||
},
|
||||
{"key": "rate_limit_per_minute", "value": 60, "description": "每分钟请求限制"},
|
||||
{"key": "enable_registration", "value": False, "description": "是否开放用户注册"},
|
||||
{"key": "require_email_verification", "value": False, "description": "是否需要邮箱验证"},
|
||||
|
||||
Reference in New Issue
Block a user