Files
MTKJPAY/mt-pay/ARCHITECTURE_COMPLETE.md
qiube 8cfe9e00e0 feat(core): 增强文件上传配置和异常处理
- 配置文件上传大小限制,单个文件最大10MB,请求最大50MB
- 添加文件写入磁盘阈值配置,超过2MB写入临时文件
- 实现文件上传超限异常处理,返回友好提示信息
- 优化应用启动日志,显示访问地址和运行环境信息
- 增加支付订单查询和更新的日志记录
- 创建阿里云OSS配置属性类,统一管理OSS参数
- 添加业务异常类,支持自定义错误码和消息
- 完善系统架构文档,描述前后端包结构和核心组件
- 新增商品创建请求DTO,支持SKU列表和校验规则
- 添加风控相关的客户信息和商品信息DTO
- 配置Logback日志框架,支持不同环境的日志输出策略
2025-12-19 16:52:28 +08:00

5.6 KiB
Raw Blame History

系统架构完整性说明

后端架构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: 统一响应结果类,所有接口返回统一格式
  • 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返回
  2. 异常处理: 使用BusinessException抛出业务异常
  3. 枚举使用: 使用枚举替代魔法字符串
  4. 工具类: 通用功能封装为工具类
  5. 配置管理: 配置统一管理,支持多环境

扩展建议

  1. 日志切面: 添加AOP日志切面
  2. 接口文档: 集成Swagger/OpenAPI
  3. 缓存: 添加Redis缓存支持
  4. 消息队列: 添加消息队列支持
  5. 监控: 添加系统监控和链路追踪