# 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 后端目录结构 ``` d:\phpstudy_pro\WWW\mpay\mpay_v2_webman\ ├── app/ # 应用代码 │ ├── common/ # 通用代码 │ │ ├── base/ # 基础类 │ │ │ ├── BaseController.php │ │ │ ├── BaseModel.php │ │ │ ├── BaseRepository.php │ │ │ └── BaseService.php │ │ ├── constants/ # 常量 │ │ │ └── YesNo.php │ │ ├── enums/ # 枚举 │ │ │ └── MenuType.php │ │ ├── middleware/ # 中间件 │ │ │ ├── Cors.php │ │ │ └── StaticFile.php │ │ └── utils/ # 工具类 │ │ └── JwtUtil.php │ ├── events/ # 事件 │ │ └── SystemConfig.php │ ├── exceptions/ # 异常处理 │ │ └── ValidationException.php │ ├── http/ # HTTP相关 │ │ ├── admin/ # 后台管理 │ │ │ ├── controller/ # 控制器 │ │ │ │ ├── AuthController.php │ │ │ │ ├── MenuController.php │ │ │ │ ├── SystemController.php │ │ │ │ └── UserController.php │ │ │ └── middleware/ # 中间件 │ │ │ └── AuthMiddleware.php │ ├── models/ # 数据模型 │ │ ├── SystemConfig.php │ │ └── User.php │ ├── process/ # 进程管理 │ │ ├── Http.php │ │ └── Monitor.php │ ├── repositories/ # 数据仓库 │ │ ├── SystemConfigRepository.php │ │ └── UserRepository.php │ ├── routes/ # 路由配置 │ │ ├── admin.php │ │ ├── api.php │ │ └── mer.php │ ├── services/ # 业务逻辑 │ │ ├── AuthService.php │ │ ├── CaptchaService.php │ │ ├── MenuService.php │ │ ├── SystemConfigService.php │ │ ├── SystemSettingService.php │ │ └── UserService.php │ └── validation/ # 数据验证 │ └── SystemConfigValidator.php ├── config/ # 配置文件 │ ├── base-config/ # 基础配置 │ │ ├── basic.json │ │ ├── email.json │ │ ├── permission.json │ │ └── tabs.json │ ├── plugin/ # 插件配置 │ │ ├── webman/ │ │ │ ├── console/ │ │ │ ├── event/ │ │ │ ├── redis-queue/ │ │ │ └── validation/ │ ├── system-file/ # 系统文件 │ │ ├── dict.json │ │ ├── menu.json │ │ └── menu.md │ ├── app.php │ ├── autoload.php │ ├── bootstrap.php │ ├── cache.php │ ├── container.php │ ├── database.php │ ├── dependence.php │ ├── event.php │ ├── exception.php │ ├── jwt.php │ ├── log.php │ ├── menu.php │ ├── middleware.php │ ├── process.php │ ├── redis.php │ ├── route.php │ ├── server.php │ ├── session.php │ ├── static.php │ ├── translation.php │ └── view.php ├── database/ # 数据库文件 │ └── ma_system_config.sql ├── doc/ # 文档 │ ├── event.md │ └── exception.md ├── public/ # 静态资源 │ └── favicon.ico ├── resource/ # 资源文件 │ └── mpay_v2_admin/ # 前端项目 ├── .env # 环境变量 ├── composer.json # PHP依赖 └── composer.lock # 依赖锁定 ``` ### 3.2 前端目录结构 ``` d:\phpstudy_pro\WWW\mpay\mpay_v2_webman\resource\mpay_v2_admin\ ├── src/ # 源代码 │ ├── api/ # API调用 │ ├── assets/ # 静态资源 │ ├── components/ # 组件 │ ├── config/ # 配置 │ ├── directives/ # 指令 │ ├── hooks/ # 钩子 │ ├── lang/ # 国际化 │ ├── layout/ # 布局 │ ├── mock/ # 模拟数据 │ ├── router/ # 路由 │ ├── store/ # 状态管理 │ ├── style/ # 样式 │ ├── typings/ # 类型定义 │ ├── utils/ # 工具函数 │ ├── views/ # 页面 │ ├── App.vue # 根组件 │ ├── auto-import.d.ts # 自动导入 │ ├── components.d.ts # 组件声明 │ ├── main.ts # 入口文件 │ └── style.css # 全局样式 ├── build/ # 构建配置 │ ├── optimize.ts │ └── vite-plugin.ts ├── .env # 环境变量 ├── .env.development # 开发环境变量 ├── .env.production # 生产环境变量 ├── .env.test # 测试环境变量 ├── eslint.config.js # ESLint配置 ├── index.html # HTML模板 ├── package.json # 前端依赖 └── vite.config.ts # Vite配置 ``` ## 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 后端特点 1. **高性能架构**:基于 Webman 框架,使用 Workerman 作为底层,支持高并发处理 2. **模块化设计**:采用分层架构,清晰分离控制器、服务、仓库和模型 3. **JWT认证**:使用 JSON Web Token 实现无状态认证 4. **中间件机制**:通过中间件实现请求拦截和权限控制 5. **Redis集成**:使用 Redis 作为缓存和队列存储 6. **事件系统**:支持事件驱动架构 7. **定时任务**:内置定时任务管理功能 8. **数据验证**:使用 think-validate 进行数据验证 9. **依赖注入**:使用 PHP-DI 实现依赖注入 10. **日志管理**:使用 Monolog 进行日志管理 ### 6.2 前端特点 1. **Vue 3 + TypeScript**:使用最新的 Vue 3 组合式 API 和 TypeScript 提供类型安全 2. **Arco Design**:采用字节跳动开源的 Arco Design UI 组件库,提供美观的界面 3. **Pinia 状态管理**:使用 Pinia 替代 Vuex,提供更简洁的状态管理方案 4. **Vite 构建工具**:使用 Vite 提供快速的开发体验和优化的构建输出 5. **国际化支持**:内置多语言支持,可轻松切换语言 6. **响应式设计**:适配不同屏幕尺寸的设备 7. **丰富的功能组件**:集成多种实用组件,如二维码生成、条码生成、富文本编辑等 8. **权限控制**:基于指令的权限控制机制 9. **Mock 数据**:内置 Mock 数据,方便开发和测试 ## 7. 开发流程 ### 7.1 后端开发 1. **环境准备**:PHP 8.1+,Composer,MySQL,Redis 2. **依赖安装**:`composer install` 3. **配置环境**:复制 `.env.example` 为 `.env` 并配置相关参数 4. **启动服务**:`php start.php start` 5. **代码结构**:遵循 Webman 框架规范,按模块组织代码 ### 7.2 前端开发 1. **环境准备**:Node.js 18.12+,PNPM 8.7+ 2. **依赖安装**:`pnpm install` 3. **开发模式**:`pnpm dev` 4. **构建部署**:`pnpm build:prod` 5. **代码结构**:遵循 Vue 3 项目规范,按功能模块组织代码 ## 8. 部署与配置 ### 8.1 后端部署 1. **服务器要求**:Linux/Unix 系统,PHP 8.1+,MySQL 5.7+,Redis 5.0+ 2. **Nginx 配置**:配置反向代理指向 Webman 服务 3. **启动方式**: - 开发环境:`php start.php start` - 生产环境:`php start.php start -d` 4. **监控管理**:可使用 Supervisor 管理进程 ### 8.2 前端部署 1. **构建**:`pnpm build:prod` 2. **部署**:将 `dist` 目录部署到 Web 服务器 3. **Nginx 配置**:配置静态文件服务和路由重写 ## 9. 总结 MPAY V2 项目采用现代化的技术栈和架构设计,后端使用 Webman 框架提供高性能的 API 服务,前端使用 Vue 3 + TypeScript + Arco Design 提供美观、响应式的用户界面。项目结构清晰,模块化程度高,便于维护和扩展。 核心功能覆盖了支付管理系统的主要业务场景,包括用户认证、菜单管理、系统配置、财务管理、渠道管理和数据分析等模块,为支付业务的运营和管理提供了完整的解决方案。 技术特点包括高性能架构、模块化设计、JWT认证、Redis集成、Vue 3组合式API、TypeScript类型安全、Arco Design UI组件库、Pinia状态管理、Vite构建工具等,确保了系统的稳定性、安全性和可扩展性。 该项目适合作为支付管理系统的基础框架,可根据具体业务需求进行定制和扩展。