项目介绍
什么是 元点Saas
元点Saas 是基于 ydadmin 构建的开源多租户 SaaS 应用框架。它继承 ydadmin 的通用后台能力(RBAC / CRUD 代码生成 / 支付集成 / 移动端等),并新增多租户隔离、套餐订阅、插件应用、移动端按租户构建等 SaaS 商业闭环能力。
文档同时面向两类读者:
- 使用者 / 运营者:了解平台后台、租户后台、套餐、订单、插件应用和移动端构建的日常使用方式。
- 开发者 / 贡献者:了解后端分层、多租户红线、插件包规范、前端约定和二次开发流程。
技术栈
| 端 | 技术 |
|---|---|
| 后端 | ThinkPHP 8.1 / PHP 8.4+ / MySQL 8.0+ / Redis 7+ |
| 平台 / 租户后台 | Vue 3 / TypeScript / Element Plus / Vite / Pinia / UnoCSS |
| PC 前台 | Nuxt 3 / Naive UI / Pinia / UnoCSS |
| 移动端 | UniApp / Vue 3 / uview-plus |
SaaS 特性
- 物理三域名隔离 —
admin.*(平台超管)/*.*(租户后台)/ 根域名(公共前台) - TenantContext 自动 scope — Repository 基类自动注入
where('tenant_id', ctx.id()) - 双 JWT secret — 平台与租户用独立的 JWT 密钥
- 生命周期状态机 — trial → active → grace → frozen → disabled
- 订阅 + 订单 — 完整的计费状态机 + 微信/支付宝支付集成
- 插件应用体系 —
kind=app一级应用 +kind=plugin能力插件,支持插件市场、上传、安装、升级、套餐授权和租户启用 - 存储配额硬拦截 — 原子 inc/dec,超限直接拦截
- 功能开关 — 按套餐启停功能,前后端同语义
- 移动端按权益构建 — UniApp 主壳 + 插件分包,租户构建时只合入已授权插件页面
- 装修系统 — PC / 移动端页面装修、链接目录、插件组件和发布版本管理
- 红线测试 — 8 条不可越界场景,CI 自动验证
功能模块
通用功能(继承 ydadmin)
- RBAC 权限管理(管理员 / 角色 / 菜单 / 按钮级权限)
- 系统管理(部门、字典、文件、通知、定时任务、配置)
- 日志审计(登录日志、操作日志)
- 内容管理(协议、公告、用户反馈)
- 渠道管理(微信公众号、小程序)
- 消息系统(短信/微信/站内信模板)
- 支付集成(微信支付 / 支付宝)
- 代码生成器(可视化 CRUD 生成)
SaaS 专属功能
- 平台超管后台(租户管理、套餐管理、订单管理、功能开关)
- 插件应用管理(插件市场、插件上传/登记、安装/升级/卸载、套餐授权、租户启用)
- 租户续费(套餐选择、扫码支付、订单查询)
- 租户移动端配置与构建(H5 / 小程序等目标平台)
- 租户装修(页面、组件、链接目录、插件组件渲染)
- CLI 定时任务(生命周期扫描、过期订单清理)
插件应用定位
插件应用是 元点Saas 的核心扩展单元。完整业务模块可以作为 kind=app 一级应用发布,例如商城、CMS;可复用能力可以作为 kind=plugin 发布,例如营销组件或第三方能力。平台可以把插件授权到不同套餐,租户在授权范围内启用,框架自动处理租户上下文、权益校验、菜单权限、装修组件和移动端分包合并。
使用者可先阅读 功能总览 和 插件介绍,开发者可继续阅读 插件开发指南。
与 upstream 的关系
本仓库是 ydadmin 的 soft fork,通过 scripts/sync-upstream.sh 定期 cherry-pick upstream 新特性。如果不需要多租户功能,可直接使用 upstream ydadmin。
