Skip to content

Latest commit

 

History

History

module_introduction

README.md

拍卖系统技术文档索引

📚 文档概览

本目录包含电子拍卖系统各个核心模块的详细技术文档,涵盖系统架构、功能实现、API接口、使用指南等内容。


🏗️ 系统整体架构图

核心模块关系图

┌─────────────────────────────────────────────────────────────────────┐
│                        拍卖系统核心模块架构                         │
└─────────────────────────────────────────────────────────────────────┘

┌──────────────────────┐      ┌──────────────────────┐
│   商家端/主播端      │      │     用户端           │
└──────────────────────┘      └──────────────────────┘
            │                              │
            │  ┌─────────────────────────┴──────────────┐
            │  │                                        │
            ▼  ▼                                        ▼
┌───────────────────────────────────────────────────────────────┐
│                        API网关层                               │
│  (Spring Security + JWT认证 + 全局异常处理 + 参数校验)         │
└───────────────────────────────────────────────────────────────┘
                              │
        ┌─────────────────────┼─────────────────────┐
        │                     │                     │
        ▼                     ▼                     ▼
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│ 用户认证和权限 │    │  商品管理系统  │    │  拍卖管理系统  │
│    模块       │    │    模块       │    │    模块       │
└───────────────┘    └───────────────┘    └───────────────┘
        │                     │                     │
        │                     │                     │
        ▼                     ▼                     ▼
┌───────────────┐    ┌───────────────┐    ┌───────────────┐
│  出价管理系统  │◄───│ WebSocket实时  │────│  订单管理系统  │
│    模块       │    │   通讯模块    │    │    模块       │
└───────────────┘    └───────────────┘    └───────────────┘
        │                     │                     │
        │                     │                     │
        ▼                     ▼                     ▼
┌───────────────────────────────────────────────────────────────┐
│                       支付管理系统                              │
└───────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌───────────────────────────────────────────────────────────────┐
│                    数据存储层                                   │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐      │
│  │  MySQL  │  │  Redis  │  │ WebSocket│ │ 文件存储 │      │
│  └─────────┘  └─────────┘  └─────────┘  └─────────┘      │
└───────────────────────────────────────────────────────────────┘

模块交互时序图

┌──────────────┐      ┌──────────────┐      ┌──────────────┐
│    用户端     │      │   后端API    │      │   数据库     │
└──────────────┘      └──────────────┘      └──────────────┘
       │                     │                     │
       │  1. 用户登录       │                     │
       ├────────────────────►                     │
       │                     │                     │
       │                     │ 2. 验证用户信息     │
       │                     ├────────────────────►
       │                     │                     │
       │                     │ 3. 返回用户数据     │
       │                     │◄────────────────────┤
       │                     │                     │
       │  4. 返回JWT Token  │                     │
       │◄────────────────────┤                     │
       │                     │                     │
       │  5. 浏览拍卖商品    │                     │
       ├────────────────────►                     │
       │                     │ 6. 查询商品数据     │
       │                     ├────────────────────►
       │                     │                     │
       │                     │ 7. 返回商品列表     │
       │                     │◄────────────────────┤
       │                     │                     │
       │  8. 发起出价请求    │                     │
       ├────────────────────►                     │
       │                     │ 9. 验证并处理出价    │
       │                     ├────────────────────►
       │                     │                     │
       │                     │10. WebSocket通知    │
       │                     │    所有参与者       │
       │◄────────────────────┤                     │
       │                     │                     │
       │ 11. 拍卖结束创建订单│                     │
       │                     ├────────────────────►
       │                     │                     │
       │                     │12. 返回订单信息     │
       │                     │◄────────────────────┤
       │                     │                     │
       │ 13. 发起支付       │                     │
       ├────────────────────►                     │
       │                     │14. 处理支付请求     │
       │                     ├────────────────────►
       │                     │                     │
       │ 15. 支付完成通知    │                     │
       │◄────────────────────┤                     │

🔄 核心业务流程图

拍卖完整业务流程

┌──────────────────────────────────────────────────────────────┐
│                     拍卖业务完整流程                          │
└──────────────────────────────────────────────────────────────┘

┌────────────────┐
│  1. 商家准备   │
│  - 上传商品     │
│  - 设置拍卖参数 │
│  - 配置拍卖规则 │
└───────┬────────┘
        │
        ▼
┌────────────────┐
│  2. 创建拍卖    │
│  - 选择商品     │
│  - 设定起拍价   │
│  - 设定加价幅度 │
│  - 设定封顶价   │
└───────┬────────┘
        │
        ▼
┌────────────────┐
│  3. 拍卖开始    │
│  - WebSocket   │
│    通知开始    │
│  - 状态变为ACTIVE│
└───────┬────────┘
        │
        ▼
┌────────────────┐
│  4. 用户出价    │
│  - 验证价格     │
│  - 检查频率     │
│  - 更新排行榜   │
│  - WebSocket   │
│    实时推送    │
└───────┬────────┘
        │
        ▼
