HaniBlindBox/docs/业务流程图.md
2026-01-01 21:01:50 +08:00

375 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 抽奖盲盒系统业务流程图
## 1. 系统整体业务流程
```mermaid
graph TD
A[用户注册/登录] --> B[浏览商品]
B --> C{选择抽奖类型}
C --> D1[一番赏]
C --> D2[无限赏]
C --> D3[擂台赏]
C --> D4[抽卡机]
C --> D5[积分赏]
C --> D6[全局赏]
C --> D7[福利盲盒]
C --> D8[领主赏]
C --> D9[连击赏]
D1 --> E[创建订单]
D2 --> E
D3 --> E
D4 --> E
D5 --> E
D6 --> E
D7 --> E
D8 --> E
D9 --> E
E --> F{选择支付方式}
F --> G1[微信支付]
F --> G2[支付宝支付]
F --> G3[余额支付]
F --> G4[虚拟货币支付]
F --> G5[优惠券抵扣]
G1 --> H[支付成功]
G2 --> H
G3 --> H
G4 --> H
G5 --> H
H --> I[执行抽奖算法]
I --> J[生成中奖结果]
J --> K{奖品类型判断}
K --> L1[普通奖品]
K --> L2[宝箱奖品]
K --> L3[特殊奖品]
K --> L4[虚拟货币]
L1 --> M[用户选择处理方式]
L2 --> N[开启宝箱]
L3 --> M
L4 --> O[自动到账]
N --> M
M --> P{处理方式}
P --> Q1[选择发货]
P --> Q2[回收换钱]
P --> Q3[发布集市]
Q1 --> R1[填写收货地址]
Q2 --> R2[获得回收金额]
Q3 --> R3[集市交易]
R1 --> S1[商家发货]
R2 --> T[完成]
R3 --> U[等待买家]
S1 --> V[用户确认收货]
U --> W[买家购买]
V --> T
W --> T
```
## 2. 用户注册登录流程
```mermaid
sequenceDiagram
participant U as 用户
participant F as 前端
participant A as API服务
participant D as 数据库
participant S as 短信服务
U->>F: 输入手机号
F->>A: 发送验证码请求
A->>S: 调用短信接口
S-->>A: 发送成功
A->>D: 保存验证码记录
A-->>F: 返回发送结果
U->>F: 输入验证码
F->>A: 提交登录/注册
A->>D: 验证验证码
D-->>A: 验证结果
alt 验证成功
A->>D: 创建/更新用户信息
A->>A: 生成JWT Token
A-->>F: 返回用户信息和Token
F-->>U: 登录成功
else 验证失败
A-->>F: 返回错误信息
F-->>U: 显示错误
end
```
## 3. 抽奖核心流程
```mermaid
graph TD
A[用户发起抽奖] --> B[验证用户权限]
B --> C{权限检查}
C -->|失败| D[返回错误信息]
C -->|成功| E[验证商品状态]
E --> F{商品检查}
F -->|下架/售罄| G[返回商品不可用]
F -->|正常| H[创建订单]
H --> I[计算订单金额]
I --> J[应用优惠券/折扣]
J --> K[用户确认支付]
K --> L{支付处理}
L -->|失败| M[订单取消]
L -->|成功| N[开始抽奖流程]
N --> O[获取奖品池]
O --> P[执行抽奖算法]
P --> Q{抽奖算法类型}
Q --> R1[加权随机算法]
Q --> R2[概率区间算法]
Q --> R3[库存消耗算法]
R1 --> S[计算中奖结果]
R2 --> S
R3 --> S
S --> T[更新库存]
T --> U[创建中奖记录]
U --> V{奖品类型}
V --> W1[普通奖品]
V --> W2[宝箱奖品]
V --> W3[虚拟货币]
V --> W4[特殊奖品]
W1 --> X[等待用户选择]
W2 --> Y[触发宝箱开启]
W3 --> Z[自动发放到账]
W4 --> AA[特殊处理逻辑]
Y --> BB[递归抽奖流程]
BB --> X
AA --> X
X --> CC[用户做出选择]
CC --> DD{选择类型}
DD --> EE[发货流程]
DD --> FF[回收流程]
DD --> GG[集市流程]
```
## 4. 支付流程
```mermaid
sequenceDiagram
participant U as 用户
participant F as 前端
participant A as API服务
participant P as 支付服务
participant D as 数据库
U->>F: 选择支付方式
F->>A: 创建支付订单
A->>D: 保存订单信息
A->>P: 调用支付接口
P-->>A: 返回支付参数
A-->>F: 返回支付信息
F->>U: 显示支付界面
U->>P: 完成支付
P->>A: 支付回调通知
A->>D: 验证订单状态
A->>D: 更新支付状态
A->>A: 触发抽奖流程
A-->>P: 确认回调处理
A->>F: 推送抽奖结果
F-->>U: 显示中奖信息
```
## 5. 商品管理流程
```mermaid
graph TD
A[管理员登录] --> B[商品管理后台]
B --> C{操作类型}
C --> D1[创建商品]
C --> D2[编辑商品]
C --> D3[管理库存]
C --> D4[设置奖品]
D1 --> E1[填写基本信息]
E1 --> E2[上传商品图片]
E2 --> E3[设置价格和库存]
E3 --> E4[配置抽奖参数]
E4 --> E5[保存商品]
D4 --> F1[添加奖品]
F1 --> F2[设置奖品概率]
F2 --> F3[配置奖品库存]
F3 --> F4[设置奖品价值]
F4 --> F5[保存奖品配置]
D3 --> G1[查看库存状态]
G1 --> G2[调整库存数量]
G2 --> G3[设置预警阈值]
G3 --> G4[配置自动下架]
E5 --> H[商品审核]
F5 --> H
G4 --> H
H --> I{审核结果}
I -->|通过| J[商品上架]
I -->|拒绝| K[返回修改]
J --> L[用户可见]
K --> C
```
## 6. 订单处理流程
```mermaid
graph TD
A[订单创建] --> B[订单支付]
B --> C[抽奖执行]
C --> D[生成中奖记录]
D --> E{用户选择}
E --> F1[选择发货]
E --> F2[选择回收]
E --> F3[发布集市]
F1 --> G1[用户填写地址]
G1 --> G2[生成发货订单]
G2 --> G3[商家打包发货]
G3 --> G4[物流配送]
G4 --> G5[用户确认收货]
G5 --> G6[订单完成]
F2 --> H1[计算回收价格]
H1 --> H2[确认回收]
H2 --> H3[资金到账]
H3 --> H4[回收完成]
F3 --> I1[设置售价]
I1 --> I2[发布到集市]
I2 --> I3[等待买家]
I3 --> I4{是否有买家}
I4 -->|是| I5[买家支付]
I4 -->|否| I6[撤回商品]
I5 --> I7[交易完成]
I6 --> E
```
## 7. 集市交易流程
```mermaid
sequenceDiagram
participant S as 卖家
participant M as 集市系统
participant B as 买家
participant P as 支付系统
participant D as 数据库
S->>M: 发布商品到集市
M->>D: 保存商品信息
M-->>S: 发布成功
B->>M: 浏览集市商品
M->>D: 查询商品列表
D-->>M: 返回商品数据
M-->>B: 显示商品列表
B->>M: 选择购买商品
M->>D: 检查商品状态
D-->>M: 商品可购买
M->>P: 创建支付订单
P-->>M: 返回支付信息
M-->>B: 显示支付界面
B->>P: 完成支付
P->>M: 支付成功回调
M->>D: 更新交易状态
M->>D: 转移商品所有权
M->>S: 通知交易成功
M-->>B: 交易完成
```
## 8. 数据统计分析流程
```mermaid
graph TD
A[数据收集] --> B[实时数据处理]
B --> C[数据存储]
C --> D[定时任务分析]
D --> E{分析类型}
E --> F1[用户行为分析]
E --> F2[销售数据分析]
E --> F3[财务数据分析]
E --> F4[商品热度分析]
F1 --> G1[用户活跃度]
F1 --> G2[用户消费习惯]
F1 --> G3[用户留存率]
F2 --> H1[销售额统计]
F2 --> H2[商品销量排行]
F2 --> H3[地区销售分布]
F3 --> I1[收入支出统计]
F3 --> I2[利润率分析]
F3 --> I3[成本控制]
F4 --> J1[商品点击率]
F4 --> J2[转化率分析]
F4 --> J3[库存周转率]
G1 --> K[生成报表]
G2 --> K
G3 --> K
H1 --> K
H2 --> K
H3 --> K
I1 --> K
I2 --> K
I3 --> K
J1 --> K
J2 --> K
J3 --> K
K --> L[管理员查看]
K --> M[自动预警]
K --> N[决策支持]
```
## 流程图说明
### 主要业务流程特点:
1. **多样化抽奖模式**支持9种不同的抽奖类型满足不同用户需求
2. **灵活支付方式**:支持多种支付方式和虚拟货币组合支付
3. **智能抽奖算法**:采用优化后的加权随机算法,确保公平性和性能
4. **完整订单流程**:从下单到收货的完整闭环
5. **用户自主选择**:中奖后可选择发货、回收或集市交易
6. **实时数据分析**:全方位的数据统计和分析支持
### 技术实现要点:
- 使用事务确保数据一致性
- 异步处理提高系统性能
- 缓存机制减少数据库压力
- 完善的日志记录便于问题排查
- 模块化设计便于功能扩展
这些流程图展示了系统的核心业务逻辑和技术架构,为开发和运维提供了清晰的指导。