feat(core): 增强文件上传配置和异常处理
- 配置文件上传大小限制,单个文件最大10MB,请求最大50MB - 添加文件写入磁盘阈值配置,超过2MB写入临时文件 - 实现文件上传超限异常处理,返回友好提示信息 - 优化应用启动日志,显示访问地址和运行环境信息 - 增加支付订单查询和更新的日志记录 - 创建阿里云OSS配置属性类,统一管理OSS参数 - 添加业务异常类,支持自定义错误码和消息 - 完善系统架构文档,描述前后端包结构和核心组件 - 新增商品创建请求DTO,支持SKU列表和校验规则 - 添加风控相关的客户信息和商品信息DTO - 配置Logback日志框架,支持不同环境的日志输出策略
This commit is contained in:
179
mt-pay/ARCHITECTURE_COMPLETE.md
Normal file
179
mt-pay/ARCHITECTURE_COMPLETE.md
Normal file
@@ -0,0 +1,179 @@
|
||||
# 系统架构完整性说明
|
||||
|
||||
## 后端架构(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. **监控**: 添加系统监控和链路追踪
|
||||
|
||||
Reference in New Issue
Block a user