┌────────────────┐
│  5. 拍卖延时?   │
│  - 最后5分钟   │
│    有人出价    │
│  - 自动延时15秒 │
└───────┬────────┘
        │
        ▼ (继续)
┌────────────────┐      ▼ (达到结束条件)
│  6. 拍卖结束   │◄───────────────┐
│  - 时间到/封顶价│                  │
│  - 状态变COMPLETED│                │
└───────┬────────┘                  │
        │                           │
        ▼                           │
┌────────────────┐                  │
│  7. 自动结算    │                  │
│  - 检测最高出价者│                  │
│  - 生成订单     │                  │
└───────┬────────┘                  │
        │                           │
        ▼                           │
┌────────────────┐                  │
│  8. 支付流程    │                  │
│  - 用户支付     │                  │
│  - 状态更新     │                  │
└───────┬────────┘                  │
        │                           │
        ▼                           │
┌────────────────┐                  │
│  9. 完成        │                  │
│  - 订单完成     │                  │
│  - 商家发货     │                  │
└──────────────────┘                 │
                                    │
                           ┌────────┴─────────┐
                           │ (返回继续拍卖)    │
                           └──────────────────┘

请求处理状态机

┌──────────────────────────────────────────────────────────────┐
│                   请求处理状态转换图                           │
└──────────────────────────────────────────────────────────────┘

                    ┌──────────────┐
                    │ 请求到达     │
                    └──────┬───────┘
                           │
                           ▼
                    ┌──────────────┐
                    │ 权限验证     │
                    └──────┬───────┘
                           │
                ┌──────────┴──────────┐
                │                     │
         ┌──────▼──────┐      ┌──────▼──────┐
         │ 验证失败     │      │ 验证成功     │
         │ 返回403      │      │             │
         └──────────────┘      └──────┬──────┘
                                     │
                                     ▼
                              ┌──────────────┐
                              │ 业务逻辑处理 │
                              └──────┬───────┘
                                     │
                         ┌───────────┴───────────┐
                         │                       │
                  ┌──────▼──────┐        ┌──────▼──────┐
                  │ 处理成功     │        │ 处理失败     │
                  │             │        │             │
         ┌────────┴────────┐     │     │   ┌────────┴────────┐
         │                 │     │     │   │                 │
    ┌────▼────┐      ┌────▼────┐│  ┌──▼───┐  ┌──────────┴───┐
    │返回数据  │      │异步处理 ││  │返回错误│  │记录日志      │
    └─────────┘      └─────────┘│  └───────┘  └──────────────┘
                                   │
                            ┌──────┴──────┐
                            │WebSocket推送│
                            │状态更新     │
                            └─────────────┘

🔗 模块间数据流转图

数据流转关系

┌──────────────────────────────────────────────────────────────┐
│                   模块间数据流转图                            │
└──────────────────────────────────────────────────────────────┘

┌──────────────────┐
│   用户模块       │ ──┐
│ (用户信息/权限)  │   │  提供用户信息
└──────────────────┘   │  和权限验证
                        │
                        ▼
         ┌──────────────────────────────────────┐
         │          拍卖管理系统                 │
         │  ┌─────────────────────────────────┐ │
         │  │ 拍卖创建 → 拍卖进行 → 拍卖结束  │ │
         │  └─────────────────────────────────┘ │
         └──────────────┬───────────────────────┘
                        │
        ┌───────────────┼───────────────┐
        │               │               │
        ▼               ▼               ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ 出价管理系统   │ │WebSocket通讯  │ │ 订单管理系统   │
│ (实时出价)     │ │ (实时推送)     │ │ (自动生成)     │
└───────────────┘ └───────────────┘ └───────┬───────┘
        │               │               │
        │               │               │
        └───────────────┴───────────────┘
                                │
                                ▼
                      ┌───────────────────┐
                      │   支付管理系统     │
                      │ (支付处理/状态管理) │
                      └───────────────────┘

┌──────────────────┐                  ┌──────────────────┐
│   商品模块       │ ──────────────────►│ 拍卖模块        │
│ (商品信息)       │                   │ (关联商品)       │
└──────────────────┘                  └──────────────────┘

实时数据同步

┌──────────────────────────────────────────────────────────────┐
│                   实时数据同步流程                           │
└──────────────────────────────────────────────────────────────┘

┌─────────────┐      Redis缓存       ┌─────────────┐
│   MySQL     │ ◄─────────────────► │   WebSocket  │
│ (持久化存储) │                     │ (实时推送)    │
└──────┬──────┘                      └──────┬──────┘
       │                                    │
       │ 数据变更                            │
       ▼                                    │
