# SaaS-Admin **Repository Path**: CodingKeep/Saas-admin ## Basic Information - **Project Name**: SaaS-Admin - **Description**: 🔥 官方推荐 🔥**SaaS Admin** 是一款开源企业级多租户后台管理系统,毫无保留给个人及企业免费使用。注重 **安全性** 和 **多租户** 场景,采用前后端分离架构,支持 PC 端和小程序端,具有完善的权限管理、多租户隔离、接口加解密等功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2026-01-30 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Spring Boot Vue uni-app JDK

MySQL Redis Elasticsearch Sa-Token MyBatis-Plus License

SaaS Admin 企业级多租户后台管理系统

开箱即用、功能完整、安全可靠的企业级 SaaS 多租户后台管理系统
基于 Spring Boot 3 + Vue 3 + uni-app + Sa-Token + MyBatis-Plus + Naive UI + ECharts

适用于:企业后台、SaaS 平台、多租户系统、快速开发脚手架

项目截图功能详解快速开始完整配置商用说明联系作者

Gitee Stars Gitee Forks Release

--- ## 项目简介 **SaaS Admin** 是一款企业级多租户后台管理系统,集成了完整的商业化功能,可直接用于生产环境。 ### 核心优势 | 优势 | 说明 | |:---:|------| | **真正的多租户** | 基于 tenant_id 的行级数据隔离,支持二级域名自动识别租户 | | **企业级安全** | RSA + AES-GCM 混合加密,HMAC 签名防篡改,2FA 双因素认证,IP 白名单 | | **多端支持** | PC 管理端(Vue 3)+ 小程序端(uni-app:微信/H5/App) | | **开箱即用** | 完整的 RBAC 权限、审计日志、代码生成器、定时任务等 | | **商业化完整** | 支付计费、统计分析、消息推送、工单系统、工作流引擎 | | **AI 智能客服** | 集成 Deep Seek/豆包,支持知识库、自动回复规则 | | **商业友好** | MIT 开源协议,可免费商用,无任何限制 | ### 为什么选择 SaaS Admin? | 对比项 | SaaS Admin | 若依 RuoYi | 其他框架 | |:------:|:----------:|:----------:|:--------:| | 多租户支持 | ✅ 原生支持 | ❌ 需改造 | ❌ 需改造 | | 接口加密 | ✅ RSA+AES | ❌ 无 | ❌ 无 | | 支付计费 | ✅ 完整实现 | ❌ 无 | ❌ 无 | | 智能客服 | ✅ AI 集成 | ❌ 无 | ❌ 无 | | 全文搜索 | ✅ Elasticsearch | ❌ 无 | ❌ 无 | | 小程序端 | ✅ uni-app | ❌ 无 | 部分有 | | Spring Boot 3 | ✅ 3.2.x | ❌ 2.x | 部分有 | | 商用授权 | ✅ MIT 免费 | ✅ MIT | 各异 | --- ## 项目截图 ### 登录页面 [登录页面](docs/images/login.png) ### 工作台首页 [工作台首页](docs/images/dashboard.png) ### 用户管理 [用户管理](docs/images/user.png) ### 租户管理 [租户管理](docs/images/tenant.png) ### 支付计费 [订单管理](docs/images/order.png) ### 工单系统 [工单系统](docs/images/ticket.png) ### 智能客服 [智能客服](docs/images/chatbot.png) ### 系统监控 [系统监控](docs/images/monitor.png) ### 数据统计 [数据统计](docs/images/statistics.png) ### 安全增强 [安全增强](docs/images/security.png) --- ## 功能模块详解 ### 1. 系统管理 | 子模块 | 作用 | 使用方法 | |--------|------|----------| | **用户管理** | 管理系统中所有用户的账号信息 | 新增用户时填写用户名/密码/昵称/部门/角色,可重置密码、停用账号 | | **角色管理** | 基于RBAC的权限分配 | 创建角色→勾选该角色可访问的菜单和按钮权限→将角色分配给用户 | | **菜单管理** | 管理左侧导航栏的菜单和按钮权限标识 | 可添加目录(M)、菜单(C)、按钮(F)三种类型,按钮类型用于控制页面内的操作权限 | | **部门管理** | 管理组织架构(树形结构) | 创建部门层级关系,用户归属到具体部门,配合数据权限实现部门级别的数据隔离 | | **字典管理** | 管理系统中的下拉选项数据 | 先创建字典类型(如"用户性别"),再添加字典数据(男/女/未知),前端通过字典类型编码获取选项列表 | | **参数配置** | 管理系统全局配置参数 | 以键值对形式存储,如 `sys.captcha.enabled=true` 控制验证码开关,代码中通过 key 读取 | | **安全增强** | 2FA双因素认证、IP黑白名单、异常登录检测、安全扫描 | 在"2FA"标签页生成二维码→用手机扫码绑定→启用后每次登录需输入6位动态验证码;IP管理可添加白名单/黑名单 | | **通知公告** | 发布系统通知和公告 | 新增公告→选择类型(通知/公告)→填写内容→发布后所有用户可在工作台首页和消息中心看到 | ### 2. 租户管理 | 子模块 | 作用 | 使用方法 | |--------|------|----------| | **租户列表** | 管理平台上的所有租户(企业客户) | 创建租户时设置名称/编码/联系人/套餐/有效期/账号上限,每个租户的数据通过 `tenant_id` 完全隔离 | | **套餐管理** | 定义租户可购买的服务套餐 | 创建套餐设置账号上限/存储限制/API调用限制,不同套餐对应不同的功能和资源额度 | > **核心概念:** 多租户架构下,每条数据都带 `tenant_id`,MyBatis-Plus 多租户插件自动在 SQL 中添加 `WHERE tenant_id = ?`,实现数据行级隔离。 ### 3. 支付计费 | 子模块 | 作用 | 使用方法 | |--------|------|----------| | **订单管理** | 管理租户购买/续费套餐产生的订单 | 租户选择套餐→系统创建订单→支付→订单状态变为已支付→自动延长租户有效期 | | **账单管理** | 按月生成租户的费用账单 | 系统自动按月生成,管理员可查看所有账单的支付状态 | | **发票管理** | 管理租户申请的发票 | 租户申请发票→管理员审核开具→可下载电子发票或邮寄纸质发票 | ### 4. API限流与配额 | 作用 | 使用方法 | |------|----------| | 保护系统免受恶意请求或过度调用 | 创建限流规则:选择资源路径(如 `/api/auth/login`)→选择限流类型(按租户/用户/IP)→设置限流次数和周期(如每分钟10次)。超限时 API 返回 429 错误 | ### 5. 工单系统 | 作用 | 使用方法 | |------|----------| | 用户提交问题/建议,客服人员处理并跟踪 | 用户创建工单→选择分类和优先级→客服在后台查看并分配处理人→多轮回复(支持附件和内部备注)→解决后关闭→用户评价满意度 | ### 6. 工作流 | 作用 | 使用方法 | |------|----------| | 处理需要多级审批的业务流程 | "我的待办"查看待审批任务→点击审批/驳回并填写意见→"我发起的"跟踪自己发起的流程进度。系统已内置请假审批和报销审批两个流程模板 | ### 7. 数据统计 | 作用 | 使用方法 | |------|----------| | 可视化展示业务数据,辅助运营决策 | 查看租户统计(总数/活跃/新增)、收入统计(今日/本月/本年)、用户行为分析、套餐收入分布饼图。可切换时间范围(周/月/年) | ### 8. 消息推送 | 作用 | 使用方法 | |------|----------| | 查看系统发出的所有消息记录 | 支持邮件(SMTP)、短信(阿里云/腾讯云)、站内消息三种类型。可查看发送状态,失败的消息支持重新发送 | ### 9. 数据备份 | 作用 | 使用方法 | |------|----------| | 保障数据安全,防止数据丢失 | 手动备份:点击"手动备份"输入名称;自动备份:系统每天凌晨2点自动执行。备份完成后可下载或恢复 | ### 10. 智能客服 | 子模块 | 作用 | 使用方法 | |--------|------|----------| | **客服对话** | AI驱动的在线客服 | 用户输入问题→系统先匹配自动回复规则→未匹配则调用 AI(Deep Seek/豆包)生成回答→记录聊天历史 | | **知识库管理** | 管理客服的问答知识 | 添加知识条目(分类/标题/内容/标签),AI 回答问题时会优先从知识库中检索相关答案 | ### 11. 系统监控 | 子模块 | 作用 | 使用方法 | |--------|------|----------| | **在线用户** | 查看当前在线的用户,可强制下线 | 显示在线用户列表,选择用户点击"强退"可踢出登录 | | **服务监控** | 实时监控服务器资源使用情况 | 展示 CPU/内存/磁盘使用率、JVM 信息,每30秒自动刷新 | | **告警管理** | 设置告警规则,系统异常时自动通知 | 创建规则(如 CPU>80%)→触发时自动发送邮件/站内消息→在告警日志中确认/关闭 | | **登录日志** | 记录所有登录行为 | 查看登录成功/失败记录,包含用户名、IP、浏览器、登录地点 | | **操作日志** | 记录所有增删改操作 | 查看操作人/操作时间/请求参数/返回结果/耗时,用于审计追踪 | | **定时任务** | 管理系统中的定时任务 | 基于 Quartz 框架,可新增/暂停/恢复/执行定时任务,支持 cron 表达式 | ### 12. 代码生成 | 作用 | 使用方法 | |------|----------| | 从数据库表自动生成 CRUD 代码 | 导入数据库表→预览生成的代码(Entity/Mapper/Service/Controller)→下载 ZIP 包→解压后复制到项目中 | --- ## 模块间协作关系 ``` 用户登录 → Sa-Token 认证 → IP白名单检查 → 限流检查 → 配额检查 → 业务处理 ↓ 租户注册 → 选择套餐 → 创建订单 → 支付 → 开通租户 → 分配资源配额 ↓ 数据隔离(tenant_id) → 各模块CRUD ``` --- ## 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |:----:|:----:|------| | Spring Boot | 3.2.x | 基础框架 | | Sa-Token | 1.37.x | 轻量级认证授权 | | MyBatis-Plus | 3.5.x | ORM + 多租户插件 | | Quartz | 2.3.x | 定时任务调度 | | MySQL | 8.0+ | 主数据库 | | Redis | 6.0+ | 缓存/会话/分布式锁 | | Elasticsearch | 8.11.x | 全文搜索引擎(可选) | | Druid | 1.2.x | 数据库连接池 | | MinIO | 8.5.x | 对象存储(可选) | | TOTP | 1.7.x | 双因素认证 | ### PC 管理端 (saas-admin-web) | 技术 | 版本 | 说明 | |:----:|:----:|------| | Vue | 3.4.x | 渐进式 JavaScript 框架 | | Vite | 5.x | 下一代前端构建工具 | | TypeScript | 5.x | JavaScript 类型超集 | | Naive UI | 2.x | Vue 3 组件库 | | ECharts | 5.x | 数据可视化图表库 | | Pinia | 2.x | 状态管理 | ### 小程序端 (saas-admin-mp) | 技术 | 版本 | 说明 | |:----:|:----:|------| | uni-app | 3.x | 跨平台开发框架 | | Vue | 3.x | 前端框架 | | TypeScript | 5.x | 类型支持 | --- ## 项目结构 ``` SaaS-Admin/ │ ├── saas-admin-server/ # 后端项目 (Spring Boot) │ ├── saas-common/ # 通用模块:响应体、异常、工具类 │ ├── saas-framework/ # 框架模块:Sa-Token、多租户、加解密 │ ├── saas-system/ # 系统模块:用户、角色、菜单、部门 │ ├── saas-infra/ # 基础设施:Redis、文件存储、验证码、AI服务 │ ├── saas-admin/ # 启动模块:Controller、配置、入口 │ └── sql/ # 数据库脚本 │ ├── init.sql # 完整建表+初始数据 │ └── test-data.sql # 测试数据 │ ├── saas-admin-web/ # PC 管理端 (Vue 3 + Naive UI) │ └── src/ │ ├── api/ # API 接口定义 │ ├── layouts/ # 布局组件 │ ├── router/ # 路由配置 │ ├── stores/ # Pinia 状态 │ ├── utils/ # 工具函数 │ └── views/ # 页面组件 │ ├── saas-admin-mp/ # 小程序端 (uni-app) │ └── src/ │ ├── pages/ # 页面组件 │ ├── stores/ # Pinia 状态 │ └── utils/ # 工具函数 │ ├── docs/images/ # 项目截图(放入截图后README自动显示) ├── LICENSE # MIT 开源协议 └── README.md # 项目说明 ``` --- ## 快速开始 ### 环境要求 | 环境 | 版本 | 必须 | 说明 | |:----:|:----:|:----:|------| | JDK | 17+ | ✅ | 推荐 JDK 21 | | Maven | 3.8+ | ✅ | 依赖管理 | | Node.js | 18+ | ✅ | 前端构建 | | MySQL | 8.0+ | ✅ | 数据库 | | Redis | 6.0+ | ✅ | 缓存 | | Elasticsearch | 8.11+ | 可选 | 全文搜索 | | MinIO | — | 可选 | 文件存储 | ### 1. 克隆项目 ```bash git clone https://gitee.com/zhongshichaosss/Saas-admin.git cd Saas-admin ``` ### 2. 初始化数据库 ```bash mysql -u root -p < saas-admin-server/sql/init.sql # 可选:导入测试数据 mysql -u root -p saas_admin < saas-admin-server/sql/test-data.sql ``` ### 3. 配置后端 编辑 `saas-admin-server/saas-admin/src/main/resources/application.yml`: ```yaml # 数据库配置(必须修改) spring: datasource: url: jdbc:mysql://localhost:3306/saas_admin?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: "123456" # Redis 配置(必须修改) data: redis: host: localhost port: 6379 password: 123456 ``` ### 4. 启动后端 ```bash cd saas-admin-server mvn clean package -DskipTests java -jar saas-admin/target/saas-admin.jar ``` ### 5. 启动前端 ```bash cd saas-admin-web npm install npm run dev ``` ### 6. 访问系统 | 服务 | 地址 | |:----:|------| | PC 前端 | http://localhost:3004 | | 后端 API | http://localhost:8080/api | | Swagger | http://localhost:8080/api/doc.html | ### 默认账号 | 账号 | 密码 | 说明 | |:----:|:----:|------| | admin | admin123 | 超级管理员(拥有所有权限) | > **安全提示**:生产环境请立即修改默认密码! --- ## 安全架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 登录阶段 │ ├─────────────────────────────────────────────────────────────┤ │ 1. 客户端获取服务端 RSA 公钥 │ │ 2. 客户端生成随机 AES Key │ │ 3. RSA 公钥加密 AES Key → X-EK Header │ │ 4. AES-GCM 加密登录数据 │ │ 5. 服务端 RSA 私钥解密得 AES Key,再解密数据 │ ├─────────────────────────────────────────────────────────────┤ │ 业务阶段 │ ├─────────────────────────────────────────────────────────────┤ │ 1. Session 级 AES Key + HMAC Key │ │ 2. AES-GCM 加密请求/响应 │ │ 3. HMAC-SHA256 签名防篡改 │ │ 4. Timestamp + Nonce 防重放 │ ├─────────────────────────────────────────────────────────────┤ │ 安全增强 │ ├─────────────────────────────────────────────────────────────┤ │ 1. 2FA 双因素认证(TOTP,支持 Google Authenticator) │ │ 2. IP 白名单/黑名单管理 │ │ 3. 异常登录检测(IP变化、地点变化、失败次数) │ │ 4. 安全扫描(SQL注入、XSS、路径遍历检测) │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 多租户架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ sys_user 表 │ │ ┌───────┬───────────┬──────────────────────────────────┐ │ │ │ id │ tenant_id │ 其他字段... │ │ │ ├───────┼───────────┼──────────────────────────────────┤ │ │ │ 1 │ 1 │ admin (默认租户) │ │ │ │ 100 │ 2 │ tech_admin (科技公司) │ │ │ │ 200 │ 3 │ edu_admin (教育机构) │ │ │ └───────┴───────────┴──────────────────────────────────┘ │ │ │ │ MyBatis-Plus 多租户插件自动添加 WHERE tenant_id = ? │ │ → 确保租户数据完全隔离,无需手动处理 │ └─────────────────────────────────────────────────────────────┘ ``` | 识别方式 | 说明 | 适用场景 | |:----:|------|----------| | 域名识别 | 通过绑定域名自动识别 | 生产环境 | | 登录选择 | 登录时手动选择租户 | 开发测试 | --- ## 商用说明 本项目基于 **MIT 协议** 开源,可免费商用、自由修改和分发,仅需保留原始版权声明。 如需私有化部署、定制开发、技术培训等企业服务,欢迎联系作者。 --- ## 关于作者
程序员⑩
开源作者全栈开发,抖音技术博主

专注于后台管理系统的开发与优化

Gitee
## 联系方式 | 方式 | 联系 | 说明 | |:----:|------|------| | 微信 | Keep4212 | 加好友请备注来源 | | Gitee | [CodingKeep](https://gitee.com/CodingKeep/Saas-admin) | 项目仓库 | --- ## 参与贡献 欢迎提交 Issue 和 Pull Request! 1. **Fork** 本仓库 2. **创建分支** `git checkout -b feature/AmazingFeature` 3. **提交更改** `git commit -m 'Add some AmazingFeature'` 4. **推送分支** `git push origin feature/AmazingFeature` 5. **提交 PR** --- ## Star History 如果觉得项目不错,请点个 Star 支持一下! [![Star History Chart](https://api.star-history.com/svg?repos=zhongshichaosss/Saas-admin&type=Date)](https://star-history.com/#zhongshichaosss/Saas-admin&Date) ---

SaaS Admin - 让企业级开发更简单

Made with ❤️ by 程序员⑩

Copyright © SaaS Admin. All rights reserved.