技术架构图.md 2.6 KB

技术架构图

flowchart TB
    %% ========== 样式定义 ==========
    classDef layer fill:#f0f8ff,stroke:#2c5282,stroke-width:2px,color:#2c5282
    classDef module fill:#e6f7ff,stroke:#1890ff,stroke-width:1px
    classDef core fill:#fff7e6,stroke:#fa8c16,stroke-width:2px,color:#fa8c16
    classDef base fill:#f9f0ff,stroke:#722ed1,stroke-width:1px
    classDef subNode fill:#fafafa,stroke:#d9d9d9,stroke-width:1px,color:#595959

    %% ========== 接入层 ==========
    subgraph 接入层
        direction LR
        A1[Web / 移动端前端]
        A2[第三方 H5 入口]
        A3[统一 API 网关]
    end
    class 接入层 layer

    %% ========== 核心业务模块 ==========
    subgraph 核心业务模块
        direction TB

        B1[用户账户管理模块]:::module
        B2[邀请系统模块]:::module
        B3[额度 & 调用限制模块]:::module
        B4[邀请奖励模块]:::module
        B5[支付 & 会员模块]:::module
        B6[商品爬取服务]:::core

        %% -- 子功能节点 --
        B11[注册 / 登录 / 第三方授权]:::subNode
        B12[用户信息 & 角色权限]:::subNode
        B21[邀请码 / 邀请链接生成]:::subNode
        B22[邀请关系 & 记录管理]:::subNode
        B31[免费 / 会员额度配置]:::subNode
        B32[调用次数限流 & 扣减]:::subNode
        B41[爬取次数奖励发放]:::subNode
        B42[奖励记录统计]:::subNode
        B51[多渠道支付]:::subNode
        B52[会员套餐 & 权限开通]:::subNode
        B53[订单 & 退款管理]:::subNode

        %% -- 模块 → 子功能 --
        B1 --> B11 & B12
        B2 --> B21 & B22
        B3 --> B31 & B32
        B4 --> B41 & B42
        B5 --> B51 & B52 & B53
    end
    class 核心业务模块 layer

    %% ========== 基础中间件 & 存储 ==========
    subgraph 基础中间件 & 存储
        direction LR
        C1[(数据库<br/>用户 / 邀请 / 订单 / 日志)]:::base
        C2[(Redis 缓存<br/>Token / 额度 / 邀请码)]:::base
        C3{{消息队列<br/>异步奖励 / 支付回调 / 爬取任务}}:::base
        C4[日志 & 监控 & 告警]:::base
        C5[安全组件<br/>加密 / 鉴权 / 防攻击]:::base
    end
    class 基础中间件&存储 layer

    %% ========== 层间数据流 ==========

    %% 接入层 → 核心业务
    A1 & A2 --> A3
    A3 --> B1 & B3

    %% 核心业务模块间调用(虚线)
    B1 -.-> B2 & B5
    B2 -.-> B4
    B4 -.-> B3
    B5 -.-> B3
    B3 --> B6

    %% 核心业务 → 中间件
    B1 & B2 --> C1
    B2 & B3 --> C2
    B4 & B5 & B6 --> C3
    B1 & B2 & B3 & B4 & B5 & B6 --> C4
    A3 & B1 & B5 --> C5