┌─────────────┐                            │
│  出价事件    │                            │
│  - 新出价    │────┐                       │
│  - 价格更新  │    │                       │
│  - 排行榜变化│    │                       │
└─────────────┘    │                       │
                    ▼                       │
         ┌──────────────────┐              │
         │  分布式锁保护    │              │
         │  防止并发冲突    │              │
         └──────┬───────────┘              │
                │                          │
                │ 原子操作                 │
                ▼                          │
         ┌──────────────────┐              │
         │  Redis数据更新   │──────────────┘
         │  - 当前价格       │
         │  - 最高出价者     │
         │  - 排行榜数据     │
         └──────┬───────────┘
                │
                │ 订阅发布
                ▼
         ┌──────────────────┐
         │  WebSocket推送    │
         │  - 新出价通知     │
         │  - 被超越通知     │
         │  - 领先通知       │
         └──────────────────┘

📊 状态管理图

用户状态转换

┌──────────────────────────────────────────────────────────────┐
│                     用户状态转换图                             │
└──────────────────────────────────────────────────────────────┘

        ┌─────────────┐
        │  PENDING    │ (待审核)
        │  (新建用户)  │
        └──────┬──────┘
               │
               ▼ (审核通过)
        ┌─────────────┐
        │  ACTIVE     │ (正常)
        │             │◄───────┐
        └──────┬──────┘        │
               │                │ (管理员解禁)
               │ (违规/锁定)    │
               ▼                │
        ┌─────────────┐         │
        │  DISABLED   │         │
        │  (禁用)     │─────────┘
        └──────┬──────┘
               │
               │ (管理员删除)
               ▼
        ┌─────────────┐
        │  DELETED    │ (已删除)
        └─────────────┘

拍卖状态转换

┌──────────────────────────────────────────────────────────────┐
│                     拍卖状态转换图                            │
└──────────────────────────────────────────────────────────────┘

        ┌─────────────┐
        │  PENDING    │ (待开始)
        │  (创建完成)  │
        └──────┬──────┘
               │
               │ (时间到/手动开始)
               ▼
        ┌─────────────┐
        │  ACTIVE     │ (进行中) ◄─────────┐
        │             │───────────┐       │
        └──────┬──────┘           │       │
               │                   │       │ (异常取消)
        ┌──────┴─────────┐         │       │
        │                │         │       │
   ┌────▼─────┐    ┌─────▼────┐    │       │
   │  时间到   │    │  达封顶价 │    │       │
   └────┬────┘    └─────┬────┘    │       │
        │               │          │       │
        └───────────┬───┘          │       │
                    │              │       │
                    ▼              │       │
            ┌───────────────┐      │       │
            │  COMPLETED    │      │       │
            │  (已完成)     │      │       │
            └───────────────┘      │       │
                                    │       │
                               ┌────┴───┐  │
                               │        │  │
                          ┌────▼─────┐ │  │
                          │CANCELLED │ │  │
                          │ (已取消) │─┘  │
                          └──────────┘    │

订单状态转换

┌──────────────────────────────────────────────────────────────┐
│                     订单状态转换图                             │
└──────────────────────────────────────────────────────────────┘

        ┌─────────────┐
        │PENDING_PAYMENT│ (待支付)
        │ (拍卖成交创建) │
        └──────┬──────┘
               │
        ┌──────┴──────────┐
        │                 │
   ┌────▼─────┐     ┌─────▼────┐
   │ 支付成功  │     │ 超时/取消 │
   └────┬────┘     └─────┬────┘
        │                 │
        ▼                 ▼
 ┌──────────┐      ┌──────────┐
 │   PAID   │      │CANCELLED │
 │ (已支付) │      │ (已取消) │
 └────┬─────┘      └──────────┘
      │
      │ (确认收货/自动完成)
      ▼
 ┌──────────┐
 │COMPLETED │
 │ (已完成) │
 └──────────┘

🚀 部署架构图

系统部署架构

┌──────────────────────────────────────────────────────────────┐
│                   系统部署架构图                              │
└──────────────────────────────────────────────────────────────┘

                    ┌──────────────┐
                    │   用户端      │
                    │ (Web/Mobile) │
                    └──────┬───────┘
                           │
                    ┌────────▼─────────┐
                    │   负载均衡器     │
                    │   (Nginx/ELB)    │
                    └──────┬───────────┘
                           │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
        ▼                  ▼                  ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│  应用节点1   │  │  应用节点2   │  │  应用节点3   │
│  (Spring Boot)│  │ (Spring Boot)│  │ (Spring Boot)│
└──────┬───────┘  └──────┬───────┘  └──────┬───────┘
       │                  │                  │
       └──────────────────┼──────────────────┘
                          │
              ┌───────────┴───────────┐
              │                       │
              ▼                       ▼
     ┌─────────────────┐    ┌─────────────────┐
     │   Redis集群     │    │   MySQL主从      │
     │  (缓存/分布式锁) │    │  (数据持久化)    │
     └─────────────────┘    └─────────────────┘

                    ┌──────────────┐
                    │  监控系统     │
                    │ (Prometheus/  │
                    │  Grafana)     │
                    └──────────────┘

                    ┌──────────────┐
                    │  日志系统     │
                    │ (ELK Stack)   │
                    └──────────────┘

容器化部署架构

