# jeedp-saas **Repository Path**: ydc123/jeedp-saas ## Basic Information - **Project Name**: jeedp-saas - **Description**: java快速开发平台-多租户版 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# Jeedp-SaaS 多租户快速开发框架 **Java 企业级多租户 SaaS 快速开发平台 | 共享数据库隔离 | 开箱即用 | 多端统一**
--- ## 简介 Jeedp-SaaS 是基于 Jeedp 单机版改造的多租户 SaaS 企业级快速开发平台。采用**共享数据库 + tenant_id 字段隔离**方案,通过 MyBatis-Plus TenantLineInnerInterceptor 实现自动租户过滤,通过请求头 X-Tenant-Id 识别租户身份。提供租户管理、租户套餐、用户权限管理、数据权限控制、操作审计、系统监控等基础能力。 ## 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 后端框架 | Spring Boot | 2.7.18 | | 权限认证 | Sa-Token | 1.39.0 | | ORM | MyBatis-Plus | 3.5.7 | | 连接池 | Druid | 1.2.23 | | 缓存 | Redis | - | | 配置加密 | Jasypt | 3.0.5 | | 工具库 | Hutool | 5.8.30 | | JSON | Fastjson2 | 2.0.52 | | 系统监控 | OSHI | 6.6.2 | | 表格导出 | Apache Fesod | 2.0.2-incubating | | Web 前端 | Vue 3 + Arco Design | Vue 3.4 / Arco 2.56 | | 移动端 | UniApp | Vue 3 | | 构建工具 | Vite | 5.3 | | 数据库 | PostgreSQL | - | | JDK | JDK | 1.8 | ## 功能模块 ### 租户管理 | 模块 | 说明 | |------|------| | 租户管理 | 租户创建/启停用/过期管理,创建时自动初始化机构、角色、管理员账号 | | 租户套餐 | 菜单权限套餐配置,控制不同租户可用的功能模块 | ### 系统管理 | 模块 | 说明 | |------|------| | 用户管理 | 系统用户配置,支持数据权限过滤 | | 机构管理 | 组织机构树形维护(公司/部门/小组) | | 岗位管理 | 用户职务配置 | | 角色管理 | 角色权限分配、数据范围划分、子角色配置 | | 菜单管理 | 系统菜单、路由、按钮权限标识配置 | | 字典管理 | 系统常用固定数据维护 | | 参数管理 | 系统动态配置参数 | ### 系统监控 | 模块 | 说明 | |------|------| | 在线用户 | 当前活跃用户状态监控,支持强退 | | 定时任务 | 在线添加/修改/删除任务调度,含执行日志 | | 操作日志 | 系统正常操作与异常信息日志记录 | | 登录日志 | 登录记录查询,包含异常登录信息 | | 服务监控 | CPU、内存、磁盘、JVM 等系统信息 | | 缓存监控 | 系统缓存信息查询与命令统计 | ### 通知公告 系统公告信息发布与维护,支持已读状态追踪。 ## 项目结构 ``` jeedp-saas/ ├── jeedp-saas-server/ # 后端服务(Spring Boot + 多租户) │ ├── src/main/java/com/jeedpsaas/ │ │ ├── common/ # 公共模块(工具类、注解、异常、常量、租户上下文) │ │ ├── config/ # 配置类(租户拦截器、多租户插件、数据源等) │ │ ├── framework/ # 框架集成(Sa-Token 权限 + 数据权限 AOP) │ │ ├── monitor/ # 监控模块 │ │ └── system/ # 系统管理模块(含租户管理 CRUD) │ ├── sql/ # 数据库初始化脚本(含 tenant_id) │ └── pom.xml ├── jeedp-saas-web/ # Web 管理端(Vue 3 + Arco Design) │ ├── src/ │ │ ├── api/ # 接口请求(含租户管理/套餐接口) │ │ ├── views/ # 页面组件(含租户管理/套餐页面) │ │ ├── layout/ # 布局组件 │ │ ├── router/ # 路由配置 │ │ └── store/ # 状态管理(含租户状态) │ └── package.json ├── jeedp-saas-app-uniapp/ # 移动端(UniApp + Vue 3) │ ├── pages/ # 页面 │ ├── api/ # 接口请求 │ ├── store/ # 状态管理(含租户状态) │ └── manifest.json └── jeedp-saas-doc/ # 项目文档 + 单机版参考源码 ``` ## 快速开始 ### 环境要求 - JDK 1.8+ - PostgreSQL 12+ - Redis 6+ - Node.js 16+ - Maven 3.6+ ### 1. 克隆项目 ```bash git clone <仓库地址> ``` ### 2. 初始化数据库 ```bash # 创建数据库并执行初始化脚本 psql -U postgres -d jeedp_saas -f jeedp-saas-server/sql/jeedp_saas_postgres.sql ``` ### 3. 启动后端 ```bash cd jeedp-saas-server # 方式一:IDEA 直接运行(需配置环境变量) # 环境变量:JASYPT_ENCRYPTOR_PASSWORD=jeedp2026! # 方式二:命令行启动 mvn spring-boot:run -Dspring-boot.run.arguments="--jasypt.encryptor.password=jeedp2026!" ``` 后端服务默认启动在 `http://localhost:8080` ### 4. 启动 Web 前端 ```bash cd jeedp-saas-web npm install npm run dev ``` Web 前端默认启动在 `http://localhost:5173` ### 5. 启动移动端(可选) 使用 HBuilderX 打开 `jeedp-saas-app-uniapp` 目录,运行到浏览器或模拟器。 ### 默认账号 | 账号 | 密码 | 角色 | |------|------|------| | admin | admin123 | 超级管理员 | ## 核心特性 ### 多租户架构 - **数据隔离**:共享数据库 + tenant_id 字段,MyBatis-Plus TenantLineInnerInterceptor 自动 SQL 过滤 - **租户识别**:请求头 X-Tenant-Id 传递租户标识,登录时支持租户编码识别 - **租户套餐**:通过套餐管理控制不同租户可用的功能菜单 - **租户初始化**:创建租户自动初始化机构、角色、管理员账号 - **平台超管**:tenant_id='0' 的平台租户可查看所有数据,不受租户过滤限制 ### 权限体系 - **接口权限**:基于 Sa-Token 的 `@SaCheckPermission` 注解,按钮级权限控制 - **数据权限**:`@DataScope` 注解 + AOP 切面,支持全部/自定义/机构/本人等 5 种数据范围 - **子角色机制**:支持角色层级配置,用户管理时自动按子角色范围过滤可选角色 - **超级管理员**:admin 账号自动拥有通配权限 `*:*:*` ### 安全防护 - **配置加密**:数据库密码、Redis 密码等敏感配置采用 Jasypt AES 加密存储 - **敏感字段加密**:手机号、邮箱等字段数据库存储密文,查询时自动加解密 - **脱敏显示**:列表接口自动脱敏手机号、邮箱等敏感信息 - **密码策略**:支持密码强度校验、登录失败锁定、密码过期提醒 ### 操作审计 - **操作日志**:`@Log` 注解自动记录增删改操作,含请求参数和响应结果 - **登录日志**:记录登录 IP、浏览器、操作系统、登录状态 - **在线用户**:实时查看当前活跃会话,支持强制下线 ## 相关文档 - [后端使用说明](jeedp-saas-server/README.md) - [Web 前端说明](jeedp-saas-web/README.md) ## License 本项目仅供学习和内部使用。