🏗️ 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)