┌──────────────────────────────────────────────────────────────┐
│                Docker容器化部署架构                           │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                     Docker Compose                            │
│  ┌──────────────────────────────────────────────────────┐   │
│  │  services:                                            │   │
│  │    mysql:                                             │   │
│  │      image: mysql:8.0                                 │   │
│  │    redis:                                             │   │
│  │      image: redis:7-alpine                            │   │
│  │    auction-app:                                       │   │
│  │      build: .                                         │   │
│  │      depends_on:                                      │   │
│  │        - mysql                                        │   │
│  │        - redis                                        │   │
│  └──────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

📈 性能监控图

性能指标监控

┌──────────────────────────────────────────────────────────────┐
│                   性能监控指标                                │
└──────────────────────────────────────────────────────────────┘

┌──────────────────────────────────────────────────────────────┐
│                     系统性能指标                               │
└──────────────────────────────────────────────────────────────┘

性能指标:
┌─────────────────────────────────────────────────────────────┐
│  QPS (每秒查询数)                                            │
│  ████████████████████████████████████████░░░░  800/1000      │
│                                                             │
│  响应时间 (平均)                                              │
│  ████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░  120ms/500ms   │
│                                                             │
│  错误率                                                      │
│  ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░  0.5%/1%       │
│                                                             │
│  并发连接数                                                  │
│  ████████████████████████████░░░░░░░░░░░░░░░░  150/200       │
└─────────────────────────────────────────────────────────────┘

模块性能:
┌─────────────────────────────────────────────────────────────┐
│  用户认证模块  ████████████████████░░░░░  响应: 50ms        │
│  拍卖管理模块  ████████████████████████████  响应: 120ms    │
│  出价处理模块  ████████████████░░░░░░░░░░░░░  响应: 200ms    │
│  WebSocket模块 ████████████████████████████  延迟: 10ms       │
│  订单处理模块  ████████████████████░░░░░░░░░░  响应: 150ms    │
└─────────────────────────────────────────────────────────────┘

🔐 安全架构图

认证授权流程

┌──────────────────────────────────────────────────────────────┐
│                   认证授权安全流程                           │
└──────────────────────────────────────────────────────────────┘

┌──────────────┐
│   用户端      │
└──────┬───────┘
       │ 1. 登录请求
       ├─────────────────────┐
       │                     │
       ▼                     ▼
┌──────────────┐      ┌──────────────┐
│  限流检查     │      │  参数验证     │
│  (防暴力破解) │      │  (格式验证)    │
└──────┬───────┘      └──────┬───────┘
       │                     │
       │ 2. 通过              │ 3. 通过
       └──────────┬───────────┘
                  │
                  ▼
          ┌──────────────┐
          │  用户认证     │
          │  (查询用户)    │
          └──────┬───────┘
                 │
        ┌────────┴────────┐
        │                 │
   ┌────▼────┐     ┌─────▼────┐
   │ 认证成功  │     │ 认证失败  │
   └────┬────┘     └─────┬────┘
        │                 │
        │ 4. 生成Token    │ 5. 记录失败日志
        │    + 刷新Token   │    + 增加失败计数
        ▼                 ▼
 ┌──────────────┐   ┌──────────────┐
 │  Token返回   │   │  错误响应     │
 └──────────────┘   └──────────────┘

┌──────────────┐
│  API请求      │
└──────┬───────┘
       │ 6. 携带Token
       ├─────────────────────┐
       │                     │
       ▼                     ▼
┌──────────────┐      ┌──────────────┐
│  Token验证    │      │  黑名单检查   │
│  (签名验证)    │      │  (是否注销)    │
└──────┬───────┘      └──────┬───────┘
       │                     │
       │ 7. 有效             │ 8. 未注销
       └──────────┬───────────┘
                  │
                  ▼
          ┌──────────────┐
          │  权限验证     │
          │  (角色权限)    │
          └──────┬───────┘
                 │
        ┌────────┴────────┐
        │                 │
   ┌────▼────┐     ┌─────▼────┐
   │ 有权限   │     │ 无权限    │
   └────┬────┘     └─────┬────┘
        │                 │
        │ 9. 处理请求      │ 10. 返回403
        ▼                 ▼
 ┌──────────────┐   ┌──────────────┐
 │  返回数据     │   │  权限拒绝     │
 └──────────────┘   └──────────────┘

安全防护机制

┌──────────────────────────────────────────────────────────────┐
│                   多层安全防护体系                            │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│  第一层:网络层                                              │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • HTTPS加密传输                                        │ │
│  │  • 防火墙规则配置                                       │ │
│  │  • DDoS防护                                            │ │
│  │  • IP白名单/黑名单                                      │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│  第二层:接口层                                              │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • 接口限流保护                                         │ │
│  │  • 请求参数校验                                         │ │
│  │  • XSS攻击防护                                         │ │
│  │  • SQL注入防护                                         │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│  第三层:认证层                                              │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • JWT Token验证                                        │ │
│  │  • Token黑名单机制                                       │ │
│  │  • 会话过期检查                                         │ │
│  │  • 单设备登录控制                                        │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│  第四层:授权层                                              │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • RBAC权限模型                                         │ │
│  │  • 资源级权限控制                                        │ │
│  │  • 操作级权限验证                                       │ │
│  │  • 数据权限隔离                                         │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│  第五层:业务层                                              │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • 业务逻辑验证                                         │ │
│  │  • 数据一致性检查                                        │ │
│  │  • 并发操作保护                                         │ │
│  │  • 异常处理机制                                         │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│  第六层:数据层                                              │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • 数据加密存储                                         │ │
│  │  • 敏感数据脱敏                                         │ │
│  │  • 数据访问审计                                         │ │
│  │  • 备份恢复机制                                         │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

