# LeafBoss **Repository Path**: refork/leaf-boss ## Basic Information - **Project Name**: LeafBoss - **Description**: Leaf Boss 是一款轻量高效的业务运营支撑系统,基于 Spring Boot 3 + Vue3 + Element Plus + MySQL + JavaScript 技术栈构建,专注于卡密全生命周期管理与安全验证服务。 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: https://gitee.com/Yangshengzhou/leaf-boss - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-03-22 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LEAF-BOSS - 业务运营支撑系统
[![GitHub stars](https://img.shields.io/github/stars/YangShengzhou03/LeafBoss?style=for-the-badge&logo=github)](https://github.com/YangShengzhou03/LeafBoss/stargazers) [![GitHub forks](https://img.shields.io/github/forks/YangShengzhou03/LeafBoss?style=for-the-badge&logo=github)](https://github.com/YangShengzhou03/LeafBoss/network/members) [![GitHub issues](https://img.shields.io/github/issues/YangShengzhou03/LeafBoss?style=for-the-badge&logo=github)](https://github.com/YangShengzhou03/LeafBoss/issues) [![GitHub license](https://img.shields.io/github/license/YangShengzhou03/LeafBoss?style=for-the-badge)](https://github.com/YangShengzhou03/LeafBoss/blob/main/LICENSE) [![Vue.js](https://img.shields.io/badge/Vue.js-3.4.0-42b883?style=for-the-badge&logo=vuedotjs)](https://vuejs.org/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.1.0-6DB33F?style=for-the-badge&logo=springboot)](https://spring.io/projects/spring-boot) **一个现代化的业务运营支撑系统,采用前后端分离架构** [快速开始](#-快速开始) • [功能特性](#-功能特性) • [在线演示](#-在线演示) • [API文档](API_DOCUMENTATION.md)
## 功能特性 LeafBoss 是一个功能完善的业务运营支撑系统,提供了全方位的业务管理功能。系统支持完整的卡密生命周期管理,包括卡密的批量生成、导出、验证、激活和禁用等操作,让卡密管理变得简单高效。产品管理模块支持产品信息维护和多规格配置,可以灵活定义不同产品的属性和特性。规格管理功能允许管理员灵活定义各种授权方案,支持不同时长和价格组合的规格配置,满足多样化的业务需求。 公司管理模块提供了公司信息的完整维护功能,包括公司基本信息、状态管理以及评论统计等功能,帮助企业更好地了解客户反馈。评论管理系统支持用户评论的查看和管理,管理员可以按公司和卡密进行筛选评论,并可以对不当评论进行删除处理。人员管理方面,系统提供了管理员账户管理和客户用户管理两大模块,支持权限控制、状态管理以及用户查询和筛选等操作,确保系统的安全性和可管理性。 数据统计功能提供了可视化的数据报表,可以实时监控系统的使用情况,包括卡密库存分布、当日销量统计、月度营收对比以及详细的操作日志审计,为管理决策提供数据支持。操作日志模块记录了系统中的所有关键操作(登录、卡密、产品、规格、用户等),提供完整的操作审计功能,支持多维度查询和清空管理,保障系统的安全性。系统采用 JWT Token 认证机制,确保用户身份的安全验证,同时支持响应式设计,可以在 PC、平板、手机等多种设备上正常使用,基于 Spring Boot 3 和 Vue 3 的现代化架构保证了系统的稳定性和响应速度。 ### 系统界面预览 ![LEAF-BOSS 业务运营支撑系统](https://gitee.com/Yangshengzhou/leaf-boss/raw/master/assets/LEAF-BOSS-Overview.png) ![LEAF-BOSS 登录页面](https://gitee.com/Yangshengzhou/leaf-boss/raw/master/assets/LEAF-BOSS-Login.png) ## 快速开始 系统默认提供了一个管理员账户,邮箱为 admin@qq.com,密码为 123456,使用这个账户可以登录系统并访问所有管理功能。 ![LEAF-BOSS 管理员仪表盘](https://gitee.com/Yangshengzhou/leaf-boss/raw/master/assets/LEAF-BOSS-Dashboard.png) ![LEAF-BOSS 商品管理](https://gitee.com/Yangshengzhou/leaf-boss/raw/master/assets/LEAF-BOSS-Product-Management.png) ![LEAF-BOSS 管理人员](https://gitee.com/Yangshengzhou/leaf-boss/raw/master/assets/LEAF-BOSS-Admin-Management.png) ## 系统架构 LeafBoss 采用经典的三层架构设计,包括前端界面层、后端服务层和数据存储层。前端界面层使用 Vue 3 和 Element Plus 构建,提供友好的用户交互界面,支持组件化开发和响应式设计,确保在不同设备上都有良好的用户体验。后端服务层基于 Spring Boot 3 框架,使用 MyBatis Plus 进行数据访问,采用 JWT Token 进行用户认证,提供完整的业务逻辑处理和事务管理功能。数据存储层使用 MySQL 8.0 数据库,通过 Repository 模式进行数据映射和持久化操作,确保数据的安全性和一致性。 前端技术栈包括 Vue 3.4.0 作为渐进式 JavaScript 框架,Element Plus 2.4.0 作为基于 Vue 3 的 UI 组件库,Vue Router 4.2.0 作为官方路由管理器,Axios 1.6.0 作为 HTTP 客户端库,Sass 1.69.0 作为 CSS 预处理器。后端技术栈包括 Spring Boot 3.1.0 作为 Java 企业级开发框架,MyBatis Plus 3.5.4.1 作为数据持久层框架,MySQL 8.0.33 作为关系型数据库,Maven 3.6+ 作为项目构建工具,Java 17.0+ 作为开发语言,JWT 0.11.5 作为 JSON Web Token 认证工具。 项目结构分为前端和后端两个主要部分。前端项目包含 public 静态资源目录和 src 源代码目录,src 目录下包含 components 公共组件、views 页面组件、route 路由配置、services API 服务和 utils 工具函数等模块。后端项目包含 src/main/java Java 源代码目录和 src/main/resources 资源文件目录,Java 源代码目录下包含 controller 控制器层、service 服务层、mapper 数据访问层、entity 实体类、dto 数据传输对象、config 配置类、common 公共类和 utils 工具类等模块。这种清晰的分层架构使得系统易于维护和扩展。 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 前端界面层 │ │ 后端服务层 │ │ 数据存储层 │ │ │ │ │ │ │ │ Vue 3 + │◄──►│ Spring Boot 3 │◄──►│ MySQL 8.0 │ │ Element Plus │ │ MyBatis Plus + JWT │ │ │ │ │ │ │ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 用户交互层 │ │ 业务逻辑层 │ │ 数据持久层 │ │ │ │ │ │ │ │ 组件化开发 │ │ 服务层封装 │ │ Repository │ │ 响应式设计 │ │ 事务管理 │ │ 数据映射 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ## 开发指南 ### 前端开发 前端开发需要进入 frontend 目录,首先执行 npm install 安装项目依赖,然后可以使用 npm run serve 启动开发服务器,开发服务器支持热重载功能,修改代码后会自动刷新页面。开发过程中可以使用 npm run lint 进行代码检查,确保代码质量符合规范。开发完成后,执行 npm run build 构建生产版本,构建结果会生成在 dist 目录中,可以部署到生产环境。如果项目包含测试用例,还可以使用 npm run test 运行测试。 ### 后端开发 后端开发需要进入 backend 目录,使用 Maven 进行项目管理和构建。执行 mvn clean compile 可以编译项目,检查代码是否有编译错误。使用 mvn spring-boot:run 可以直接运行应用程序,适合开发调试。执行 mvn clean package 可以打包项目,生成可执行的 jar 文件,用于生产环境部署。如果项目包含测试用例,可以使用 mvn test 运行测试,确保代码质量。系统使用 MyBatis Plus 进行数据访问,首次启动时需要创建数据库并执行初始化脚本,系统会自动创建所需的数据表和初始管理员账户。 ### API接口 LeafBoss 提供了完整的 RESTful API 接口,详细的 API 接口文档请参考 API_DOCUMENTATION.md 文件。认证接口支持用户登录,通过 POST /api/auth/login 接口提交邮箱和密码,成功后返回 JWT Token,后续请求需要在请求头中携带该 Token。卡密管理接口包括获取卡密列表、创建卡密、验证卡密等功能,支持分页查询和条件筛选。产品管理接口提供产品的增删改查功能,支持产品信息的完整管理。 系统还提供了公共接口,无需认证即可访问。例如验证卡密有效性接口可以通过 GET /api/public/card-keys/verify/{key} 访问,系统会自动验证卡密并激活,成功后返回产品信息。管理员登录获取令牌可以使用 curl 命令发送 POST 请求到 /api/auth/login 接口,携带邮箱和密码信息。获取产品列表需要先登录获取 Token,然后在请求头中添加 Authorization: Bearer YOUR_JWT_TOKEN,通过 GET /api/products 接口获取产品列表。 ## 部署说明 ### 生产环境部署 生产环境部署分为前端部署、后端部署、数据库部署三个部分。均可通过docker直接进行部署。 ### Docker 部署 系统支持使用 Docker 进行容器化部署,可以简化部署流程并提高部署效率。前端 Dockerfile 使用 nginx:alpine 作为基础镜像,将构建好的 dist 目录复制到 nginx 的 html 目录中,提供静态文件服务。后端 Dockerfile 使用 openjdk:17-alpine 作为基础镜像,将打包好的 jar 文件复制到容器中,设置启动命令运行应用程序。使用 Docker 部署可以确保环境的一致性,方便在不同环境中迁移和扩展系统。 #### 使用 Docker Hub 镜像部署(含 HTTPS 配置) LeafBoss 已在 Docker Hub 发布预构建镜像,可直接拉取使用。镜像仓库地址:`yangshengzhou/leafboss`,包含前端、后端、HTTPS 代理镜像。 ### 1. 环境准备 #### 1.1 拉取核心业务镜像 ```bash docker pull yangshengzhou/leafboss:frontend-v1 docker pull yangshengzhou/leafboss:backend-v1 docker pull yangshengzhou/leafboss:https-nginx-v1 ``` #### 1.2 创建专属 Docker 网络 为容器间通信提供隔离环境,避免端口冲突: ```bash docker network create leafboss-network ``` ### 2. 部署核心服务 #### 2.1 部署 MySQL 数据库 先进入包含 `data.sql` 初始化脚本的目录,再启动容器: ```bash cd ~/leaf-boss docker run -d \ --name leafboss-mysql \ --network leafboss-network \ --restart always \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=leaf_boss \ -p 3306:3306 \ mysql:8.0 ``` 等待 30-60 秒(MySQL 启动完成),执行数据库初始化: ```bash docker exec -i leafboss-mysql mysql -uroot -p123456 < data.sql ``` #### 2.2 启动后端服务 ```bash docker run -d \ --name leafboss-backend \ --network leafboss-network \ --restart always \ -p 8081:8081 \ yangshengzhou/leafboss:backend-v1 ``` #### 2.3 启动前端服务 前端 80 端口仅在容器内网生效,宿主机 80/443 由 HTTPS 代理容器独占: ```bash docker run -d \ --name leafboss-frontend \ --network leafboss-network \ --restart always \ yangshengzhou/leafboss:frontend-v1 ``` #### 2.4 部署 HTTPS 代理服务(全站加密核心) 准备 SSL 证书文件。将证书文件(jasun.xyz_certificate.pem)和私钥文件(jasun.xyz_private.key)复制到服务器的 ~/ssl 目录中,然后执行以下命令: ```bash cd ~/ssl docker run -d \ --name leafboss-https-nginx \ --network leafboss-network \ --restart always \ -p 80:80 \ -p 443:443 \ -v $(pwd)/jasun.xyz_certificate.pem:/etc/nginx/ssl/jasun.xyz_certificate.pem \ -v $(pwd)/jasun.xyz_private.key:/etc/nginx/ssl/jasun.xyz_private.key \ yangshengzhou/leafboss:https-nginx-v1 ``` ### 3. 验证部署结果 - 访问方式:仅支持 `https://你的域名`(如 `https://jasun.xyz`),`http://服务器IP` 会自动跳转到 HTTPS; - 默认账号:邮箱 `admin@qq.com`,密码 `123456`; - 查看容器状态(所有容器需为 `Up` 状态): ```bash docker ps ``` 示例输出: ``` CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6f9d9092fbdf yangshengzhou/leafboss:https-nginx-v1 "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp leafboss-https-nginx b40859ed1f4c yangshengzhou/leafboss:frontend-v1 "/docker-entrypoint.…" 6 minutes ago Up 6 minutes 80/tcp leafboss-frontend 6a161ec18d37 yangshengzhou/leafboss:backend-v1 "java -jar /app/app.…" 7 minutes ago Up 7 minutes 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp leafboss-backend a496bc249a22 mysql:8.0 "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp leafboss-mysql ``` ### 4. 常用运维命令 #### 4.1 查看容器网络配置 ```bash docker network inspect leafboss-network ``` #### 4.2 停止/删除所有容器 ```bash # 停止容器(包含 HTTPS 代理容器) docker stop leafboss-https-nginx leafboss-frontend leafboss-backend leafboss-mysql # 删除容器 docker rm leafboss-https-nginx leafboss-frontend leafboss-backend leafboss-mysql ``` #### 4.3 删除 Docker 网络 ```bash docker network rm leafboss-network ``` ### 5. 部署注意事项 1. 若访问 HTTPS 提示证书错误,需检查 SSL 证书文件路径与 Nginx 配置是否匹配; 2. 服务器需开放 80/443 端口(防火墙/安全组),否则无法访问 HTTPS 服务。 #### 环境变量配置 后端服务支持以下环境变量配置: | 环境变量 | 说明 | 默认值 | | -------------------------- | -------------------- | --------------------------------------------- | | SPRING_DATASOURCE_URL | 数据库连接地址 | jdbc:mysql://localhost:3306/leaf_boss | | SPRING_DATASOURCE_USERNAME | 数据库用户名 | root | | SPRING_DATASOURCE_PASSWORD | 数据库密码 | 123456 | | JWT_SECRET | JWT 密钥 | leaf-boss-secret-key-for-jwt-token-generation | | JWT_EXPIRATION | JWT 过期时间(毫秒) | 86400000 | | SERVER_PORT | 服务器端口 | 8081 | #### 故障排查 **MySQL 连接失败** 检查 MySQL 容器是否正常运行: ```bash docker logs leafboss-mysql ``` **后端启动失败** 检查后端容器日志: ```bash docker logs leafboss-backend ``` **前端无法访问后端** 确认所有容器都在同一个网络中: ```bash docker network inspect leafboss-network ``` **数据库初始化失败** 确保 data.sql 文件在正确的位置,并且 MySQL 容器有权限访问该文件。 ### 参与贡献 我们欢迎任何形式的贡献,包括代码贡献、文档改进、问题反馈等。参与贡献的流程包括:首先 Fork 本仓库到自己的 GitHub 账户,然后新建功能分支,使用 git checkout -b feature/AmazingFeature 命令创建分支。在分支上进行开发,完成后使用 git commit -m 'Add some AmazingFeature' 提交代码,提交信息应该清晰描述所做的修改。然后使用 git push origin feature/AmazingFeature 将分支推送到自己的仓库,最后在 GitHub 上新建 Pull Request,等待项目维护者审核和合并代码。贡献代码时应该遵循项目的代码规范,编写清晰的提交信息,添加适当的测试用例,并更新相关文档。 ## 版本历史 ### 发布概览 LeafBoss 项目经历了多次版本迭代,不断完善和优化系统功能。v2.0.0 版本于 2026-01-18 发布,主要特性是将 LeafCard 升级为 LeafBoss 业务运营支撑系统,重构了系统架构,扩展为全面的业务运营支撑系统。v1.0.0 版本于 2024-10-27 发布,标志着 LeafCard 业务运营支撑系统正式上线,提供了基础的用户认证、卡密管理和数据统计功能。 ### 详细变更日志 v2.0.0 版本(2026-01-18)是系统的一次重大升级,系统从 LeafCard 升级为 LeafBoss 业务运营支撑系统,重构了系统架构,扩展为全面的业务运营支撑系统。更新了所有文档和配置文件,优化了 UI 设计,提升了用户体验。增强了安全验证机制,新增了人员管理模块,支持管理员和普通用户管理,优化了产品规格管理功能,使系统更加完善和易用。 v1.0.0 版本(2024-10-27)是系统的首次正式发布,LeafCard 业务运营支撑系统正式上线,提供了完整的用户认证系统、基础卡密管理功能和基础数据统计功能,为用户提供了基本的业务运营支撑能力。 ### 开发历程 LeafBoss 项目的开发历程可以追溯到 2024 年 1 月,当时基于对现有业务运营支撑系统的分析,构思开发一个轻量级、易用的业务运营支撑系统。2024 年 2 月进行了技术选型,确定使用 Vue 3 + Spring Boot 3 的技术栈,开始系统架构设计。2024 年 3 月到 7 月进行了核心开发,完成了前后端核心功能开发,包括密钥管理、用户管理、权限控制等功能。2024 年 10 月 27 日 LeafCard 业务运营支撑系统正式上线,开始为用户提供服务。2026 年 1 月 18 日系统升级为 LeafBoss 业务运营支撑系统,支撑全面的业务运营需求。 ## 许可证 本项目采用 MIT 许可证,这是一种宽松的开源许可证,允许用户自由使用、修改和分发代码,无论是商业用途还是非商业用途都可以使用本项目的代码。查看 LICENSE 文件可以了解许可证的详细条款和条件。MIT 许可证鼓励代码的共享和重用,促进了开源社区的发展和创新。 ## 联系方式 如果您在使用 LeafBoss 过程中遇到任何问题,或者有任何建议和意见,欢迎通过以下方式联系我们。GitHub 仓库地址是 https://github.com/YangShengzhou03/LeafBoss,您可以在仓库中查看源代码、提交问题或参与贡献。问题反馈可以通过 GitHub Issues 进行,我们会及时回复和处理您的问题。邮箱地址是 YangSZ03@foxmail.com,您可以通过邮件与我们联系。项目主页也是 https://github.com/YangShengzhou03/LeafBoss,欢迎访问了解更多信息。 ## 项目统计 ![GitHub Last Commit](https://img.shields.io/github/last-commit/YangShengzhou03/LeafBoss?style=flat-square) ![GitHub Contributors](https://img.shields.io/github/contributors/YangShengzhou03/LeafBoss?style=flat-square) ![GitHub Repo Size](https://img.shields.io/github/repo-size/YangShengzhou03/LeafBoss?style=flat-square) --- **感谢使用 LeafBoss!**
如果这个项目对您有帮助,请给个 Star 支持一下! [![Star History Chart](https://api.star-history.com/svg?repos=YangShengzhou03/LeafBoss&type=Date)](https://star-history.com/#YangShengzhou03/LeafBoss&Date)