🏗️ FastapiAdmin SaaS 产品架构图
v3.6.0 · 40 模块 · 多租户企业级 SaaS 平台
1
业务架构总览
PLATFORM LAYER · 平台层
🔐 Auth 认证
🏢 Tenant 租户
📦 Package 套餐
🔌 Plugin 插件
📊 Dashboard 大盘
TENANT LAYER · 租户层(数据隔离:tenant_id)
👥 User 用户
🎭 Role 角色
🏛️ Dept 部门
💼 Position 岗位
📋 Menu 菜单
🎫 Ticket 工单
📖 Dict 字典
📢 Notice 公告
⚙️ Params 参数
📝 OpLog 操作日志
✉️ Invite 邀请
📁 File 文件
COMMERCIAL LAYER · 商业运营层
💳 Order 订单支付
🧾 Invoice 发票
↩️ Refund 退款
📊 API Usage 用量
INFRASTRUCTURE LAYER · 基础设施层
📧 Email 邮件
📋 AuditLog 审计
⏰ Cronjob 定时
🔀 Workflow 工作流
🖥️ Monitor 监控
🔍 Health
平台层:超管管理资源
租户层:按 tenant_id 隔离
商业层:支付/发票/退款
基础设施层:支撑服务
2
数据隔离架构(三层机制)
Layer 1 · ORM 事件层(SQLAlchemy before_insert / before_update)
@event.listens_for(Session, 'before_flush') → 拦截所有 INSERT/UPDATE,自动注入 tenant_id
get_current_tenant_id()
从 ContextVar 读取
auto_set_tenant_id()
写入 tenant_id
prevent_cross_tenant()
UPDATE/DELETE 时校验
platform_* 表自动跳过
isinstance(obj, PlatformMixin)
Layer 2 · CRUD 业务层(自动过滤)
query.filter(Model.tenant_id == current_tenant_id)
AdminCrudSQL 自动拼接 WHERE tenant_id=?
PlatformCrudSQL 跳过 filter(无 tenant_id)
Layer 3 · 权限策略层(数据权限 + 菜单权限)
数据范围:1=本人 2=本部门 3=本部门及以下 4=全部
菜单权限:套餐菜单 ∪ 自定义授权菜单
角色越权防护:非超管不可分配非可用菜单
三层机制层层递进:ORM事件防写入 → CRUD防读取 → 策略防越权
3
商业化闭环
🆕 租户注册
选择默认套餐
创建 owner 角色 + 分配菜单
注册成功
🎁 试用期
trial_days 天
status=0 (active)
到期前提醒
⏳ 到期/宽限期
grace_days 天
status=1 (grace)
未续费
🚫 停用/过期
status=2/4
禁止登录
💳 付费续费流程(任意阶段可触发)
📋 选择套餐
自助浏览 / 超管分配
影响预览(菜单+配额对比)
🧾 生成订单
order_no 唯一订单号
15 分钟有效期
💵 在线支付
支付宝 / 微信支付
扫码/Native支付
✅ 回调激活
IP白名单+签名验证
分布式锁+状态校验
🧾 申请发票
普票/专票 → 百望云API → PDF下载
一单一票 · 30天时限 · 金额匹配
↩️ 申请退款
7天内可退 → 超管审核 → 原路退回
套餐回退 · 全额退款 · 兼容降级回退
📊 运营大盘
MRR/退款率/API用量/套餐分布/收入趋势
实时聚合 · 面向超管 · 决策支持
📋 AuditLog 审计轨迹:全流程不可篡改记录
tenant.create → order.create → payment.callback → invoice.issue → refund.approve → 所有操作 JSON(before/after) 对比
订阅 → 支付 → 激活 → 开票 → 用量统计 → 续费/升级 → 完整商业化闭环
4
租户生命周期状态机
0 · ACTIVE
正常使用
1 · GRACE
宽限期(7天)
2 · SUSPENDED
停用(禁止登录)
4 · EXPIRED
已过期
3 · FROZEN
人工冻结
5 · ARCHIVED
已归档
🗑️ DELETED
删除(仅ARCHIVED可删)
到期
宽限期过
30天超期
续费→恢复ACTIVE
超管冻结
超管解冻
超管归档
超管删除
自动流转
手动操作/恢复
删除操作
5
模块统计(40 模块)
模块分布(按 Part)
Part 1: 平台架构与基础设施
15 个模块(Auth · User · Role · Dept · Position · Menu · Dict · Notice · Params · Logs · Tenant · Package · Ticket · Plugin · Expiry)
Part 2: 商业化运营
8 个模块(Email · Order · TenantSelf · APIUsage · UserInvite · Invoice · AuditLog · Dashboard)
Part 3: API汇总 · 数据库 · 安全 · 未来扩展
4 个章节(API 汇总 · DB 表结构 · 安全要求 · 未来扩展)
Part 4: Plugin 插件生态
7 个模块(AI Chat · Cronjob · Workflow · CodeGen · Demo · Monitor · Common)
Part 5: 商业运营(新增)
3 个模块(Invoice · AuditLog · Dashboard)