🛠️ 开发环境架构

本地开发环境

┌──────────────────────────────────────────────────────────────┐
│                   本地开发环境架构                            │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    开发者机器                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • JDK 17                                              │ │
│  │  • Maven 3.6+                                          │ │
│  │  • IDE (IntelliJ IDEA / Eclipse)                       │ │
│  │  • Git                                                 │ │
│  │  • Postman / Swagger UI                               │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    本地服务容器                               │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  MySQL 8.0     (Docker容器)                            │ │
│  │  Redis 6.0+     (Docker容器)                            │ │
│  │ 拍卖系统应用     (Spring Boot)                            │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    开发工具链                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • Lombok (代码生成)                                    │ │
│  │  • MyBatis-Plus (代码生成)                              │ │
│  │  • Spring Boot DevTools (热部署)                         │ │
│  │  • Maven Compiler Plugin                                │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

测试环境架构

┌──────────────────────────────────────────────────────────────┐
│                   测试环境架构                                │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    测试服务器                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  CI/CD流水线                                           │ │
│  │  ┌──────────────────────────────────────────────┐     │ │
│  │  │  1. 代码提交 → Git                             │     │ │
│  │  │  2. 自动构建 → Maven                            │     │ │
│  │  │  3. 单元测试 → JUnit                            │     │ │
│  │  │  4. 集成测试 → MockMvc                          │     │ │
│  │  │  5. 代码部署 → 测试环境                          │     │ │
│  │  └──────────────────────────────────────────────┘     │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    测试数据库                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • 测试数据自动生成                                    │ │
│  │  • 测试案例数据隔离                                    │ │
│  │  • 测试后自动清理                                      │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

📊 监控告警架构

系统监控体系

┌──────────────────────────────────────────────────────────────┐
│                   系统监控告警体系                             │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    应用层监控                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • JVM内存监控                                          │ │
│  │  • GC频率和耗时                                         │ │
│  │  • 线程池状态                                           │ │
│  │  • 接口响应时间                                         │ │
│  │  • 错误率统计                                           │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    中间件监控                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • Redis连接数、内存使用                                 │ │
│  │  • MySQL连接池、慢查询                                  │ │
│  │  • WebSocket连接数                                       │ │
│  │  • 分布式锁状态                                         │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    业务层监控                                 │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • 拍卖成功率                                           │ │
│  │  • 出价频率分布                                         │ │
│  │  • 订单转化率                                           │ │
│  │  • 支付成功率                                           │ │
│  │  • 用户活跃度                                           │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    告警机制                                   │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  • 错误率超阈值 → 邮件/短信告警                         │ │
│  │  • 响应时间过长 → 即时通知                              │ │
│  │  • 服务不可用 → 紧急告警                                │ │
│  │  • 资源使用异常 → 预警通知                              │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

🔄 数据同步机制

缓存一致性策略

┌──────────────────────────────────────────────────────────────┐
│                   缓存一致性保障机制                           │
└──────────────────────────────────────────────────────────────┘

┌──────────────┐      ┌──────────────┐      ┌──────────────┐
│    业务      │      │    MySQL     │      │    Redis     │
│    层        │      │   (主存储)    │      │   (缓存)      │
└──────┬───────┘      └──────┬───────┘      └──────┬───────┘
       │                     │                     │
       │ 1. 读取数据          │                     │
       ├─────────────────────┤                     │
       │                     │ 2. 查询数据          │
       │                     ├─────────────────────┤
       │                     │                     │
       │ 3. 数据返回          │                     │
       │◄────────────────────┤                     │
       │                     │                     │
       │ 4. 写入缓存          │                     │
       ├─────────────────────────────────────────┤
       │                     │                     │
       │                     │ 5. 更新数据          │
       │                     ├─────────────────────┤
       │                     │                     │
       │                     │ 6. 删除缓存          │
       │                     ├─────────────────────┤
       │                     │                     │
       │ 7. 重新查询          │                     │
       ├─────────────────────┤                     │
       │                     │ 8. 查询数据          │
       │                     ├─────────────────────┤
       │                     │                     │
       │                     │ 9. 更新缓存          │
       │                     ├─────────────────────┤

缓存策略:
┌─────────────────────────────────────────────────────────────┐
│  • 读操作:先查缓存,未命中则查DB并更新缓存                    │
│  • 写操作:先更新DB,再删除缓存                                │
│  • 热点数据:设置合理的过期时间                                │
│  • 一致性:使用分布式锁保证并发更新的一致性                     │
│  • 容错:缓存异常时直接查询DB                                  │
└─────────────────────────────────────────────────────────────┘

