MPAY V2 项目技术栈与结构文档
1. 项目概述
MPAY V2 是一个基于 Webman 后端框架和 Vue 3 前端框架的支付管理系统,提供完整的支付业务管理功能,包括用户认证、菜单管理、系统配置、财务管理、渠道管理和数据分析等核心模块。
2. 技术架构
2.1 后端技术栈
| 类别 |
技术/框架 |
版本 |
用途 |
来源 |
| 基础框架 |
Webman |
^2.1 |
高性能HTTP服务框架 |
composer.json:28 |
| PHP版本 |
PHP |
>=8.1 |
开发语言 |
composer.json:27 |
| 数据库 |
webman/database |
^2.1 |
数据库操作 |
composer.json:31 |
| 缓存 |
Redis |
^2.1 |
缓存存储 |
composer.json:32 |
| 缓存 |
webman/cache |
^2.1 |
缓存管理 |
composer.json:34 |
| 认证 |
JWT |
^7.0 |
用户认证 |
composer.json:42 |
| 验证码 |
webman/captcha |
^1.0 |
登录验证码 |
composer.json:37 |
| 事件系统 |
webman/event |
^1.0 |
事件管理 |
composer.json:38 |
| 配置管理 |
vlucas/phpdotenv |
^5.6 |
环境变量 |
composer.json:39 |
| 定时任务 |
workerman/crontab |
^1.0 |
定时任务 |
composer.json:40 |
| 队列 |
webman/redis-queue |
^2.1 |
消息队列 |
composer.json:41 |
| 验证 |
topthink/think-validate |
^3.0 |
数据验证 |
composer.json:36 |
| 容器 |
php-di/php-di |
7.0 |
依赖注入 |
composer.json:30 |
| 日志 |
monolog/monolog |
^2.0 |
日志管理 |
composer.json:29 |
| 控制台 |
webman/console |
^2.1 |
命令行工具 |
composer.json:35 |
2.2 前端技术栈
| 类别 |
技术/框架 |
版本 |
用途 |
来源 |
| 基础框架 |
Vue |
^3.5.15 |
前端框架 |
package.json:61 |
| 语言 |
TypeScript |
^5.2.2 |
开发语言 |
package.json:103 |
| 构建工具 |
Vite |
^6.3.5 |
构建工具 |
package.json:107 |
| UI框架 |
Arco Design |
^2.57.0 |
界面组件库 |
package.json:72 |
| 状态管理 |
Pinia |
^2.3.0 |
状态管理 |
package.json:53 |
| 路由 |
Vue Router |
^4.3.0 |
前端路由 |
package.json:66 |
| HTTP客户端 |
Axios |
^1.6.8 |
API调用 |
package.json:47 |
| 表单生成 |
@form-create/arco-design |
^3.2.37 |
动态表单 |
package.json:41 |
| 图表 |
@visactor/vchart |
^1.11.0 |
数据可视化 |
package.json:42 |
| 代码编辑器 |
CodeMirror |
^6.0.1 |
代码编辑 |
package.json:48 |
| 富文本编辑器 |
@wangeditor/editor |
^5.1.23 |
内容编辑 |
package.json:45 |
| 国际化 |
vue-i18n |
10.0.0-alpha.3 |
多语言支持 |
package.json:64 |
| 工具库 |
@vueuse/core |
^12.4.0 |
实用工具 |
package.json:44 |
| 指纹识别 |
@fingerprintjs/fingerprintjs |
^4.6.2 |
设备识别 |
package.json:40 |
| 二维码 |
qrcode |
^1.5.4 |
二维码生成 |
package.json:57 |
| 条码 |
jsbarcode |
^3.11.6 |
条码生成 |
package.json:51 |
| 打印 |
print-js |
^1.6.0 |
页面打印 |
package.json:56 |
| 进度条 |
nprogress |
^0.2.0 |
加载进度 |
package.json:52 |
| 中文转拼音 |
pinyin-pro |
^3.26.0 |
拼音转换 |
package.json:55 |
| 引导 |
driver.js |
^1.3.1 |
功能引导 |
package.json:49 |
3. 项目结构
3.1 后端目录结构
3.2 前端目录结构
4. 核心功能模块
4.1 后端核心模块
| 模块 |
主要功能 |
文件位置 |
来源 |
| 认证模块 |
用户登录、验证码生成 |
app/http/admin/controller/AuthController.php |
app/routes/admin.php:20-21 |
| 用户模块 |
获取用户信息 |
app/http/admin/controller/UserController.php |
app/routes/admin.php:26 |
| 菜单模块 |
获取路由菜单 |
app/http/admin/controller/MenuController.php |
app/routes/admin.php:29 |
| 系统模块 |
字典管理、配置管理 |
app/http/admin/controller/SystemController.php |
app/routes/admin.php:32-37 |
4.2 前端核心模块
| 模块 |
主要功能 |
文件位置 |
来源 |
| 布局模块 |
系统整体布局 |
src/layout/ |
resource/mpay_v2_admin/src/layout/ |
| 认证模块 |
登录、权限控制 |
src/views/login/ |
resource/mpay_v2_admin/src/views/ |
| 首页模块 |
数据概览 |
src/views/home/ |
resource/mpay_v2_admin/src/views/home/ |
| 财务管理 |
结算、对账、发票 |
src/views/finance/ |
resource/mpay_v2_admin/src/views/finance/ |
| 渠道管理 |
通道配置、支付方式 |
src/views/channel/ |
resource/mpay_v2_admin/src/views/channel/ |
| 数据分析 |
交易分析、商户分析 |
src/views/analysis/ |
resource/mpay_v2_admin/src/views/analysis/ |
| 系统设置 |
系统配置、字典管理 |
src/views/system/ |
resource/mpay_v2_admin/src/views/ |
5. API接口设计
5.1 认证接口
| 路径 |
方法 |
模块/文件 |
功能 |
权限 |
来源 |
| /adminapi/captcha |
GET |
AuthController |
获取验证码 |
无 |
app/routes/admin.php:20 |
| /adminapi/login |
POST |
AuthController |
用户登录 |
无 |
app/routes/admin.php:21 |
5.2 用户接口
| 路径 |
方法 |
模块/文件 |
功能 |
权限 |
来源 |
| /adminapi/user/getUserInfo |
GET |
UserController |
获取用户信息 |
JWT |
app/routes/admin.php:26 |
5.3 菜单接口
| 路径 |
方法 |
模块/文件 |
功能 |
权限 |
来源 |
| /adminapi/menu/getRouters |
GET |
MenuController |
获取路由菜单 |
JWT |
app/routes/admin.php:29 |
5.4 系统接口
| 路径 |
方法 |
模块/文件 |
功能 |
权限 |
来源 |
| /adminapi/system/getDict[/{code}] |
GET |
SystemController |
获取字典数据 |
JWT |
app/routes/admin.php:32 |
| /adminapi/system/base-config/tabs |
GET |
SystemController |
获取配置标签 |
JWT |
app/routes/admin.php:35 |
| /adminapi/system/base-config/form/{tabKey} |
GET |
SystemController |
获取表单配置 |
JWT |
app/routes/admin.php:36 |
| /adminapi/system/base-config/submit/{tabKey} |
POST |
SystemController |
提交配置 |
JWT |
app/routes/admin.php:37 |
6. 技术特点
6.1 后端特点
- 高性能架构:基于 Webman 框架,使用 Workerman 作为底层,支持高并发处理
- 模块化设计:采用分层架构,清晰分离控制器、服务、仓库和模型
- JWT认证:使用 JSON Web Token 实现无状态认证
- 中间件机制:通过中间件实现请求拦截和权限控制
- Redis集成:使用 Redis 作为缓存和队列存储
- 事件系统:支持事件驱动架构
- 定时任务:内置定时任务管理功能
- 数据验证:使用 think-validate 进行数据验证
- 依赖注入:使用 PHP-DI 实现依赖注入
- 日志管理:使用 Monolog 进行日志管理
6.2 前端特点
- Vue 3 + TypeScript:使用最新的 Vue 3 组合式 API 和 TypeScript 提供类型安全
- Arco Design:采用字节跳动开源的 Arco Design UI 组件库,提供美观的界面
- Pinia 状态管理:使用 Pinia 替代 Vuex,提供更简洁的状态管理方案
- Vite 构建工具:使用 Vite 提供快速的开发体验和优化的构建输出
- 国际化支持:内置多语言支持,可轻松切换语言
- 响应式设计:适配不同屏幕尺寸的设备
- 丰富的功能组件:集成多种实用组件,如二维码生成、条码生成、富文本编辑等
- 权限控制:基于指令的权限控制机制
- Mock 数据:内置 Mock 数据,方便开发和测试
7. 开发流程
7.1 后端开发
- 环境准备:PHP 8.1+,Composer,MySQL,Redis
- 依赖安装:
composer install
- 配置环境:复制
.env.example 为 .env 并配置相关参数
- 启动服务:
php start.php start
- 代码结构:遵循 Webman 框架规范,按模块组织代码
7.2 前端开发
- 环境准备:Node.js 18.12+,PNPM 8.7+
- 依赖安装:
pnpm install
- 开发模式:
pnpm dev
- 构建部署:
pnpm build:prod
- 代码结构:遵循 Vue 3 项目规范,按功能模块组织代码
8. 部署与配置
8.1 后端部署
- 服务器要求:Linux/Unix 系统,PHP 8.1+,MySQL 5.7+,Redis 5.0+
- Nginx 配置:配置反向代理指向 Webman 服务
- 启动方式:
- 开发环境:
php start.php start
- 生产环境:
php start.php start -d
- 监控管理:可使用 Supervisor 管理进程
8.2 前端部署
- 构建:
pnpm build:prod
- 部署:将
dist 目录部署到 Web 服务器
- Nginx 配置:配置静态文件服务和路由重写
9. 总结
MPAY V2 项目采用现代化的技术栈和架构设计,后端使用 Webman 框架提供高性能的 API 服务,前端使用 Vue 3 + TypeScript + Arco Design 提供美观、响应式的用户界面。项目结构清晰,模块化程度高,便于维护和扩展。
核心功能覆盖了支付管理系统的主要业务场景,包括用户认证、菜单管理、系统配置、财务管理、渠道管理和数据分析等模块,为支付业务的运营和管理提供了完整的解决方案。
技术特点包括高性能架构、模块化设计、JWT认证、Redis集成、Vue 3组合式API、TypeScript类型安全、Arco Design UI组件库、Pinia状态管理、Vite构建工具等,确保了系统的稳定性、安全性和可扩展性。
该项目适合作为支付管理系统的基础框架,可根据具体业务需求进行定制和扩展。