# maven-points **Repository Path**: lancemorii-git/maven-points ## Basic Information - **Project Name**: maven-points - **Description**: 项目刚开始起步,本人是一个大三的学生,所以进度可能比较慢一点,但是会一直维护下去,敬请谅解,有任何建议可以联系我哦,欢迎大家 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: https://gitee.com/lancemorii-git/maven-points.git - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-09 - **Last Updated**: 2025-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Spring Boot Spring Cloud Vue 3 License JDK

🎫 Maven Points

企业级 SaaS 卡密自动发货系统

基于 Spring Cloud 微服务架构的多商家卡密交易平台,支持卡密自动发货、推广返佣、收益结算

--- ## ✨ 项目简介 Maven Points 是一个功能完整的 **SaaS 级卡密自动发货系统**,采用前后端分离的微服务架构设计。系统支持多商家入驻,提供卡密批量管理、自动发货、推广返佣、收益结算等核心功能,适用于虚拟商品交易场景。 ### 🎯 核心特性 - **多商家入驻** - 商家可自主注册、创建店铺、上架商品 - **卡密自动发货** - 支付成功后自动分配卡密,支持邮件推送 - **三方收益体系** - 平台抽成 + 商家收益 + 推广返佣 - **推广返利** - 一级返佣机制,推广链接生成与追踪 - **多端支持** - 用户端 + 商家后台 + 平台管理后台 - **多支付渠道** - 支持微信、支付宝、易支付等 - **库存一致性** - 基于 Redisson 分布式锁保证卡密不超卖 --- ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ Nginx (负载均衡) │ └─────────────────────────────┬───────────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ │ │ │ ▼ ▼ ▼ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ User Portal │ │ Merchant │ │ Admin │ │ 用户端 3000 │ │ 商家后台 3001 │ │ 管理后台 3002 │ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │ └─────────────────────┼─────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ API Gateway (8080) │ │ 路由转发 / 认证校验 / 限流 │ └─────────────────────────────┬───────────────────────────────────┘ │ ┌─────────────────────────────▼───────────────────────────────────┐ │ Eureka Server (8761) │ │ 服务注册与发现 │ └─────────────────────────────┬───────────────────────────────────┘ │ ┌──────────┬──────────┬───┴───┬──────────┬──────────┐ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ User │ │Merchant│ │Product │ │ Card │ │ Order │ │Payment │ │ 8081 │ │ 8082 │ │ 8083 │ │ 8084 │ │ 8085 │ │ 8086 │ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ ⭐ ┌──────────┬──────────┐ │ │ │ ▼ ▼ ▼ ┌────────┐ ┌────────┐ │Commis- │ │Notifi- │ │ sion │ │cation │ │ 8087 │ │ 8088 │ └────────┘ └────────┘ ``` --- ## 🛠️ 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.2.0 | 基础框架 | | Spring Cloud | 2023.0.0 | 微服务框架 | | MyBatis-Plus | 3.5.x | ORM 框架 | | Sa-Token | 1.37.x | 认证授权 | | Redisson | 3.x | 分布式锁 | | RocketMQ | 5.x | 消息队列 | | Seata | 1.7.x | 分布式事务 | ### 前端技术 | 技术 | 版本 | 说明 | |------|------|------| | Vue | 3.x | 前端框架 | | Vite | 5.x | 构建工具 | | Element Plus | 2.x | UI 组件库 | | Pinia | 2.x | 状态管理 | | Vue Router | 4.x | 路由管理 | ### 基础设施 | 技术 | 说明 | |------|------| | MySQL 8.0 | 主数据库 | | Redis 7.x | 缓存 / 分布式锁 / 会话 | | RocketMQ | 异步消息 | | Nginx | 反向代理 / 负载均衡 | | Docker | 容器化部署 | --- ## 📁 项目结构 ``` maven-points/ ├── frontend/ # 前端项目 │ ├── user-portal/ # 用户端 │ ├── merchant-portal/ # 商家后台 │ └── admin-portal/ # 平台管理后台 ├── services/ # 微服务 │ ├── eureka-server/ # 服务注册中心 │ ├── config-server/ # 配置中心 │ ├── gateway/ # API 网关 │ ├── user-service/ # 用户服务 │ ├── merchant-service/ # 商家服务 │ ├── product-service/ # 商品服务 │ ├── card-service/ # 卡密服务 ⭐ │ ├── order-service/ # 订单服务 │ ├── payment-service/ # 支付服务 │ ├── commission-service/ # 佣金结算服务 │ └── notification-service/ # 通知服务 ├── common/ # 公共模块 │ ├── common-core/ # 核心工具类 │ ├── common-security/ # 安全模块 │ ├── common-redis/ # Redis 工具 │ └── common-mybatis/ # MyBatis 配置 ├── docker/ # Docker 配置 ├── docs/ # 开发文档 └── scripts/ # 脚本文件 ``` --- ## 💰 收益体系 系统支持三方收益分配: ``` ┌─────────────────────────────────────────────────────────────┐ │ 用户购买商品 (100元) │ │ ↓ │ │ ┌──────────────────────┼──────────────────────┐ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ 平台抽成 商家收益 推广返佣 │ │ 5元 (5%) 90元 (90%) 5元 (5%) │ │ ↑ │ │ 如有推广人 │ └─────────────────────────────────────────────────────────────┘ ``` - **平台抽成**:可针对每个商家单独设置比例 - **商家收益**:订单金额扣除平台抽成和推广返佣 - **推广返佣**:一级返佣,比例由商品设置决定 - **结算周期**:T+1 结算,防止退款风险 --- ## 🚀 快速开始 ### 环境要求 - JDK 17+ - Maven 3.9+ - Node.js 18+ - MySQL 8.0 - Redis 7.x - RocketMQ 5.x (可选) ### 1. 克隆项目 ```bash git clone https://gitee.com/lancemorii-git/maven-points.git cd maven-points ``` ### 2. 启动基础设施 **方式一:使用 Docker Compose(推荐)** ```bash docker-compose -f docker/docker-compose-infra.yml up -d ``` **方式二:本地安装** - 启动 MySQL,创建数据库并执行 `scripts/init-db.sql` - 启动 Redis ### 3. 初始化数据库 ```bash mysql -u root -p < scripts/init-db.sql ``` ### 4. 启动后端服务 ```bash # 1. 启动 Eureka 注册中心(必须先启动注册中心,否则后续服务启动会报错!!!) cd services/eureka-server mvn spring-boot:run # 2. 启动网关 cd services/gateway mvn spring-boot:run # 3. 启动业务服务(可同时启动) cd services/user-service && mvn spring-boot:run cd services/merchant-service && mvn spring-boot:run cd services/product-service && mvn spring-boot:run cd services/card-service && mvn spring-boot:run cd services/order-service && mvn spring-boot:run cd services/payment-service && mvn spring-boot:run cd services/commission-service && mvn spring-boot:run cd services/notification-service && mvn spring-boot:run ``` ### 5. 启动前端 ```bash # 用户端 cd frontend/user-portal npm install && npm run dev # 商家后台 cd frontend/merchant-portal npm install && npm run dev # 平台管理后台 cd frontend/admin-portal npm install && npm run dev ``` --- ## 🌐 访问地址 | 服务 | 地址 | 说明 | |------|------|------| | 用户端 | http://localhost:3000 | 商品浏览、购买、订单管理 | | 商家后台 | http://localhost:3001 | 商品管理、卡密上传、收益查看 | | 平台管理 | http://localhost:3002 | 商家审核、系统配置、数据统计 | | API 网关 | http://localhost:8080 | 统一 API 入口 | | Eureka | http://localhost:8761 | 服务注册中心控制台 | --- ## 👤 测试账号 | 账号 | 密码 | 角色 | 说明 | |------|------|------|------| | admin | admin123 | 平台管理员 | 拥有所有权限 | | merchant | merchant123 | 商家 | 商品和卡密管理 | | user | user123 | 普通用户 | 购买和推广 | --- ## 📋 核心功能 ### 用户端 - [x] 商品浏览与搜索 - [x] 商品详情与规格选择 - [x] 在线下单与支付 - [x] 订单管理与卡密查看 - [x] 推广中心与返佣记录 - [x] 个人信息管理 ### 商家后台 - [x] 商家入驻申请 - [x] 店铺信息管理 - [x] 商品发布与管理 - [x] 卡密批量上传(TXT/CSV) - [x] 订单管理 - [x] 收益统计与提现 ### 平台管理 - [x] 商家审核管理 - [x] 用户管理 - [x] 订单管理与退款 - [x] 提现审核 - [x] 系统配置 - [x] 数据统计与报表 --- ## 🔐 卡密系统(核心) 卡密系统是整个平台的核心,采用分布式锁保证库存一致性: ``` 卡密状态流转: 批量上传 → [未售出] → 下单锁定 → [锁定中] → 支付成功 → [已售出] ↑ │ │ 支付超时/取消 │ └──────────────────────┘ ``` **关键特性:** - 支持 TXT/CSV 批量上传 - 自动去重处理 - Redisson 分布式锁防止超卖 - 乐观锁版本控制 - 15分钟锁定超时自动释放 - 支付成功自动发货 --- ## 💳 支付对接 系统支持多种支付方式: | 支付方式 | 类型 | 状态 | |----------|------|------| | 易支付 | 聚合支付 | ✅ 支持 | | 支付宝 | 官方 API | ✅ 支持 | | 微信支付 | 官方 API | ✅ 支持 | 支付配置示例(易支付): ```yaml payment: epay: merchant-id: 10001 api-key: your-api-key api-url: https://pay.example.com ``` --- ## 📖 开发文档 详细的开发文档位于 `docs/` 目录: | 文档 | 说明 | |------|------| | [00-开发计划总览](./docs/00-开发计划总览.md) | 项目总体规划与架构 | | [01-用户与认证模块](./docs/01-用户与认证模块开发计划.md) | 多角色用户体系设计 | | [02-商家店铺模块](./docs/02-商家店铺模块开发计划.md) | 商家入驻与店铺管理 | | [03-商品管理模块](./docs/03-商品管理模块开发计划.md) | 商品与规格管理 | | [04-卡密系统模块](./docs/04-卡密系统模块开发计划.md) | ⭐ 卡密核心功能 | | [05-订单系统模块](./docs/05-订单系统模块开发计划.md) | 订单流程设计 | | [06-支付系统模块](./docs/06-支付系统模块开发计划.md) | 支付渠道对接 | | [07-推广返佣模块](./docs/07-推广返佣模块开发计划.md) | 推广与返佣机制 | | [08-收益结算模块](./docs/08-收益结算模块开发计划.md) | 收益分配与提现 | | [09-平台管理模块](./docs/09-平台管理模块开发计划.md) | 后台管理功能 | | [10-通知服务模块](./docs/10-通知服务模块开发计划.md) | 邮件与消息通知 | | [11-技术架构模块](./docs/11-技术架构模块开发计划.md) | 分布式技术组件 | | [12-运维部署模块](./docs/12-运维部署模块开发计划.md) | 部署与监控 | --- ## 🐳 Docker 部署 ### 一键部署 ```bash # 构建并启动所有服务 docker-compose -f docker/docker-compose.yml up -d # 查看服务状态 docker-compose -f docker/docker-compose.yml ps # 查看日志 docker-compose -f docker/docker-compose.yml logs -f # 停止服务 docker-compose -f docker/docker-compose.yml down ``` ### 服务端口 | 服务 | 端口 | |------|------| | Eureka Server | 8761 | | API Gateway | 8080 | | User Service | 8081 | | Merchant Service | 8082 | | Product Service | 8083 | | Card Service | 8084 | | Order Service | 8085 | | Payment Service | 8086 | | Commission Service | 8087 | | Notification Service | 8088 | | User Portal | 3000 | | Merchant Portal | 3001 | | Admin Portal | 3002 | --- ## 🔧 配置说明 ### 数据库配置 ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/maven_points?useSSL=false&serverTimezone=Asia/Shanghai username: root password: your-password ``` ### Redis 配置 ```yaml spring: data: redis: host: localhost port: 6379 password: ``` ### 邮件配置 ```yaml spring: mail: host: smtp.qq.com port: 465 username: your-email@qq.com password: your-password ``` --- ## 🤝 贡献指南 欢迎提交 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. 提交 Pull Request --- ## 📄 开源协议 本项目采用 [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE) 开源协议。 --- ## ⭐ Star History 如果这个项目对你有帮助,请给一个 Star ⭐ 支持一下! --- ## 📞 联系方式 - 提交 Issue:[Gitee Issues](https://gitee.com/lancemorii-git/maven-points/issues) - 邮箱:15035267995@163.com ---

Made with ❤️ by Maven Points Team