🚨 异常处理机制

统一异常处理流程

┌──────────────────────────────────────────────────────────────┐
│                   异常处理统一流程                             │
└──────────────────────────────────────────────────────────────┘

┌──────────────┐
│  API请求     │
└──────┬───────┘
       │
       ▼
┌──────────────┐
│ Controller   │
└──────┬───────┘
       │
       │ 异常抛出
       ▼
┌─────────────────────────────────────────────────────────────┐
│              全局异常处理器                                  │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  异常类型分类:                                        │ │
│  │  • BizException (业务异常)                           │ │
│  │  • AuthException (认证异常)                           │ │
│  │  • PermissionException (权限异常)                      │ │
│  │  • MethodArgumentNotValidException (参数校验异常)       │ │
│  │  • Exception (系统异常)                                │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
       │
       ├─ 业务异常 ──► 返回业务错误码
       ├─ 认证异常 ──► 返回401
       ├─ 权限异常 ──► 返回403
       ├─ 参数异常 ──► 返回400
       └─ 系统异常 ──► 返回500

日志记录:
┌─────────────────────────────────────────────────────────────┐
│  • 记录异常堆栈信息                                         │
│  • 记录请求参数                                             │
│  • 记录用户信息                                             │
│  • 记录异常时间                                             │
│  • 发送告警通知                                             │
└─────────────────────────────────────────────────────────────┘

🎯 核心模块文档

  • 功能: 用户注册登录、JWT认证、权限管理、安全防护
  • 适用人群: 全体开发者、安全工程师、运维人员
  • 关键词: 认证、授权、JWT、RBAC、安全
  • 核心内容:
    • 用户注册与登录流程
    • JWT Token管理机制
    • RBAC权限模型
    • 登录日志和操作日志
    • 接口限流和防暴力破解
  • 功能: 拍卖创建、状态管理、自动延时、异常处理
  • 适用人群: 后端开发者、业务分析师
  • 关键词: 拍卖、状态机、延时拍卖、自动结算
  • 核心内容:
    • 拍卖生命周期管理
    • 自动延时拍卖机制
    • 拍卖状态流转控制
    • 拍卖创建和配置
    • 拍卖监控和通知
  • 功能: 实时出价处理、价格验证、排行榜管理、并发控制
  • 适用人群: 后端开发者、性能工程师
  • 关键词: 出价、排行榜、分布式锁、实时推送
  • 核心内容:
    • 实时出价处理流程
    • 价格验证机制
    • 排行榜管理和排名计算
    • 分布式锁并发控制
    • 出价频率限制
  • 功能: 订单自动生成、状态管理、订单查询、统计分析
  • 适用人群: 后端开发者、业务分析师
  • 关键词: 订单、状态机、自动结算、数据统计
  • 核心内容:
    • 订单自动生成机制
    • 订单状态流转管理
    • 订单查询和统计
    • 支付状态管理
    • 订单数据一致性
  • 功能: 模拟支付、异步处理、支付通知、异常处理
  • 适用人群: 后端开发者、支付对接工程师
  • 关键词: 支付、异步处理、WebSocket、通知
  • 核心内容:
    • 模拟支付处理流程
    • 异步支付架构
    • 支付状态管理
    • 支付通知推送
    • 支付异常处理
  • 功能: 实时消息推送、房间管理、连接管理、心跳检测
  • 适用人群: 前后端开发者、实时通讯工程师
  • 关键词: WebSocket、实时推送、房间管理、心跳
  • 核心内容:
    • WebSocket连接管理
    • 实时消息推送机制
    • 房间管理和用户会话
    • 消息协议和格式
    • 客户端集成方案
  • 功能: 商品创建、查询更新、图片管理、分类管理
  • 适用人群: 后端开发者、商家运营
  • 关键词: 商品、图片上传、分类管理、搜索
  • 核心内容:
    • 商品创建和验证
    • 商品查询和搜索
    • 图片上传和管理
    • 商品分类管理
    • 商品状态管理

🏛️ 扩展性设计图

水平扩展架构

┌──────────────────────────────────────────────────────────────┐
│                   水平扩展架构设计                              │
└──────────────────────────────────────────────────────────────┘

                    ┌──────────────┐
                    │   负载均衡     │
                    │ (Nginx/LVS)  │
                    └──────┬───────┘
                           │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
        ▼                  ▼                  ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│ 应用实例1    │  │ 应用实例2    │  │ 应用实例3    │
│ (Spring Boot) │  │ (Spring Boot) │  │ (Spring Boot) │
│ 端口:8080    │  │ 端口:8081    │  │ 端口:8082    │
└──────┬───────┘  └──────┬───────┘  └──────┬───────┘
       │                  │                  │
       └──────────────────┼──────────────────┘
                          │
              ┌───────────┴───────────┐
              │                       │
              ▼                       ▼
     ┌─────────────────┐    ┌─────────────────┐
     │ Redis Sentinel  │    │ MySQL Cluster   │
     │ (高可用缓存)      │    │ (高可用数据库)    │
     └─────────────────┘    └─────────────────┘

