180 lines
5.6 KiB
Markdown
180 lines
5.6 KiB
Markdown
|
|
# 系统架构完整性说明
|
|||
|
|
|
|||
|
|
## 后端架构(mt-pay)
|
|||
|
|
|
|||
|
|
### 1. 包结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
com.mtkj.mtpay/
|
|||
|
|
├── common/ # 通用组件
|
|||
|
|
│ ├── Result.java # 统一响应结果类
|
|||
|
|
│ ├── ResultCode.java # 响应码枚举
|
|||
|
|
│ ├── constants/ # 常量类
|
|||
|
|
│ │ └── PaymentConstants.java
|
|||
|
|
│ └── enums/ # 枚举类
|
|||
|
|
│ ├── OrderStatus.java
|
|||
|
|
│ ├── PaymentType.java
|
|||
|
|
│ └── RecordType.java
|
|||
|
|
├── config/ # 配置类
|
|||
|
|
│ ├── DruidDataSourceConfig.java
|
|||
|
|
│ ├── MyBatisPlusConfig.java
|
|||
|
|
│ ├── MyMetaObjectHandler.java
|
|||
|
|
│ ├── PingPongProperties.java
|
|||
|
|
│ ├── RestClientConfig.java
|
|||
|
|
│ └── WebConfig.java # Web配置(跨域等)
|
|||
|
|
├── controller/ # 控制器层
|
|||
|
|
│ ├── PaymentController.java
|
|||
|
|
│ └── CallbackController.java
|
|||
|
|
├── dto/ # 数据传输对象
|
|||
|
|
│ ├── request/
|
|||
|
|
│ ├── response/
|
|||
|
|
│ └── risk/
|
|||
|
|
├── entity/ # 实体类
|
|||
|
|
│ ├── PaymentOrder.java
|
|||
|
|
│ └── PaymentRecord.java
|
|||
|
|
├── exception/ # 异常处理
|
|||
|
|
│ ├── BusinessException.java
|
|||
|
|
│ └── GlobalExceptionHandler.java
|
|||
|
|
├── mapper/ # 数据访问层
|
|||
|
|
│ ├── PaymentOrderMapper.java
|
|||
|
|
│ └── PaymentRecordMapper.java
|
|||
|
|
├── service/ # 服务层(接口)
|
|||
|
|
│ ├── SignatureService.java
|
|||
|
|
│ ├── PingPongPayService.java
|
|||
|
|
│ ├── PaymentOrderService.java
|
|||
|
|
│ └── CallbackService.java
|
|||
|
|
├── service/impl/ # 服务层(实现)
|
|||
|
|
│ ├── SignatureServiceImpl.java
|
|||
|
|
│ ├── PingPongPayServiceImpl.java
|
|||
|
|
│ ├── PaymentOrderServiceImpl.java
|
|||
|
|
│ └── CallbackServiceImpl.java
|
|||
|
|
└── util/ # 工具类
|
|||
|
|
├── DateUtils.java
|
|||
|
|
├── StringUtils.java
|
|||
|
|
└── OrderIdGenerator.java
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 核心组件说明
|
|||
|
|
|
|||
|
|
#### 统一响应格式
|
|||
|
|
- **Result<T>**: 统一响应结果类,所有接口返回统一格式
|
|||
|
|
- **ResultCode**: 响应码枚举,定义所有业务响应码
|
|||
|
|
|
|||
|
|
#### 异常处理
|
|||
|
|
- **BusinessException**: 业务异常类
|
|||
|
|
- **GlobalExceptionHandler**: 全局异常处理器,统一处理异常
|
|||
|
|
|
|||
|
|
#### 枚举类
|
|||
|
|
- **OrderStatus**: 订单状态枚举
|
|||
|
|
- **PaymentType**: 支付类型枚举
|
|||
|
|
- **RecordType**: 记录类型枚举
|
|||
|
|
|
|||
|
|
#### 工具类
|
|||
|
|
- **DateUtils**: 日期时间工具类
|
|||
|
|
- **StringUtils**: 字符串工具类
|
|||
|
|
- **OrderIdGenerator**: 订单号生成器
|
|||
|
|
|
|||
|
|
#### 常量类
|
|||
|
|
- **PaymentConstants**: 支付相关常量
|
|||
|
|
|
|||
|
|
#### 配置类
|
|||
|
|
- **WebConfig**: Web配置(跨域、拦截器等)
|
|||
|
|
|
|||
|
|
## 前端架构(MTKJPAY-FRONT)
|
|||
|
|
|
|||
|
|
### 1. 目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
MTKJPAY-FRONT/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── api/ # API接口
|
|||
|
|
│ │ ├── request.js # Axios封装
|
|||
|
|
│ │ └── payment.js # 支付相关API
|
|||
|
|
│ ├── components/ # 通用组件
|
|||
|
|
│ │ ├── PageHeader.vue
|
|||
|
|
│ │ └── Loading.vue
|
|||
|
|
│ ├── config/ # 配置文件
|
|||
|
|
│ │ └── index.js
|
|||
|
|
│ ├── router/ # 路由配置
|
|||
|
|
│ │ └── index.js
|
|||
|
|
│ ├── store/ # 状态管理
|
|||
|
|
│ │ └── index.js
|
|||
|
|
│ ├── utils/ # 工具函数
|
|||
|
|
│ │ ├── constants.js # 常量定义
|
|||
|
|
│ │ ├── helpers.js # 工具函数
|
|||
|
|
│ │ └── request.js # 请求工具
|
|||
|
|
│ ├── views/ # 页面组件
|
|||
|
|
│ │ ├── CreateOrder.vue
|
|||
|
|
│ │ ├── Checkout.vue
|
|||
|
|
│ │ ├── PaymentResult.vue
|
|||
|
|
│ │ └── OrderQuery.vue
|
|||
|
|
│ ├── App.vue # 根组件
|
|||
|
|
│ └── main.js # 入口文件
|
|||
|
|
├── .env.development # 开发环境配置
|
|||
|
|
├── .env.production # 生产环境配置
|
|||
|
|
└── vite.config.js # Vite配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 核心组件说明
|
|||
|
|
|
|||
|
|
#### 工具类
|
|||
|
|
- **constants.js**: 常量定义(订单状态、支付类型、币种等)
|
|||
|
|
- **helpers.js**: 工具函数(格式化、验证、防抖节流等)
|
|||
|
|
- **request.js**: 请求工具函数
|
|||
|
|
|
|||
|
|
#### 通用组件
|
|||
|
|
- **PageHeader.vue**: 页面头部组件
|
|||
|
|
- **Loading.vue**: 加载组件
|
|||
|
|
|
|||
|
|
#### 配置管理
|
|||
|
|
- **config/index.js**: 统一配置管理
|
|||
|
|
- **.env.development**: 开发环境配置
|
|||
|
|
- **.env.production**: 生产环境配置
|
|||
|
|
|
|||
|
|
#### 状态管理
|
|||
|
|
- **store/index.js**: 简单状态管理(可扩展为Pinia)
|
|||
|
|
|
|||
|
|
## 架构特点
|
|||
|
|
|
|||
|
|
### 1. 分层清晰
|
|||
|
|
- Controller → Service → Mapper → Entity
|
|||
|
|
- 接口与实现分离
|
|||
|
|
- DTO与Entity分离
|
|||
|
|
|
|||
|
|
### 2. 统一规范
|
|||
|
|
- 统一响应格式(Result)
|
|||
|
|
- 统一异常处理
|
|||
|
|
- 统一响应码
|
|||
|
|
|
|||
|
|
### 3. 可扩展性
|
|||
|
|
- 枚举类便于扩展
|
|||
|
|
- 工具类可复用
|
|||
|
|
- 组件化设计
|
|||
|
|
|
|||
|
|
### 4. 可维护性
|
|||
|
|
- 代码结构清晰
|
|||
|
|
- 命名规范统一
|
|||
|
|
- 注释完整
|
|||
|
|
|
|||
|
|
### 5. 完整性
|
|||
|
|
- 包含工具类、常量、枚举
|
|||
|
|
- 包含异常处理、统一响应
|
|||
|
|
- 包含配置管理、状态管理
|
|||
|
|
|
|||
|
|
## 最佳实践
|
|||
|
|
|
|||
|
|
1. **统一响应格式**: 所有接口使用Result<T>返回
|
|||
|
|
2. **异常处理**: 使用BusinessException抛出业务异常
|
|||
|
|
3. **枚举使用**: 使用枚举替代魔法字符串
|
|||
|
|
4. **工具类**: 通用功能封装为工具类
|
|||
|
|
5. **配置管理**: 配置统一管理,支持多环境
|
|||
|
|
|
|||
|
|
## 扩展建议
|
|||
|
|
|
|||
|
|
1. **日志切面**: 添加AOP日志切面
|
|||
|
|
2. **接口文档**: 集成Swagger/OpenAPI
|
|||
|
|
3. **缓存**: 添加Redis缓存支持
|
|||
|
|
4. **消息队列**: 添加消息队列支持
|
|||
|
|
5. **监控**: 添加系统监控和链路追踪
|
|||
|
|
|