# things-plus **Repository Path**: zzsvip/things-plus ## Basic Information - **Project Name**: things-plus - **Description**: 完整的 基础业务框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-04 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Things Plus 系统 Things Plus 是一个基于 Spring Boot 和微服务架构的综合管理系统,包含多租户、认证、网关、系统管理等模块。该项目适用于需要构建企业级 SaaS 平台的场景,提供了用户管理、角色管理、菜单管理、租户管理、客户端管理等功能。 ## 项目结构 - **things-auth**:认证服务,处理用户登录、验证码生成、租户管理等功能。 - **things-gateway**:网关服务,作为整个系统的入口,负责路由和权限过滤。 - **things-system**:系统核心模块,包含用户、角色、菜单、部门、租户等基础数据管理。 - **things-resource**:资源服务,提供远程调用接口供其他服务使用。 - **things-modules**:包含各个业务模块,如定时任务(things-job)等。 - **things-common**:公共模块,包含工具类、常量、异常处理、MyBatis Plus 配置等。 - **things-visual**:可视化模块,包含监控(things-monitor)、Nacos 配置中心(things-nacos)、Seata 分布式事务(things-seata-server)等组件。 - **things-api**:API 接口模块,定义了各服务间的远程调用接口。 ## 功能特性 - **多租户支持**:系统支持多租户架构,每个租户拥有独立的配置和数据。 - **RBAC 权限模型**:基于角色的访问控制,支持菜单权限、操作权限、数据权限。 - **OAuth2 认证**:支持 OAuth2 协议进行用户认证,包含密码模式等。 - **动态数据源**:支持多数据源配置,适用于复杂业务场景。 - **系统监控**:集成 Spring Boot Admin,提供服务状态监控。 - **分布式配置中心**:使用 Nacos 管理分布式配置。 - **分布式事务**:集成 Seata 实现分布式事务管理。 - **任务调度**:基于 SnailJob 实现任务调度功能。 - **前后端分离架构**:前端可对接 Vue/React 等现代前端框架。 ## 技术栈 - **后端**:Spring Boot、Spring Cloud、Dubbo、MyBatis Plus、Nacos、Seata、SnailJob、Spring Security、Sa-Token、Redis、SkyWalking - **前端**:可对接 Vue、React 等 - **中间件**:Nacos(配置中心/注册中心)、Seata(分布式事务)、SnailJob(任务调度)、Prometheus(监控)、SkyWalking(链路追踪) - **数据库**:MySQL、PostgreSQL(可配置) ## 模块说明 ### things-auth(认证服务) - 提供用户登录、验证码生成、租户管理。 - 支持多种登录方式(如密码登录)。 - 集成 Sa-Token 实现权限控制。 - 使用 Redis 存储登录状态。 ### things-gateway(网关服务) - 作为系统入口,负责请求路由。 - 集成 Sa-Token 实现权限过滤。 - 支持白名单配置,允许匿名访问特定接口。 ### things-system(系统核心模块) - 用户管理:支持用户增删改查、角色分配、岗位分配。 - 角色管理:支持角色权限配置(菜单权限、操作权限、数据权限)。 - 菜单管理:支持动态菜单配置,支持多级菜单。 - 部门管理:支持部门树结构,支持多层级部门管理。 - 租户管理:支持租户注册、套餐管理、租户配置。 - 客户端管理:支持 OAuth2 客户端配置。 - 字典管理:支持全局字典配置。 - 通知公告:支持系统级通知公告管理。 ### things-resource(资源服务) - 提供远程调用接口,供其他服务调用。 - 包含消息推送接口,支持 SseEmitter 实现实时消息推送。 ### things-common(公共模块) - 包含工具类(如 Redis 工具、JSON 工具、字符串工具等)。 - 包含异常处理模块,统一处理系统异常。 - 包含 MyBatis Plus 配置,支持自动分页、自动填充等功能。 - 包含多租户支持模块,实现租户隔离。 - 包含权限控制模块,支持 Sa-Token 集成。 ### things-visual(可视化模块) - **things-monitor**:集成 Spring Boot Admin,提供服务监控功能。 - **things-nacos**:Nacos 配置中心和注册中心。 - **things-seata-server**:Seata 分布式事务服务端。 - **things-snailjbo-server**:SnailJob 任务调度服务端。 ## 快速启动 ### 1. 环境准备 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ - Nacos 2.0+ - Seata 1.6+ - Node.js(可选,用于前端) ### 2. 数据库准备 执行 `script/sql/nacos-config.sql` 和 `script/sql/torna.sql` 初始化数据库。 ### 3. 启动 Nacos ```bash docker-compose up -d things-nacos ``` ### 4. 启动 Seata ```bash docker-compose up -d things-seata-server ``` ### 5. 启动系统模块 ```bash mvn clean package docker-compose up -d ``` ## 使用说明 - 访问网关地址:`http://localhost:8080` - 默认管理员账号:`admin / admin123` - 各服务端口: - things-auth:8081 - things-gateway:8080 - things-system:8082 - things-resource:8083 - things-monitor:9010 - things-nacos:8848 - things-seata-server:8091 ## 贡献指南 欢迎提交 Pull Request,提交前请确保: - 遵循项目编码规范 - 提供清晰的提交信息 - 通过所有单元测试 - 更新相关文档 ## 协议 本项目采用 MIT 协议,详情请参见 [LICENSE](LICENSE) 文件。