扩展特性:
┌─────────────────────────────────────────────────────────────┐
│  • 无状态应用设计,支持水平扩展                              │
│  • 共享Session存储在Redis中                                  │
│  • 分布式锁保证数据一致性                                    │
│  • 数据库连接池自动调整                                       │
│  • 支持动态增减实例                                           │
└─────────────────────────────────────────────────────────────┘

数据库扩展策略

┌──────────────────────────────────────────────────────────────┐
│                   数据库扩展策略                                │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    读写分离架构                               │
│  ┌──────────────────────────────────────────────────────┐ │
│  │                     应用层                               │ │
│  │  ┌──────────────┐      ┌──────────────┐               │ │
│  │  │  写操作      │      │  读操作      │               │ │
│  │  │  (INSERT/    │      │  (SELECT)    │               │ │
│  │  │   UPDATE)    │      │             │               │ │
│  │  └──────┬───────┘      └──────┬───────┘               │ │
│  │         │                     │                        │ │
│  └─────────┼─────────────────────┼────────────────────────│ │
│            │                     │                        │ │
│  ┌─────────┼─────────────────────┼────────────────────────│ │
│  │         │                     │                        │ │
│  │  ▼      │                     ▼                        │ │
│  │ ┌─────────────────────────────────────────┐            │ │
│  │ │           数据访问层                      │            │ │
│  │ │  ┌────────────────┐    ┌────────────────┐         │ │
│  │ │  │ 主库路由      │    │ 从库路由       │         │ │
│  │ │  │ (Master)      │    │ (Slave)        │         │ │
│  │ │  └────────────────┘    └────────────────┘         │ │
│  │ └─────────────────────────────────────────┘            │ │
│  └─────────────────────────────────────────────────────────│ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    数据库层                                   │
│  ┌──────────────┐                    ┌──────────────┐       │
│  │   Master     │◄──── binlog ────────│   Slave1     │       │
│  │   (主库)      │                    │   (从库1)      │       │
│  └──────────────┘                    └──────────────┘       │
│                                           │                  │
│                                        binlog               │
│                                           ▼                  │
│                                  ┌──────────────┐          │
│                                  │   Slave2     │          │
│                                  │   (从库2)      │          │
│                                  └──────────────┘          │
└─────────────────────────────────────────────────────────────┘

数据分片策略:
┌─────────────────────────────────────────────────────────────┐
│  • 用户数据:按用户ID取模分片                                │
│  • 拍卖数据:按拍卖ID范围分片                                │
│  • 日志数据:按时间范围分片                                  │
│  • 订单数据:按创建时间分片                                  │
│  • 历史数据:归档到历史库                                    │
└─────────────────────────────────────────────────────────────┘

🛡️ 容错机制设计

服务容错机制

┌──────────────────────────────────────────────────────────────┐
│                   服务容错机制设计                              │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                     请求处理                                  │
└───────────────┬─────────────────────────────────────────────┘
                │
                ▼
         ┌──────────────┐
         │ 熔断器模式    │
         │ (Circuit      │
         │  Breaker)     │
         └──────┬───────┘
                │
    ┌───────────┼───────────┐
    │           │           │
    ▼           ▼           ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 关闭    │ │ 开启    │ │ 半开    │
│(正常访问)│ │(拒绝访问)│ │(尝试恢复)│
└────┬────┘ └────┬────┘ └────┬────┘
     │            │            │
     │ 正常处理    │ 短路失败    │ 有限尝试
     ▼            ▼            ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 请求成功 │ │快速失败 │ │ 部分请求 │
│ 计数重置 │ │返回降级 │ │ 验证状态 │
└─────────┘ └─────────┘ └─────────┘

容错策略:
┌─────────────────────────────────────────────────────────────┐
│  • 熔断器:连续失败达到阈值后开启熔断,避免级联故障           │
│  • 降级服务:主服务异常时返回默认值或缓存数据                  │
│  • 限流保护:超过容量限制时拒绝新请求                         │
│  • 超时控制:设置合理的超时时间,避免长时间等待                  │
│  • 重试机制:对于可重试的异常进行自动重试                       │
└─────────────────────────────────────────────────────────────┘

数据备份恢复

┌──────────────────────────────────────────────────────────────┐
│                   数据备份恢复策略                              │
└──────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐
│                    备份策略                                   │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  全量备份:每天凌晨2点执行                             │ │
│  │  增量备份:每小时执行一次                              │ │
│  │  日志备份:每15分钟执行一次                             │ │
│  │  实时备份:数据库操作日志实时同步                       │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    存储策略                                   │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  本地存储:保留最近7天备份                             │ │
│  │  异地存储:保留最近30天备份                            │ │
│  │  云端存储:保留最近90天备份                            │ │
│  │  归档存储:重要数据永久归档                            │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│                    恢复策略                                   │
│  ┌──────────────────────────────────────────────────────┐ │
│  │  数据恢复:支持PITR任意时间点恢复                     │ │
│  │  主从切换:主库故障时自动切换到从库                    │ │
│  │  容灾切换:数据中心故障时切换到异地                    │ │
│  │  快速恢复:关键数据优先恢复                            │ │
│  └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

