375 lines
8.5 KiB
Markdown
375 lines
8.5 KiB
Markdown
# 抽奖盲盒系统业务流程图
|
||
|
||
## 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. **实时数据分析**:全方位的数据统计和分析支持
|
||
|
||
### 技术实现要点:
|
||
|
||
- 使用事务确保数据一致性
|
||
- 异步处理提高系统性能
|
||
- 缓存机制减少数据库压力
|
||
- 完善的日志记录便于问题排查
|
||
- 模块化设计便于功能扩展
|
||
|
||
这些流程图展示了系统的核心业务逻辑和技术架构,为开发和运维提供了清晰的指导。 |