🚀 部署架构图

生产环境部署架构

┌──────────────────────────────────────────────────────────────┐
│                   生产环境部署架构                              │
└──────────────────────────────────────────────────────────────┘

                    ┌──────────────┐
                    │  CDN节点      │
                    │ (静态资源)    │
                    └──────┬───────┘
                           │
                    ┌────────▼─────────┐
                    │   负载均衡      │
                    │   (Nginx/ELB)   │
                    └──────┬──────────┘
                           │
        ┌──────────────────┼──────────────────┐
        │                  │                  │
        ▼                  ▼                  ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│  Web服务器1   │  │  Web服务器2   │  │  Web服务器3   │
│  (Nginx)      │  │  (Nginx)      │  │  (Nginx)      │
└──────┬───────┘  └──────┬───────┘  └──────┬───────┘
       │                  │                  │
       └──────────────────┼──────────────────┘
                          │
        ┌─────────────────┼─────────────────┐
        │                 │                 │
        ▼                 ▼                 ▼
┌──────────────┐  ┌──────────────┐  ┌──────────────┐
│ 应用服务器1  │  │ 应用服务器2  │  │ 应用服务器3  │
│ (Spring Boot)│  │ (Spring Boot)│  │ (Spring Boot)│
│ 端口:8080    │  │ 端口:8080    │  │ 端口:8080    │
└──────┬───────┘  └──────┬───────┘  └──────┬───────┘
       │                  │                  │
       └──────────────────┼──────────────────┘
                          │
              ┌───────────┴───────────┐
              │                       │
              ▼                       ▼
     ┌─────────────────┐    ┌─────────────────┐
     │ Redis Cluster  │    │ MySQL Master-Slave│
     │ (高可用缓存)     │    │ (主从复制)        │
     └─────────────────┘    └─────────────────┘
              │                       │
              ▼                       ▼
     ┌─────────────────┐    ┌─────────────────┐
     │ 监控系统         │    │ 日志系统         │
     │ (Prometheus)     │    │ (ELK Stack)      │
     │ (Grafana)        │    │ (Kibana)         │
     └─────────────────┘    └─────────────────┘

🔧 技术栈总览

后端技术

  • 框架: Spring Boot 3.x
  • 数据库: MySQL 8.0+
  • 缓存: Redis 6.0+
  • 通讯: WebSocket (STOMP)
  • 安全: Spring Security + JWT
  • ORM: MyBatis-Plus

前端技术

  • 框架: 可支持任何现代前端框架
  • 通讯: WebSocket Client
  • 状态管理: Redux/Vuex

基础设施

  • 部署: Docker / 传统部署
  • 监控: Spring Boot Actuator
  • 日志: Logback

📖 使用指南

快速开始

  1. 阅读相关模块的技术文档
  2. 了解系统架构和业务流程
  3. 参考API接口文档进行集成
  4. 使用测试指南验证功能

文档结构

每个技术文档都包含以下标准结构:

  • 📋 文档信息
  • 📖 目录
  • 📖 系统概述
  • 🏗️ 技术架构
  • 💾 数据库设计
  • ⚙️ 核心功能
  • 🔌 API接口文档
  • 📐 业务规则
  • 🚀 使用指南
  • 🧪 测试指南
  • ❓ 常见问题

文档更新

  • 版本: 所有文档版本号为 v1.0.0
  • 日期: 2026-05-30
  • 维护: 拍卖系统开发团队
  • 更新: 随系统功能迭代持续更新

🎓 学习路径

初级开发者

  1. 用户认证和权限系统 - 了解基础认证机制
  2. 商品管理系统 - 理解基础CRUD操作
  3. 拍卖管理系统 - 掌握核心业务流程

中级开发者

  1. 出价管理系统 - 学习并发控制和实时处理
  2. 订单管理系统 - 理解状态机和数据一致性
  3. WebSocket实时通讯 - 掌握实时通讯技术

高级开发者

  1. 支付管理系统 - 学习异步处理和系统集成
  2. 系统架构设计 - 整体系统设计和优化
  3. 性能优化和监控 - 系统调优和运维

🛠️ 开发支持

联系方式

相关资源

  • 项目仓库: GitHub
  • API文档: Swagger UI
  • 数据库脚本: src/main/resources/db/migration/

📝 文档贡献

如果您发现文档中的错误或有改进建议,欢迎:

  1. 提交Issue描述问题
  2. 提交Pull Request修正文档
  3. 联系维护团队进行讨论

📅 版本历史

版本 日期 说明
v1.0.0 2026-05-30 初始版本,包含7个核心模块文档

最后更新: 2026-05-30 维护团队: 拍卖系统开发团队