1548 lines
47 KiB
Markdown
1548 lines
47 KiB
Markdown
|
|
# 习正陪伴系统交互图和流程图
|
|||
|
|
|
|||
|
|
> 创建时间:2026-02-27
|
|||
|
|
> 文档类型:系统架构与流程可视化
|
|||
|
|
> 适用范围:全体开发人员、产品经理、运营人员
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 目录
|
|||
|
|
|
|||
|
|
1. [系统架构图](#系统架构图)
|
|||
|
|
2. [用户角色交互图](#用户角色交互图)
|
|||
|
|
3. [核心业务流程图](#核心业务流程图)
|
|||
|
|
4. [订单状态流转图](#订单状态流转图)
|
|||
|
|
5. [数据模型ER图](#数据模型er图)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🏗️ 一、系统架构图
|
|||
|
|
|
|||
|
|
### 1.1 技术架构
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph TB
|
|||
|
|
subgraph "前端层"
|
|||
|
|
A1[家长端小程序<br/>uni-app]
|
|||
|
|
A2[陪伴员端小程序<br/>uni-app]
|
|||
|
|
A3[管理师端小程序<br/>uni-app]
|
|||
|
|
A4[分销员端小程序<br/>uni-app]
|
|||
|
|
A5[后台管理系统<br/>Vue 3]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "网关层"
|
|||
|
|
B1[API网关<br/>统一入口]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "应用层"
|
|||
|
|
C1[订单服务<br/>OrderService]
|
|||
|
|
C2[支付服务<br/>PaymentService]
|
|||
|
|
C3[用户服务<br/>UserService]
|
|||
|
|
C4[钱包服务<br/>WalletService]
|
|||
|
|
C5[分销服务<br/>DistributorService]
|
|||
|
|
C6[通知服务<br/>NotificationService]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "数据层"
|
|||
|
|
D1[(MySQL数据库<br/>主数据存储)]
|
|||
|
|
D2[(Redis缓存<br/>会话/缓存)]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "第三方服务"
|
|||
|
|
E1[微信支付API]
|
|||
|
|
E2[支付宝API]
|
|||
|
|
E3[短信服务]
|
|||
|
|
E4[OSS存储]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
A1 --> B1
|
|||
|
|
A2 --> B1
|
|||
|
|
A3 --> B1
|
|||
|
|
A4 --> B1
|
|||
|
|
A5 --> B1
|
|||
|
|
|
|||
|
|
B1 --> C1
|
|||
|
|
B1 --> C2
|
|||
|
|
B1 --> C3
|
|||
|
|
B1 --> C4
|
|||
|
|
B1 --> C5
|
|||
|
|
B1 --> C6
|
|||
|
|
|
|||
|
|
C1 --> D1
|
|||
|
|
C2 --> D1
|
|||
|
|
C3 --> D1
|
|||
|
|
C4 --> D1
|
|||
|
|
C5 --> D1
|
|||
|
|
C6 --> D1
|
|||
|
|
|
|||
|
|
C1 --> D2
|
|||
|
|
C2 --> D2
|
|||
|
|
C3 --> D2
|
|||
|
|
|
|||
|
|
C2 --> E1
|
|||
|
|
C2 --> E2
|
|||
|
|
C6 --> E3
|
|||
|
|
C1 --> E4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 1.2 部署架构
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph LR
|
|||
|
|
subgraph "客户端"
|
|||
|
|
U1[微信小程序]
|
|||
|
|
U2[Web浏览器]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "服务器"
|
|||
|
|
S1[Nginx<br/>反向代理]
|
|||
|
|
S2[Spring Boot<br/>应用服务器<br/>端口:8080]
|
|||
|
|
S3[MySQL<br/>数据库<br/>端口:3306]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
U1 --> S1
|
|||
|
|
U2 --> S1
|
|||
|
|
S1 --> S2
|
|||
|
|
S2 --> S3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 👥 二、用户角色交互图
|
|||
|
|
|
|||
|
|
### 2.1 角色关系图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph TB
|
|||
|
|
subgraph "核心角色"
|
|||
|
|
A[家长<br/>Parent]
|
|||
|
|
B[陪伴员<br/>Teacher]
|
|||
|
|
C[管理师<br/>Manager]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "支撑角色"
|
|||
|
|
D[分销员<br/>Distributor]
|
|||
|
|
E[系统管理员<br/>Admin]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
subgraph "核心实体"
|
|||
|
|
F[订单<br/>Order]
|
|||
|
|
G[学生<br/>Student]
|
|||
|
|
H[服务<br/>Service]
|
|||
|
|
end
|
|||
|
|
|
|||
|
|
A -->|创建订单| F
|
|||
|
|
A -->|管理| G
|
|||
|
|
A -->|选择| H
|
|||
|
|
A -->|评价| B
|
|||
|
|
|
|||
|
|
C -->|派单| F
|
|||
|
|
C -->|分配| B
|
|||
|
|
C -->|补充反馈| F
|
|||
|
|
|
|||
|
|
B -->|接单/拒单| F
|
|||
|
|
B -->|签到/签退| F
|
|||
|
|
B -->|提交反馈| F
|
|||
|
|
|
|||
|
|
D -->|推广| A
|
|||
|
|
D -->|获得佣金| F
|
|||
|
|
|
|||
|
|
E -->|管理| A
|
|||
|
|
E -->|管理| B
|
|||
|
|
E -->|管理| C
|
|||
|
|
E -->|管理| D
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 角色权限矩阵
|
|||
|
|
|
|||
|
|
| 功能模块 | 家长 | 陪伴员 | 管理师 | 分销员 | 管理员 |
|
|||
|
|
|---------|------|--------|--------|--------|--------|
|
|||
|
|
| 创建订单 | ✅ | ❌ | ❌ | ❌ | ✅ |
|
|||
|
|
| 支付订单 | ✅ | ❌ | ❌ | ❌ | ✅ |
|
|||
|
|
| 派单 | ❌ | ❌ | ✅ | ❌ | ✅ |
|
|||
|
|
| 接单/拒单 | ❌ | ✅ | ❌ | ❌ | ✅ |
|
|||
|
|
| 签到/签退 | ❌ | ✅ | ❌ | ❌ | ✅ |
|
|||
|
|
| 提交反馈 | ❌ | ✅ | ❌ | ❌ | ✅ |
|
|||
|
|
| 补充反馈 | ❌ | ❌ | ✅ | ❌ | ✅ |
|
|||
|
|
| 评价服务 | ✅ | ❌ | ❌ | ❌ | ✅ |
|
|||
|
|
| 查看成长记录 | ✅ | ✅ | ✅ | ❌ | ✅ |
|
|||
|
|
| 钱包充值 | ✅ | ❌ | ❌ | ❌ | ✅ |
|
|||
|
|
| 钱包提现 | ❌ | ✅ | ❌ | ✅ | ✅ |
|
|||
|
|
| 推广邀请 | ❌ | ❌ | ❌ | ✅ | ✅ |
|
|||
|
|
| 系统配置 | ❌ | ❌ | ❌ | ❌ | ✅ |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔄 三、核心业务流程图
|
|||
|
|
|
|||
|
|
### 3.1 订单完整生命周期
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
sequenceDiagram
|
|||
|
|
participant P as 家长
|
|||
|
|
participant S as 系统
|
|||
|
|
participant M as 管理师
|
|||
|
|
participant T as 陪伴员
|
|||
|
|
participant W as 钱包服务
|
|||
|
|
participant N as 通知服务
|
|||
|
|
|
|||
|
|
Note over P,N: 1. 创建订单阶段
|
|||
|
|
P->>S: 创建订单
|
|||
|
|
S->>S: 生成订单号和核销码
|
|||
|
|
S->>S: 订单状态=0(待支付)
|
|||
|
|
S-->>P: 返回订单信息
|
|||
|
|
|
|||
|
|
Note over P,N: 2. 支付阶段
|
|||
|
|
P->>S: 发起支付
|
|||
|
|
S->>W: 调用支付服务
|
|||
|
|
W-->>S: 支付成功
|
|||
|
|
S->>S: 订单状态=0(待派单) 支付状态=1(已支付)
|
|||
|
|
S->>N: 发送支付成功通知
|
|||
|
|
N-->>P: 通知家长
|
|||
|
|
N-->>M: 通知管理师(有新订单)
|
|||
|
|
|
|||
|
|
Note over P,N: 3. 派单阶段
|
|||
|
|
M->>S: 查看待派单列表
|
|||
|
|
S-->>M: 返回订单列表
|
|||
|
|
M->>S: 选择陪伴员派单
|
|||
|
|
S->>S: 分配teacherId 订单状态=1(待接单)
|
|||
|
|
S->>N: 发送派单通知
|
|||
|
|
N-->>T: 通知陪伴员(有新订单)
|
|||
|
|
N-->>P: 通知家长(已派单)
|
|||
|
|
|
|||
|
|
Note over P,N: 4. 接单阶段
|
|||
|
|
T->>S: 查看待接单列表
|
|||
|
|
S-->>T: 返回订单列表
|
|||
|
|
T->>S: 接单
|
|||
|
|
S->>S: 订单状态=2(待服务)
|
|||
|
|
S->>N: 发送接单通知
|
|||
|
|
N-->>P: 通知家长(陪伴员已接单)
|
|||
|
|
|
|||
|
|
Note over P,N: 5. 服务阶段
|
|||
|
|
T->>S: 签到(上传照片+GPS)
|
|||
|
|
S->>S: 订单状态=3(服务中)<br/>isVerified=1
|
|||
|
|
S->>N: 发送签到通知
|
|||
|
|
N-->>P: 通知家长(服务开始)
|
|||
|
|
|
|||
|
|
Note over T: 陪伴员提供服务...
|
|||
|
|
|
|||
|
|
T->>S: 签退(上传照片+服务总结)
|
|||
|
|
S->>S: 订单状态=4(已完成)
|
|||
|
|
S->>W: 扣减时卡/套餐
|
|||
|
|
S->>W: 陪伴员收益入账(70%)
|
|||
|
|
S->>N: 发送完成通知
|
|||
|
|
N-->>P: 通知家长(服务完成)
|
|||
|
|
N-->>T: 通知陪伴员(收益入账)
|
|||
|
|
|
|||
|
|
Note over P,N: 6. 评价阶段
|
|||
|
|
P->>S: 提交评价
|
|||
|
|
S->>S: 保存评价<br/>reviewed=true
|
|||
|
|
S->>N: 发送评价通知
|
|||
|
|
N-->>T: 通知陪伴员(收到新评价)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.2 支付流程详细图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([家长发起支付]) --> CheckOrder{订单是否存在?}
|
|||
|
|
CheckOrder -->|否| Error1[返回错误:订单不存在]
|
|||
|
|
CheckOrder -->|是| CheckStatus{订单状态是否为待支付?}
|
|||
|
|
|
|||
|
|
CheckStatus -->|否| Error2[返回错误:订单状态不正确]
|
|||
|
|
CheckStatus -->|是| SelectPayment[选择支付方式]
|
|||
|
|
|
|||
|
|
SelectPayment --> PaymentType{支付方式?}
|
|||
|
|
|
|||
|
|
PaymentType -->|微信支付| WechatPay[调用微信支付API]
|
|||
|
|
WechatPay --> WaitCallback[等待支付回调]
|
|||
|
|
WaitCallback --> PaySuccess1{支付成功?}
|
|||
|
|
PaySuccess1 -->|否| PayFail[支付失败]
|
|||
|
|
PaySuccess1 -->|是| UpdateOrder1[更新订单状态]
|
|||
|
|
|
|||
|
|
PaymentType -->|钱包支付| CheckBalance{钱包余额充足?}
|
|||
|
|
CheckBalance -->|否| Error3[返回错误:余额不足]
|
|||
|
|
CheckBalance -->|是| DeductBalance[扣减钱包余额]
|
|||
|
|
DeductBalance --> UpdateOrder1
|
|||
|
|
|
|||
|
|
PaymentType -->|支付宝| AlipayPay[调用支付宝API]
|
|||
|
|
AlipayPay --> WaitCallback2[等待支付回调]
|
|||
|
|
WaitCallback2 --> PaySuccess2{支付成功?}
|
|||
|
|
PaySuccess2 -->|否| PayFail
|
|||
|
|
PaySuccess2 -->|是| UpdateOrder1
|
|||
|
|
|
|||
|
|
UpdateOrder1 --> CreateRecord[创建支付记录]
|
|||
|
|
CreateRecord --> CreateDistOrder[创建分销订单]
|
|||
|
|
CreateDistOrder --> SendNotify[发送通知]
|
|||
|
|
SendNotify --> End([支付完成])
|
|||
|
|
|
|||
|
|
PayFail --> End2([支付失败])
|
|||
|
|
Error1 --> End2
|
|||
|
|
Error2 --> End2
|
|||
|
|
Error3 --> End2
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.3 派单流程详细图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([管理师查看待派单]) --> GetOrders[获取待派单订单列表]
|
|||
|
|
GetOrders --> SelectOrder[选择订单]
|
|||
|
|
SelectOrder --> ViewDetail[查看订单详情]
|
|||
|
|
|
|||
|
|
ViewDetail --> CheckInfo{信息是否完整?}
|
|||
|
|
CheckInfo -->|否| ContactParent[联系家长补充信息]
|
|||
|
|
ContactParent --> ViewDetail
|
|||
|
|
|
|||
|
|
CheckInfo -->|是| SearchTeacher[搜索陪伴员]
|
|||
|
|
SearchTeacher --> FilterTeacher{筛选条件}
|
|||
|
|
|
|||
|
|
FilterTeacher --> Filter1[按等级筛选]
|
|||
|
|
FilterTeacher --> Filter2[按距离筛选]
|
|||
|
|
FilterTeacher --> Filter3[按评分筛选]
|
|||
|
|
FilterTeacher --> Filter4[按空闲状态筛选]
|
|||
|
|
|
|||
|
|
Filter1 --> TeacherList[陪伴员列表]
|
|||
|
|
Filter2 --> TeacherList
|
|||
|
|
Filter3 --> TeacherList
|
|||
|
|
Filter4 --> TeacherList
|
|||
|
|
|
|||
|
|
TeacherList --> SelectTeacher[选择陪伴员]
|
|||
|
|
SelectTeacher --> ViewTeacherDetail[查看陪伴员详情]
|
|||
|
|
|
|||
|
|
ViewTeacherDetail --> Confirm{确认派单?}
|
|||
|
|
Confirm -->|否| TeacherList
|
|||
|
|
Confirm -->|是| AssignOrder[分配订单]
|
|||
|
|
|
|||
|
|
AssignOrder --> UpdateStatus[更新订单状态 status=1 待接单 teacherId=陪伴员ID]
|
|||
|
|
UpdateStatus --> SendNotify[发送通知]
|
|||
|
|
SendNotify --> NotifyTeacher[通知陪伴员]
|
|||
|
|
SendNotify --> NotifyParent[通知家长]
|
|||
|
|
SendNotify --> End([派单完成])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.4 陪伴员接单流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([陪伴员收到通知]) --> ViewList[查看待接单列表]
|
|||
|
|
ViewList --> SelectOrder[选择订单]
|
|||
|
|
SelectOrder --> ViewDetail[查看订单详情]
|
|||
|
|
|
|||
|
|
ViewDetail --> CheckInfo[查看服务信息]
|
|||
|
|
CheckInfo --> CheckTime{时间是否合适?}
|
|||
|
|
CheckTime -->|否| RejectOrder[拒单]
|
|||
|
|
|
|||
|
|
CheckTime -->|是| CheckLocation{地点是否合适?}
|
|||
|
|
CheckLocation -->|否| RejectOrder
|
|||
|
|
|
|||
|
|
CheckLocation -->|是| CheckRequirement{要求是否能满足?}
|
|||
|
|
CheckRequirement -->|否| RejectOrder
|
|||
|
|
|
|||
|
|
CheckRequirement -->|是| AcceptOrder[接单]
|
|||
|
|
|
|||
|
|
AcceptOrder --> UpdateStatus1[更新订单状态 status=2 待服务]
|
|||
|
|
UpdateStatus1 --> SendNotify1[发送通知]
|
|||
|
|
SendNotify1 --> NotifyParent1[通知家长]
|
|||
|
|
SendNotify1 --> End1([接单成功])
|
|||
|
|
|
|||
|
|
RejectOrder --> InputReason[填写拒单原因]
|
|||
|
|
InputReason --> UpdateStatus2[更新订单状态 status=0 待派单 teacherId=null]
|
|||
|
|
UpdateStatus2 --> SendNotify2[发送通知]
|
|||
|
|
SendNotify2 --> NotifyManager[通知管理师]
|
|||
|
|
SendNotify2 --> NotifyParent2[通知家长]
|
|||
|
|
SendNotify2 --> End2([拒单完成])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.5 服务签到签退流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([陪伴员到达服务地点]) --> CheckIn[点击签到]
|
|||
|
|
CheckIn --> UploadPhoto1[上传现场照片]
|
|||
|
|
UploadPhoto1 --> GetGPS1[获取GPS位置]
|
|||
|
|
GetGPS1 --> InputNote1[填写备注]
|
|||
|
|
InputNote1 --> SubmitCheckIn[提交签到]
|
|||
|
|
|
|||
|
|
SubmitCheckIn --> ValidateLocation{位置是否在范围内?}
|
|||
|
|
ValidateLocation -->|否| Error1[签到失败:位置不符]
|
|||
|
|
ValidateLocation -->|是| UpdateStatus1[更新订单状态 status=3 服务中 isVerified=1]
|
|||
|
|
|
|||
|
|
UpdateStatus1 --> RecordCheckIn[创建签到记录]
|
|||
|
|
RecordCheckIn --> SendNotify1[发送通知]
|
|||
|
|
SendNotify1 --> NotifyParent1[通知家长:服务开始]
|
|||
|
|
SendNotify1 --> Service([开始服务...])
|
|||
|
|
|
|||
|
|
Service --> CheckOut[点击签退]
|
|||
|
|
CheckOut --> UploadPhoto2[上传服务照片]
|
|||
|
|
UploadPhoto2 --> GetGPS2[获取GPS位置]
|
|||
|
|
GetGPS2 --> InputSummary[填写服务总结]
|
|||
|
|
InputSummary --> SubmitCheckOut[提交签退]
|
|||
|
|
|
|||
|
|
SubmitCheckOut --> UpdateStatus2[更新订单状态 status=4 已完成]
|
|||
|
|
UpdateStatus2 --> RecordCheckOut[创建签退记录]
|
|||
|
|
RecordCheckOut --> CalcDuration[计算服务时长]
|
|||
|
|
|
|||
|
|
CalcDuration --> DeductPackage{是否使用套餐?}
|
|||
|
|
DeductPackage -->|是| DeductTime[扣减套餐时长]
|
|||
|
|
DeductPackage -->|否| Skip1[跳过]
|
|||
|
|
|
|||
|
|
DeductTime --> CalcIncome[计算陪伴员收益 收益=订单金额×70%]
|
|||
|
|
Skip1 --> CalcIncome
|
|||
|
|
|
|||
|
|
CalcIncome --> UpdateWallet[钱包收益入账]
|
|||
|
|
UpdateWallet --> UpdateCommission[更新分销佣金状态]
|
|||
|
|
UpdateCommission --> SendNotify2[发送通知]
|
|||
|
|
SendNotify2 --> NotifyParent2[通知家长:服务完成]
|
|||
|
|
SendNotify2 --> NotifyTeacher[通知陪伴员:收益入账]
|
|||
|
|
SendNotify2 --> End([签退完成])
|
|||
|
|
|
|||
|
|
Error1 --> End2([签到失败])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.6 分销流程图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([用户注册]) --> HasInviteCode{是否有邀请码?}
|
|||
|
|
|
|||
|
|
HasInviteCode -->|否| NormalRegister[普通注册]
|
|||
|
|
NormalRegister --> End1([注册完成])
|
|||
|
|
|
|||
|
|
HasInviteCode -->|是| ValidateCode{邀请码是否有效?}
|
|||
|
|
ValidateCode -->|否| NormalRegister
|
|||
|
|
|
|||
|
|
ValidateCode -->|是| GetDistributor[获取分销员信息]
|
|||
|
|
GetDistributor --> CreateRelation[创建客户关系<br/>distributor_customer]
|
|||
|
|
CreateRelation --> SendNotify1[通知分销员:新客户绑定]
|
|||
|
|
SendNotify1 --> End2([注册完成-已绑定分销员])
|
|||
|
|
|
|||
|
|
End2 --> CustomerOrder([客户下单])
|
|||
|
|
CustomerOrder --> PaySuccess{支付成功?}
|
|||
|
|
PaySuccess -->|否| End3([订单结束])
|
|||
|
|
|
|||
|
|
PaySuccess -->|是| CreateDistOrder[创建分销订单<br/>distributor_order]
|
|||
|
|
CreateDistOrder --> CalcCommission[计算佣金<br/>佣金=订单金额×佣金比例]
|
|||
|
|
CalcCommission --> SetStatus1[佣金状态=待结算]
|
|||
|
|
SetStatus1 --> SendNotify2[通知分销员:佣金待结算]
|
|||
|
|
SendNotify2 --> OrderComplete([等待订单完成...])
|
|||
|
|
|
|||
|
|
OrderComplete --> OrderFinish{订单是否完成?}
|
|||
|
|
OrderFinish -->|取消/退款| CancelCommission[取消佣金]
|
|||
|
|
CancelCommission --> End4([佣金取消])
|
|||
|
|
|
|||
|
|
OrderFinish -->|完成| SetStatus2[佣金状态=可提现]
|
|||
|
|
SetStatus2 --> SendNotify3[通知分销员:佣金可提现]
|
|||
|
|
SendNotify3 --> WaitWithdraw([等待提现...])
|
|||
|
|
|
|||
|
|
WaitWithdraw --> ApplyWithdraw{申请提现?}
|
|||
|
|
ApplyWithdraw -->|否| WaitWithdraw
|
|||
|
|
|
|||
|
|
ApplyWithdraw -->|是| CheckAmount{金额是否满足?}
|
|||
|
|
CheckAmount -->|否| Error1[提现失败:金额不足]
|
|||
|
|
|
|||
|
|
CheckAmount -->|是| SubmitWithdraw[提交提现申请]
|
|||
|
|
SubmitWithdraw --> AdminReview{管理员审核}
|
|||
|
|
AdminReview -->|拒绝| RejectWithdraw[拒绝提现]
|
|||
|
|
|
|||
|
|
AdminReview -->|通过| Transfer[转账到银行卡]
|
|||
|
|
Transfer --> DeductBalance[扣减钱包余额]
|
|||
|
|
DeductBalance --> SetStatus3[佣金状态=已提现]
|
|||
|
|
SetStatus3 --> SendNotify4[通知分销员:提现成功]
|
|||
|
|
SendNotify4 --> End5([提现完成])
|
|||
|
|
|
|||
|
|
RejectWithdraw --> End6([提现失败])
|
|||
|
|
Error1 --> End6
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 四、订单状态流转图
|
|||
|
|
|
|||
|
|
### 4.1 订单状态流转完整图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
stateDiagram-v2
|
|||
|
|
[*] --> 待支付: 创建订单
|
|||
|
|
|
|||
|
|
待支付 --> 待派单: 支付成功
|
|||
|
|
待支付 --> 已取消: 取消订单/超时
|
|||
|
|
|
|||
|
|
待派单 --> 待接单: 管理师派单
|
|||
|
|
待派单 --> 已取消: 取消订单
|
|||
|
|
待派单 --> 已退款: 申请退款
|
|||
|
|
|
|||
|
|
待接单 --> 待服务: 陪伴员接单
|
|||
|
|
待接单 --> 待派单: 陪伴员拒单
|
|||
|
|
待接单 --> 已取消: 取消订单
|
|||
|
|
待接单 --> 已退款: 申请退款
|
|||
|
|
|
|||
|
|
待服务 --> 服务中: 签到
|
|||
|
|
待服务 --> 已取消: 取消订单
|
|||
|
|
待服务 --> 已退款: 申请退款
|
|||
|
|
|
|||
|
|
服务中 --> 已完成: 签退
|
|||
|
|
服务中 --> 已退款: 申请退款(特殊情况)
|
|||
|
|
|
|||
|
|
已完成 --> [*]
|
|||
|
|
已取消 --> [*]
|
|||
|
|
已退款 --> [*]
|
|||
|
|
|
|||
|
|
note right of 待支付
|
|||
|
|
status = 0
|
|||
|
|
payStatus = 0
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 待派单
|
|||
|
|
status = 0
|
|||
|
|
payStatus = 1
|
|||
|
|
teacherId = null
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 待接单
|
|||
|
|
status = 1
|
|||
|
|
teacherId = 陪伴员ID
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 待服务
|
|||
|
|
status = 2
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 服务中
|
|||
|
|
status = 3
|
|||
|
|
isVerified = 1
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 已完成
|
|||
|
|
status = 4
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 已取消
|
|||
|
|
status = -1
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 已退款
|
|||
|
|
status = -2
|
|||
|
|
end note
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.2 支付状态流转图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
stateDiagram-v2
|
|||
|
|
[*] --> 未支付: 创建订单
|
|||
|
|
|
|||
|
|
未支付 --> 已支付: 支付成功
|
|||
|
|
未支付 --> 支付失败: 支付失败
|
|||
|
|
|
|||
|
|
已支付 --> 已退款: 申请退款成功
|
|||
|
|
|
|||
|
|
支付失败 --> 未支付: 重新支付
|
|||
|
|
|
|||
|
|
已支付 --> [*]
|
|||
|
|
已退款 --> [*]
|
|||
|
|
支付失败 --> [*]
|
|||
|
|
|
|||
|
|
note right of 未支付
|
|||
|
|
payStatus = 0
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 已支付
|
|||
|
|
payStatus = 1
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 支付失败
|
|||
|
|
payStatus = 2
|
|||
|
|
end note
|
|||
|
|
|
|||
|
|
note right of 已退款
|
|||
|
|
payStatus = 3
|
|||
|
|
end note
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.3 状态流转规则表
|
|||
|
|
|
|||
|
|
| 当前状态 | 允许流转到 | 触发条件 | 操作人 |
|
|||
|
|
|---------|-----------|---------|--------|
|
|||
|
|
| 0-待支付 | 0-待派单 | 支付成功 | 家长 |
|
|||
|
|
| 0-待支付 | -1-已取消 | 取消订单/超时 | 家长/系统 |
|
|||
|
|
| 0-待派单 | 1-待接单 | 管理师派单 | 管理师 |
|
|||
|
|
| 0-待派单 | -1-已取消 | 取消订单 | 家长 |
|
|||
|
|
| 0-待派单 | -2-已退款 | 申请退款 | 家长 |
|
|||
|
|
| 1-待接单 | 2-待服务 | 陪伴员接单 | 陪伴员 |
|
|||
|
|
| 1-待接单 | 0-待派单 | 陪伴员拒单 | 陪伴员 |
|
|||
|
|
| 1-待接单 | -1-已取消 | 取消订单 | 家长 |
|
|||
|
|
| 1-待接单 | -2-已退款 | 申请退款 | 家长 |
|
|||
|
|
| 2-待服务 | 3-服务中 | 签到 | 陪伴员 |
|
|||
|
|
| 2-待服务 | -1-已取消 | 取消订单 | 家长 |
|
|||
|
|
| 2-待服务 | -2-已退款 | 申请退款 | 家长 |
|
|||
|
|
| 3-服务中 | 4-已完成 | 签退 | 陪伴员 |
|
|||
|
|
| 3-服务中 | -2-已退款 | 申请退款(特殊) | 家长 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🗄️ 五、数据模型ER图
|
|||
|
|
|
|||
|
|
### 5.1 核心实体关系图
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
erDiagram
|
|||
|
|
USER ||--o{ ORDER : "创建"
|
|||
|
|
USER ||--o{ STUDENT : "管理"
|
|||
|
|
USER ||--|| WALLET : "拥有"
|
|||
|
|
USER ||--o{ USER_COUPON : "领取"
|
|||
|
|
|
|||
|
|
TEACHER ||--o{ ORDER : "服务"
|
|||
|
|
TEACHER ||--|| WALLET : "拥有"
|
|||
|
|
TEACHER ||--o{ TEACHER_SALARY : "收益"
|
|||
|
|
TEACHER ||--o{ TEACHER_LEVEL : "等级"
|
|||
|
|
|
|||
|
|
ORDER ||--|| STUDENT : "关联"
|
|||
|
|
ORDER ||--|| SERVICE : "选择"
|
|||
|
|
ORDER ||--o{ CHECK_IN_RECORD : "签到记录"
|
|||
|
|
ORDER ||--o{ GROWTH_RECORD : "成长记录"
|
|||
|
|
ORDER ||--o| REVIEW : "评价"
|
|||
|
|
ORDER ||--o| DISTRIBUTOR_ORDER : "分销订单"
|
|||
|
|
ORDER ||--o| USER_PACKAGE : "套餐"
|
|||
|
|
|
|||
|
|
DISTRIBUTOR ||--o{ DISTRIBUTOR_CUSTOMER : "客户关系"
|
|||
|
|
DISTRIBUTOR ||--o{ DISTRIBUTOR_ORDER : "分销订单"
|
|||
|
|
DISTRIBUTOR ||--|| WALLET : "拥有"
|
|||
|
|
|
|||
|
|
COUPON ||--o{ USER_COUPON : "发放"
|
|||
|
|
|
|||
|
|
PACKAGE ||--o{ USER_PACKAGE : "购买"
|
|||
|
|
|
|||
|
|
USER {
|
|||
|
|
bigint id PK
|
|||
|
|
string username
|
|||
|
|
string password
|
|||
|
|
string phone
|
|||
|
|
string userType "角色类型"
|
|||
|
|
string realName
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
STUDENT {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint userId FK
|
|||
|
|
string name
|
|||
|
|
int age
|
|||
|
|
string grade
|
|||
|
|
string gender
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
ORDER {
|
|||
|
|
bigint id PK
|
|||
|
|
string orderNo UK "订单号"
|
|||
|
|
bigint userId FK "家长ID"
|
|||
|
|
bigint studentId FK "学生ID"
|
|||
|
|
bigint teacherId FK "陪伴员ID"
|
|||
|
|
bigint serviceId FK "服务ID"
|
|||
|
|
string serviceName
|
|||
|
|
decimal price
|
|||
|
|
decimal payAmount
|
|||
|
|
int status "订单状态"
|
|||
|
|
int payStatus "支付状态"
|
|||
|
|
string verificationCode "核销码"
|
|||
|
|
boolean isVerified "是否已核销"
|
|||
|
|
datetime verifyTime
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TEACHER {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint userId FK
|
|||
|
|
string name
|
|||
|
|
string phone
|
|||
|
|
string level "等级"
|
|||
|
|
decimal rating "评分"
|
|||
|
|
int serviceCount "服务次数"
|
|||
|
|
string status "状态"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SERVICE {
|
|||
|
|
bigint id PK
|
|||
|
|
string name
|
|||
|
|
string type "服务类型"
|
|||
|
|
decimal price
|
|||
|
|
string description
|
|||
|
|
int status
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
WALLET {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint userId FK
|
|||
|
|
decimal balance "余额"
|
|||
|
|
int version "乐观锁版本号"
|
|||
|
|
datetime updateTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CHECK_IN_RECORD {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint orderId FK
|
|||
|
|
string type "签到/签退"
|
|||
|
|
string photos "照片URL"
|
|||
|
|
string location "GPS位置"
|
|||
|
|
string note "备注"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
GROWTH_RECORD {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint orderId FK
|
|||
|
|
bigint studentId FK
|
|||
|
|
bigint teacherId FK
|
|||
|
|
string content "反馈内容"
|
|||
|
|
string photos "照片"
|
|||
|
|
string videos "视频"
|
|||
|
|
string supplement "管理师补充"
|
|||
|
|
datetime recordDate
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
REVIEW {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint orderId FK
|
|||
|
|
bigint userId FK "家长ID"
|
|||
|
|
bigint teacherId FK
|
|||
|
|
int rating "评分1-5"
|
|||
|
|
string content "评价内容"
|
|||
|
|
string tags "标签"
|
|||
|
|
string replyContent "回复"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DISTRIBUTOR {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint userId FK
|
|||
|
|
string inviteCode UK "邀请码"
|
|||
|
|
string level "等级"
|
|||
|
|
decimal commissionRate "佣金比例"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DISTRIBUTOR_CUSTOMER {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint distributorId FK
|
|||
|
|
bigint customerId FK
|
|||
|
|
datetime bindTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
DISTRIBUTOR_ORDER {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint distributorId FK
|
|||
|
|
bigint orderId FK
|
|||
|
|
decimal orderAmount "订单金额"
|
|||
|
|
decimal commissionAmount "佣金金额"
|
|||
|
|
string status "佣金状态"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
COUPON {
|
|||
|
|
bigint id PK
|
|||
|
|
string name
|
|||
|
|
string type "类型"
|
|||
|
|
decimal discountAmount "优惠金额"
|
|||
|
|
decimal minAmount "最低消费"
|
|||
|
|
datetime validFrom
|
|||
|
|
datetime validTo
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
USER_COUPON {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint userId FK
|
|||
|
|
bigint couponId FK
|
|||
|
|
string status "状态"
|
|||
|
|
datetime usedTime
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
PACKAGE {
|
|||
|
|
bigint id PK
|
|||
|
|
string name
|
|||
|
|
string type "套餐类型"
|
|||
|
|
decimal price
|
|||
|
|
int totalHours "总时长"
|
|||
|
|
int validDays "有效天数"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
USER_PACKAGE {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint userId FK
|
|||
|
|
bigint packageId FK
|
|||
|
|
bigint orderId FK
|
|||
|
|
int totalHours "总时长"
|
|||
|
|
int remainingHours "剩余时长"
|
|||
|
|
datetime expireTime
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TEACHER_SALARY {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint teacherId FK
|
|||
|
|
bigint orderId FK
|
|||
|
|
decimal amount "收益金额"
|
|||
|
|
string status "状态"
|
|||
|
|
datetime createTime
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TEACHER_LEVEL {
|
|||
|
|
bigint id PK
|
|||
|
|
bigint teacherId FK
|
|||
|
|
string level "等级"
|
|||
|
|
datetime achieveTime
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.2 数据表分类
|
|||
|
|
|
|||
|
|
#### 核心业务表
|
|||
|
|
- `user` - 用户表(家长、陪伴员、管理师、分销员)
|
|||
|
|
- `student` - 学生表
|
|||
|
|
- `order` - 订单表
|
|||
|
|
- `service` - 服务表
|
|||
|
|
- `teacher` - 陪伴员表
|
|||
|
|
|
|||
|
|
#### 支付相关表
|
|||
|
|
- `wallet` - 钱包表
|
|||
|
|
- `wallet_transaction` - 钱包交易记录
|
|||
|
|
- `payment_record` - 支付记录
|
|||
|
|
|
|||
|
|
#### 服务相关表
|
|||
|
|
- `check_in_record` - 签到签退记录
|
|||
|
|
- `growth_record` - 成长记录
|
|||
|
|
- `review` - 评价表
|
|||
|
|
|
|||
|
|
#### 营销相关表
|
|||
|
|
- `coupon` - 优惠券模板
|
|||
|
|
- `user_coupon` - 用户优惠券
|
|||
|
|
- `package` - 套餐模板
|
|||
|
|
- `user_package` - 用户套餐
|
|||
|
|
- `package_usage` - 套餐使用记录
|
|||
|
|
|
|||
|
|
#### 分销相关表
|
|||
|
|
- `distributor` - 分销员表
|
|||
|
|
- `distributor_customer` - 分销客户关系
|
|||
|
|
- `distributor_order` - 分销订单
|
|||
|
|
- `distributor_withdraw` - 分销员提现记录
|
|||
|
|
|
|||
|
|
#### 培训相关表
|
|||
|
|
- `training_course` - 培训课程
|
|||
|
|
- `training_learning_record` - 学习记录
|
|||
|
|
- `training_exam` - 考试
|
|||
|
|
- `training_exam_record` - 考试记录
|
|||
|
|
- `training_certificate` - 证书
|
|||
|
|
|
|||
|
|
#### 系统相关表
|
|||
|
|
- `notification` - 通知消息
|
|||
|
|
- `operation_log` - 操作日志
|
|||
|
|
- `permission` - 权限表
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📱 六、前端页面流程图
|
|||
|
|
|
|||
|
|
### 6.1 家长端核心流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([家长登录]) --> Home[首页]
|
|||
|
|
|
|||
|
|
Home --> Action1{选择操作}
|
|||
|
|
|
|||
|
|
Action1 -->|浏览服务| ServiceList[服务列表]
|
|||
|
|
Action1 -->|查看订单| OrderList[订单列表]
|
|||
|
|
Action1 -->|查看成长记录| GrowthList[成长记录]
|
|||
|
|
Action1 -->|钱包充值| Wallet[钱包]
|
|||
|
|
|
|||
|
|
ServiceList --> ServiceDetail[服务详情]
|
|||
|
|
ServiceDetail --> CreateOrder[创建订单]
|
|||
|
|
CreateOrder --> SelectStudent[选择学生]
|
|||
|
|
SelectStudent --> FillInfo[填写服务信息]
|
|||
|
|
FillInfo --> SelectCoupon[选择优惠券]
|
|||
|
|
SelectCoupon --> ConfirmOrder[确认订单]
|
|||
|
|
ConfirmOrder --> Pay[支付]
|
|||
|
|
|
|||
|
|
Pay --> PayMethod{选择支付方式}
|
|||
|
|
PayMethod -->|微信支付| WechatPay[微信支付]
|
|||
|
|
PayMethod -->|钱包支付| WalletPay[钱包支付]
|
|||
|
|
PayMethod -->|支付宝| AliPay[支付宝]
|
|||
|
|
|
|||
|
|
WechatPay --> PaySuccess[支付成功]
|
|||
|
|
WalletPay --> PaySuccess
|
|||
|
|
AliPay --> PaySuccess
|
|||
|
|
|
|||
|
|
PaySuccess --> OrderList
|
|||
|
|
|
|||
|
|
OrderList --> OrderDetail[订单详情]
|
|||
|
|
OrderDetail --> OrderAction{订单操作}
|
|||
|
|
|
|||
|
|
OrderAction -->|查看进度| ViewProgress[查看服务进度]
|
|||
|
|
OrderAction -->|取消订单| CancelOrder[取消订单]
|
|||
|
|
OrderAction -->|申请退款| RefundOrder[申请退款]
|
|||
|
|
OrderAction -->|评价服务| ReviewService[评价服务]
|
|||
|
|
|
|||
|
|
GrowthList --> GrowthDetail[成长记录详情]
|
|||
|
|
|
|||
|
|
Wallet --> WalletAction{钱包操作}
|
|||
|
|
WalletAction -->|充值| Recharge[充值]
|
|||
|
|
WalletAction -->|查看明细| TransactionList[交易明细]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6.2 陪伴员端核心流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([陪伴员登录]) --> Home[首页]
|
|||
|
|
|
|||
|
|
Home --> Action{选择操作}
|
|||
|
|
|
|||
|
|
Action -->|待接单| PendingOrders[待接单列表]
|
|||
|
|
Action -->|服务中| ServingOrders[服务中订单]
|
|||
|
|
Action -->|已完成| CompletedOrders[已完成订单]
|
|||
|
|
Action -->|收益| Income[收益中心]
|
|||
|
|
Action -->|培训| Training[培训中心]
|
|||
|
|
|
|||
|
|
PendingOrders --> OrderDetail1[订单详情]
|
|||
|
|
OrderDetail1 --> Decision1{是否接单?}
|
|||
|
|
Decision1 -->|接单| AcceptOrder[接单]
|
|||
|
|
Decision1 -->|拒单| RejectOrder[拒单]
|
|||
|
|
|
|||
|
|
AcceptOrder --> ServingOrders
|
|||
|
|
RejectOrder --> PendingOrders
|
|||
|
|
|
|||
|
|
ServingOrders --> OrderDetail2[订单详情]
|
|||
|
|
OrderDetail2 --> CheckIn[签到]
|
|||
|
|
CheckIn --> UploadPhoto1[上传照片]
|
|||
|
|
UploadPhoto1 --> GetLocation1[获取位置]
|
|||
|
|
GetLocation1 --> StartService[开始服务]
|
|||
|
|
|
|||
|
|
StartService --> Serving([服务中...])
|
|||
|
|
|
|||
|
|
Serving --> CheckOut[签退]
|
|||
|
|
CheckOut --> UploadPhoto2[上传照片]
|
|||
|
|
UploadPhoto2 --> GetLocation2[获取位置]
|
|||
|
|
GetLocation2 --> WriteFeedback[填写反馈]
|
|||
|
|
WriteFeedback --> CompleteService[完成服务]
|
|||
|
|
|
|||
|
|
CompleteService --> CompletedOrders
|
|||
|
|
|
|||
|
|
CompletedOrders --> OrderDetail3[订单详情]
|
|||
|
|
OrderDetail3 --> ViewReview[查看评价]
|
|||
|
|
|
|||
|
|
Income --> IncomeAction{收益操作}
|
|||
|
|
IncomeAction -->|查看收益| ViewIncome[收益列表]
|
|||
|
|
IncomeAction -->|申请提现| Withdraw[申请提现]
|
|||
|
|
|
|||
|
|
Training --> TrainingAction{培训操作}
|
|||
|
|
TrainingAction -->|学习课程| CourseList[课程列表]
|
|||
|
|
TrainingAction -->|参加考试| ExamList[考试列表]
|
|||
|
|
TrainingAction -->|查看证书| CertList[证书列表]
|
|||
|
|
|
|||
|
|
CourseList --> CourseDetail[课程详情]
|
|||
|
|
CourseDetail --> StudyCourse[学习课程]
|
|||
|
|
|
|||
|
|
ExamList --> StartExam[开始考试]
|
|||
|
|
StartExam --> AnswerQuestions[答题]
|
|||
|
|
AnswerQuestions --> SubmitExam[提交考试]
|
|||
|
|
SubmitExam --> ExamResult[查看成绩]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6.3 管理师端核心流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([管理师登录]) --> Home[首页]
|
|||
|
|
|
|||
|
|
Home --> Stats[数据统计]
|
|||
|
|
Stats --> StatsDetail{统计详情}
|
|||
|
|
StatsDetail -->|待派单数量| PendingCount[待派单统计]
|
|||
|
|
StatsDetail -->|服务中数量| ServingCount[服务中统计]
|
|||
|
|
StatsDetail -->|今日订单| TodayOrders[今日订单统计]
|
|||
|
|
StatsDetail -->|收入统计| IncomeStats[收入统计]
|
|||
|
|
|
|||
|
|
Home --> Action{选择操作}
|
|||
|
|
|
|||
|
|
Action -->|待派单| PendingList[待派单列表]
|
|||
|
|
Action -->|全部订单| AllOrders[全部订单]
|
|||
|
|
Action -->|快速派单| QuickAssign[快速派单]
|
|||
|
|
Action -->|陪伴员管理| TeacherMgmt[陪伴员管理]
|
|||
|
|
|
|||
|
|
PendingList --> OrderDetail1[订单详情]
|
|||
|
|
OrderDetail1 --> ViewInfo[查看订单信息]
|
|||
|
|
ViewInfo --> CheckInfo{信息是否完整?}
|
|||
|
|
CheckInfo -->|否| ContactParent[联系家长]
|
|||
|
|
CheckInfo -->|是| SelectTeacher[选择陪伴员]
|
|||
|
|
|
|||
|
|
SelectTeacher --> TeacherList[陪伴员列表]
|
|||
|
|
TeacherList --> FilterTeacher[筛选陪伴员]
|
|||
|
|
FilterTeacher --> TeacherDetail[陪伴员详情]
|
|||
|
|
TeacherDetail --> ConfirmAssign{确认派单?}
|
|||
|
|
ConfirmAssign -->|是| AssignOrder[派单]
|
|||
|
|
ConfirmAssign -->|否| TeacherList
|
|||
|
|
|
|||
|
|
AssignOrder --> Success1[派单成功]
|
|||
|
|
Success1 --> PendingList
|
|||
|
|
|
|||
|
|
QuickAssign --> QuickForm[快速派单表单]
|
|||
|
|
QuickForm --> FillQuickInfo[填写订单信息]
|
|||
|
|
FillQuickInfo --> SelectTeacher
|
|||
|
|
|
|||
|
|
AllOrders --> OrderDetail2[订单详情]
|
|||
|
|
OrderDetail2 --> OrderAction{订单操作}
|
|||
|
|
OrderAction -->|补充反馈| AddFeedback[补充反馈]
|
|||
|
|
OrderAction -->|查看进度| ViewProgress[查看进度]
|
|||
|
|
OrderAction -->|处理投诉| HandleComplaint[处理投诉]
|
|||
|
|
|
|||
|
|
AddFeedback --> WriteSupplement[填写补充内容]
|
|||
|
|
WriteSupplement --> SubmitSupplement[提交]
|
|||
|
|
SubmitSupplement --> Success2[提交成功]
|
|||
|
|
|
|||
|
|
TeacherMgmt --> TeacherAction{陪伴员操作}
|
|||
|
|
TeacherAction -->|查看列表| TeacherList2[陪伴员列表]
|
|||
|
|
TeacherAction -->|审核申请| AuditList[审核列表]
|
|||
|
|
TeacherAction -->|等级管理| LevelMgmt[等级管理]
|
|||
|
|
|
|||
|
|
TeacherList2 --> TeacherDetail2[陪伴员详情]
|
|||
|
|
TeacherDetail2 --> ViewTeacherInfo[查看详细信息]
|
|||
|
|
ViewTeacherInfo --> TeacherOp{操作}
|
|||
|
|
TeacherOp -->|启用/禁用| ToggleStatus[切换状态]
|
|||
|
|
TeacherOp -->|调整等级| AdjustLevel[调整等级]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6.4 分销员端核心流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([分销员登录]) --> Home[首页]
|
|||
|
|
|
|||
|
|
Home --> Stats[数据统计]
|
|||
|
|
Stats --> StatsDetail{统计详情}
|
|||
|
|
StatsDetail -->|客户总数| CustomerCount[客户统计]
|
|||
|
|
StatsDetail -->|佣金统计| CommissionStats[佣金统计]
|
|||
|
|
StatsDetail -->|本月新增| NewCustomers[新增客户]
|
|||
|
|
|
|||
|
|
Home --> Action{选择操作}
|
|||
|
|
|
|||
|
|
Action -->|推广邀请| Promote[推广中心]
|
|||
|
|
Action -->|客户管理| CustomerMgmt[客户管理]
|
|||
|
|
Action -->|订单管理| OrderMgmt[订单管理]
|
|||
|
|
Action -->|佣金管理| CommissionMgmt[佣金管理]
|
|||
|
|
Action -->|提现| Withdraw[提现中心]
|
|||
|
|
|
|||
|
|
Promote --> PromoteAction{推广方式}
|
|||
|
|
PromoteAction -->|分享邀请码| ShareCode[分享邀请码]
|
|||
|
|
PromoteAction -->|生成海报| GeneratePoster[生成推广海报]
|
|||
|
|
PromoteAction -->|推广链接| ShareLink[分享推广链接]
|
|||
|
|
|
|||
|
|
ShareCode --> CopyCode[复制邀请码]
|
|||
|
|
GeneratePoster --> DownloadPoster[下载海报]
|
|||
|
|
ShareLink --> CopyLink[复制链接]
|
|||
|
|
|
|||
|
|
CustomerMgmt --> CustomerList[客户列表]
|
|||
|
|
CustomerList --> CustomerDetail[客户详情]
|
|||
|
|
CustomerDetail --> ViewCustomerInfo[查看客户信息]
|
|||
|
|
ViewCustomerInfo --> CustomerOrders[客户订单]
|
|||
|
|
|
|||
|
|
OrderMgmt --> DistOrderList[分销订单列表]
|
|||
|
|
DistOrderList --> DistOrderDetail[订单详情]
|
|||
|
|
DistOrderDetail --> ViewCommission[查看佣金]
|
|||
|
|
|
|||
|
|
CommissionMgmt --> CommissionList[佣金列表]
|
|||
|
|
CommissionList --> CommissionFilter{筛选}
|
|||
|
|
CommissionFilter -->|待结算| PendingComm[待结算佣金]
|
|||
|
|
CommissionFilter -->|可提现| AvailableComm[可提现佣金]
|
|||
|
|
CommissionFilter -->|已提现| WithdrawnComm[已提现佣金]
|
|||
|
|
|
|||
|
|
Withdraw --> CheckBalance{余额是否满足?}
|
|||
|
|
CheckBalance -->|否| InsufficientBalance[余额不足提示]
|
|||
|
|
CheckBalance -->|是| WithdrawForm[提现申请表单]
|
|||
|
|
|
|||
|
|
WithdrawForm --> FillAmount[填写提现金额]
|
|||
|
|
FillAmount --> FillBankInfo[填写银行卡信息]
|
|||
|
|
FillBankInfo --> SubmitWithdraw[提交申请]
|
|||
|
|
SubmitWithdraw --> WaitAudit[等待审核]
|
|||
|
|
|
|||
|
|
WaitAudit --> AuditResult{审核结果}
|
|||
|
|
AuditResult -->|通过| WithdrawSuccess[提现成功]
|
|||
|
|
AuditResult -->|拒绝| WithdrawFailed[提现失败]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔔 七、通知系统流程图
|
|||
|
|
|
|||
|
|
### 7.1 通知触发流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([业务事件发生]) --> EventType{事件类型}
|
|||
|
|
|
|||
|
|
EventType -->|订单创建| Event1[订单创建事件]
|
|||
|
|
EventType -->|支付成功| Event2[支付成功事件]
|
|||
|
|
EventType -->|派单| Event3[派单事件]
|
|||
|
|
EventType -->|接单| Event4[接单事件]
|
|||
|
|
EventType -->|拒单| Event5[拒单事件]
|
|||
|
|
EventType -->|签到| Event6[签到事件]
|
|||
|
|
EventType -->|签退| Event7[签退事件]
|
|||
|
|
EventType -->|评价| Event8[评价事件]
|
|||
|
|
EventType -->|收益入账| Event9[收益入账事件]
|
|||
|
|
EventType -->|佣金到账| Event10[佣金到账事件]
|
|||
|
|
|
|||
|
|
Event1 --> CreateNotify1[创建通知记录]
|
|||
|
|
Event2 --> CreateNotify2[创建通知记录]
|
|||
|
|
Event3 --> CreateNotify3[创建通知记录]
|
|||
|
|
Event4 --> CreateNotify4[创建通知记录]
|
|||
|
|
Event5 --> CreateNotify5[创建通知记录]
|
|||
|
|
Event6 --> CreateNotify6[创建通知记录]
|
|||
|
|
Event7 --> CreateNotify7[创建通知记录]
|
|||
|
|
Event8 --> CreateNotify8[创建通知记录]
|
|||
|
|
Event9 --> CreateNotify9[创建通知记录]
|
|||
|
|
Event10 --> CreateNotify10[创建通知记录]
|
|||
|
|
|
|||
|
|
CreateNotify1 --> SaveDB[保存到数据库]
|
|||
|
|
CreateNotify2 --> SaveDB
|
|||
|
|
CreateNotify3 --> SaveDB
|
|||
|
|
CreateNotify4 --> SaveDB
|
|||
|
|
CreateNotify5 --> SaveDB
|
|||
|
|
CreateNotify6 --> SaveDB
|
|||
|
|
CreateNotify7 --> SaveDB
|
|||
|
|
CreateNotify8 --> SaveDB
|
|||
|
|
CreateNotify9 --> SaveDB
|
|||
|
|
CreateNotify10 --> SaveDB
|
|||
|
|
|
|||
|
|
SaveDB --> SendMethod{发送方式}
|
|||
|
|
|
|||
|
|
SendMethod -->|站内消息| InApp[站内消息推送]
|
|||
|
|
SendMethod -->|微信模板消息| Wechat[微信模板消息]
|
|||
|
|
SendMethod -->|短信| SMS[短信通知]
|
|||
|
|
|
|||
|
|
InApp --> CheckOnline{用户是否在线?}
|
|||
|
|
CheckOnline -->|是| PushNow[实时推送]
|
|||
|
|
CheckOnline -->|否| WaitPull[等待用户拉取]
|
|||
|
|
|
|||
|
|
Wechat --> CallWechatAPI[调用微信API]
|
|||
|
|
SMS --> CallSMSAPI[调用短信API]
|
|||
|
|
|
|||
|
|
PushNow --> End([通知完成])
|
|||
|
|
WaitPull --> End
|
|||
|
|
CallWechatAPI --> End
|
|||
|
|
CallSMSAPI --> End
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 7.2 通知消息类型矩阵
|
|||
|
|
|
|||
|
|
| 事件 | 接收人 | 通知方式 | 消息内容 |
|
|||
|
|
|------|--------|---------|---------|
|
|||
|
|
| 订单创建 | 家长 | 站内消息 | 订单创建成功,请尽快支付 |
|
|||
|
|
| 支付成功 | 家长 | 站内消息+微信 | 支付成功,等待派单 |
|
|||
|
|
| 支付成功 | 管理师 | 站内消息 | 有新订单待派单 |
|
|||
|
|
| 派单 | 陪伴员 | 站内消息+微信 | 有新订单待接单 |
|
|||
|
|
| 派单 | 家长 | 站内消息 | 订单已派单,等待陪伴员接单 |
|
|||
|
|
| 接单 | 家长 | 站内消息+微信 | 陪伴员已接单 |
|
|||
|
|
| 拒单 | 家长 | 站内消息 | 陪伴员已拒单 |
|
|||
|
|
| 拒单 | 管理师 | 站内消息 | 订单被拒,需重新派单 |
|
|||
|
|
| 签到 | 家长 | 站内消息+微信 | 陪伴员已到达,服务开始 |
|
|||
|
|
| 签退 | 家长 | 站内消息+微信 | 服务已完成,请评价 |
|
|||
|
|
| 签退 | 陪伴员 | 站内消息 | 收益已入账 |
|
|||
|
|
| 评价 | 陪伴员 | 站内消息 | 收到新评价 |
|
|||
|
|
| 佣金到账 | 分销员 | 站内消息 | 佣金已到账 |
|
|||
|
|
| 提现审核 | 陪伴员/分销员 | 站内消息+短信 | 提现审核结果 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 💰 八、收益结算流程图
|
|||
|
|
|
|||
|
|
### 8.1 陪伴员收益结算
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([订单完成-签退]) --> CalcDuration[计算服务时长]
|
|||
|
|
CalcDuration --> GetOrderAmount[获取订单金额]
|
|||
|
|
GetOrderAmount --> CalcIncome[计算陪伴员收益<br/>收益 = 订单金额 × 70%]
|
|||
|
|
|
|||
|
|
CalcIncome --> CreateSalaryRecord[创建收益记录<br/>teacher_salary表]
|
|||
|
|
CreateSalaryRecord --> UpdateWallet[更新钱包余额]
|
|||
|
|
|
|||
|
|
UpdateWallet --> LockWallet[获取钱包锁<br/>乐观锁version]
|
|||
|
|
LockWallet --> CheckVersion{版本号是否匹配?}
|
|||
|
|
|
|||
|
|
CheckVersion -->|否| RetryLock[重试获取锁]
|
|||
|
|
RetryLock --> LockWallet
|
|||
|
|
|
|||
|
|
CheckVersion -->|是| AddBalance[增加余额]
|
|||
|
|
AddBalance --> UpdateVersion[更新版本号]
|
|||
|
|
UpdateVersion --> CreateTransaction[创建交易记录<br/>wallet_transaction]
|
|||
|
|
|
|||
|
|
CreateTransaction --> SendNotify[发送通知]
|
|||
|
|
SendNotify --> NotifyTeacher[通知陪伴员:收益入账]
|
|||
|
|
NotifyTeacher --> End([结算完成])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.2 分销佣金结算
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([订单完成]) --> GetDistOrder[获取分销订单]
|
|||
|
|
GetDistOrder --> CheckDist{是否有分销关系?}
|
|||
|
|
|
|||
|
|
CheckDist -->|否| End1([无需结算])
|
|||
|
|
|
|||
|
|
CheckDist -->|是| GetCommissionRate[获取佣金比例]
|
|||
|
|
GetCommissionRate --> CalcCommission[计算佣金<br/>佣金 = 订单金额 × 佣金比例]
|
|||
|
|
|
|||
|
|
CalcCommission --> UpdateDistOrder[更新分销订单状态<br/>status = 可提现]
|
|||
|
|
UpdateDistOrder --> UpdateWallet[更新分销员钱包]
|
|||
|
|
|
|||
|
|
UpdateWallet --> LockWallet[获取钱包锁]
|
|||
|
|
LockWallet --> CheckVersion{版本号是否匹配?}
|
|||
|
|
|
|||
|
|
CheckVersion -->|否| RetryLock[重试获取锁]
|
|||
|
|
RetryLock --> LockWallet
|
|||
|
|
|
|||
|
|
CheckVersion -->|是| AddBalance[增加余额]
|
|||
|
|
AddBalance --> UpdateVersion[更新版本号]
|
|||
|
|
UpdateVersion --> CreateTransaction[创建交易记录]
|
|||
|
|
|
|||
|
|
CreateTransaction --> SendNotify[发送通知]
|
|||
|
|
SendNotify --> NotifyDist[通知分销员:佣金到账]
|
|||
|
|
NotifyDist --> End2([结算完成])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.3 平台收益统计
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([订单完成]) --> GetOrderAmount[获取订单金额]
|
|||
|
|
GetOrderAmount --> CalcPlatformIncome[计算平台收益<br/>平台收益 = 订单金额 × 30%]
|
|||
|
|
|
|||
|
|
CalcPlatformIncome --> CheckDistributor{是否有分销?}
|
|||
|
|
|
|||
|
|
CheckDistributor -->|是| DeductCommission[扣除分销佣金]
|
|||
|
|
CheckDistributor -->|否| FinalIncome1[最终平台收益]
|
|||
|
|
|
|||
|
|
DeductCommission --> FinalIncome2[最终平台收益<br/>= 30% - 分销佣金]
|
|||
|
|
|
|||
|
|
FinalIncome1 --> UpdateStats[更新平台收益统计]
|
|||
|
|
FinalIncome2 --> UpdateStats
|
|||
|
|
|
|||
|
|
UpdateStats --> SaveRecord[保存收益记录]
|
|||
|
|
SaveRecord --> End([统计完成])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 九、数据统计流程图
|
|||
|
|
|
|||
|
|
### 9.1 管理师端数据统计
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([管理师查看统计]) --> SelectType{统计类型}
|
|||
|
|
|
|||
|
|
SelectType -->|订单统计| OrderStats[订单统计]
|
|||
|
|
SelectType -->|陪伴员统计| TeacherStats[陪伴员统计]
|
|||
|
|
SelectType -->|收入统计| IncomeStats[收入统计]
|
|||
|
|
|
|||
|
|
OrderStats --> OrderQuery[查询订单数据]
|
|||
|
|
OrderQuery --> OrderCalc{计算指标}
|
|||
|
|
OrderCalc -->|待派单| CountPending[统计待派单数量]
|
|||
|
|
OrderCalc -->|服务中| CountServing[统计服务中数量]
|
|||
|
|
OrderCalc -->|已完成| CountCompleted[统计已完成数量]
|
|||
|
|
OrderCalc -->|今日订单| CountToday[统计今日订单]
|
|||
|
|
|
|||
|
|
CountPending --> DisplayOrder[展示订单统计]
|
|||
|
|
CountServing --> DisplayOrder
|
|||
|
|
CountCompleted --> DisplayOrder
|
|||
|
|
CountToday --> DisplayOrder
|
|||
|
|
|
|||
|
|
TeacherStats --> TeacherQuery[查询陪伴员数据]
|
|||
|
|
TeacherQuery --> TeacherCalc{计算指标}
|
|||
|
|
TeacherCalc -->|在线数量| CountOnline[统计在线陪伴员]
|
|||
|
|
TeacherCalc -->|服务中| CountBusy[统计服务中陪伴员]
|
|||
|
|
TeacherCalc -->|空闲| CountFree[统计空闲陪伴员]
|
|||
|
|
|
|||
|
|
CountOnline --> DisplayTeacher[展示陪伴员统计]
|
|||
|
|
CountBusy --> DisplayTeacher
|
|||
|
|
CountFree --> DisplayTeacher
|
|||
|
|
|
|||
|
|
IncomeStats --> IncomeQuery[查询收入数据]
|
|||
|
|
IncomeQuery --> IncomeCalc{计算指标}
|
|||
|
|
IncomeCalc -->|今日收入| CalcToday[计算今日收入]
|
|||
|
|
IncomeCalc -->|本月收入| CalcMonth[计算本月收入]
|
|||
|
|
IncomeCalc -->|总收入| CalcTotal[计算总收入]
|
|||
|
|
|
|||
|
|
CalcToday --> DisplayIncome[展示收入统计]
|
|||
|
|
CalcMonth --> DisplayIncome
|
|||
|
|
CalcTotal --> DisplayIncome
|
|||
|
|
|
|||
|
|
DisplayOrder --> End([展示完成])
|
|||
|
|
DisplayTeacher --> End
|
|||
|
|
DisplayIncome --> End
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 9.2 陪伴员端数据统计
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([陪伴员查看统计]) --> SelectType{统计类型}
|
|||
|
|
|
|||
|
|
SelectType -->|服务统计| ServiceStats[服务统计]
|
|||
|
|
SelectType -->|收益统计| IncomeStats[收益统计]
|
|||
|
|
|
|||
|
|
ServiceStats --> ServiceQuery[查询服务数据]
|
|||
|
|
ServiceQuery --> ServiceCalc{计算指标}
|
|||
|
|
ServiceCalc -->|服务次数| CountService[统计服务次数]
|
|||
|
|
ServiceCalc -->|服务时长| CalcDuration[计算服务时长]
|
|||
|
|
ServiceCalc -->|平均评分| CalcRating[计算平均评分]
|
|||
|
|
|
|||
|
|
CountService --> DisplayService[展示服务统计]
|
|||
|
|
CalcDuration --> DisplayService
|
|||
|
|
CalcRating --> DisplayService
|
|||
|
|
|
|||
|
|
IncomeStats --> IncomeQuery[查询收益数据]
|
|||
|
|
IncomeQuery --> IncomeCalc{计算指标}
|
|||
|
|
IncomeCalc -->|今日收益| CalcToday[计算今日收益]
|
|||
|
|
IncomeCalc -->|本月收益| CalcMonth[计算本月收益]
|
|||
|
|
IncomeCalc -->|总收益| CalcTotal[计算总收益]
|
|||
|
|
IncomeCalc -->|可提现| CalcAvailable[计算可提现金额]
|
|||
|
|
|
|||
|
|
CalcToday --> DisplayIncome[展示收益统计]
|
|||
|
|
CalcMonth --> DisplayIncome
|
|||
|
|
CalcTotal --> DisplayIncome
|
|||
|
|
CalcAvailable --> DisplayIncome
|
|||
|
|
|
|||
|
|
DisplayService --> End([展示完成])
|
|||
|
|
DisplayIncome --> End
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 9.3 分销员端数据统计
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([分销员查看统计]) --> SelectType{统计类型}
|
|||
|
|
|
|||
|
|
SelectType -->|客户统计| CustomerStats[客户统计]
|
|||
|
|
SelectType -->|佣金统计| CommissionStats[佣金统计]
|
|||
|
|
|
|||
|
|
CustomerStats --> CustomerQuery[查询客户数据]
|
|||
|
|
CustomerQuery --> CustomerCalc{计算指标}
|
|||
|
|
CustomerCalc -->|客户总数| CountTotal[统计客户总数]
|
|||
|
|
CustomerCalc -->|本月新增| CountNew[统计本月新增]
|
|||
|
|
CustomerCalc -->|活跃客户| CountActive[统计活跃客户]
|
|||
|
|
|
|||
|
|
CountTotal --> DisplayCustomer[展示客户统计]
|
|||
|
|
CountNew --> DisplayCustomer
|
|||
|
|
CountActive --> DisplayCustomer
|
|||
|
|
|
|||
|
|
CommissionStats --> CommissionQuery[查询佣金数据]
|
|||
|
|
CommissionQuery --> CommissionCalc{计算指标}
|
|||
|
|
CommissionCalc -->|待结算| CalcPending[计算待结算佣金]
|
|||
|
|
CommissionCalc -->|可提现| CalcAvailable[计算可提现佣金]
|
|||
|
|
CommissionCalc -->|已提现| CalcWithdrawn[计算已提现佣金]
|
|||
|
|
CommissionCalc -->|总佣金| CalcTotal[计算总佣金]
|
|||
|
|
|
|||
|
|
CalcPending --> DisplayCommission[展示佣金统计]
|
|||
|
|
CalcAvailable --> DisplayCommission
|
|||
|
|
CalcWithdrawn --> DisplayCommission
|
|||
|
|
CalcTotal --> DisplayCommission
|
|||
|
|
|
|||
|
|
DisplayCustomer --> End([展示完成])
|
|||
|
|
DisplayCommission --> End
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔐 十、权限控制流程图
|
|||
|
|
|
|||
|
|
### 10.1 用户登录认证流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([用户访问系统]) --> LoginType{登录方式}
|
|||
|
|
|
|||
|
|
LoginType -->|账号密码| AccountLogin[账号密码登录]
|
|||
|
|
LoginType -->|微信授权| WechatLogin[微信授权登录]
|
|||
|
|
LoginType -->|手机验证码| PhoneLogin[手机验证码登录]
|
|||
|
|
|
|||
|
|
AccountLogin --> InputAccount[输入账号密码]
|
|||
|
|
InputAccount --> ValidateAccount{验证账号密码}
|
|||
|
|
ValidateAccount -->|失败| LoginFail1[登录失败]
|
|||
|
|
ValidateAccount -->|成功| GenerateToken[生成Token]
|
|||
|
|
|
|||
|
|
WechatLogin --> WechatAuth[微信授权]
|
|||
|
|
WechatAuth --> GetWechatInfo[获取微信信息]
|
|||
|
|
GetWechatInfo --> CheckBind{是否已绑定?}
|
|||
|
|
CheckBind -->|否| BindAccount[绑定账号]
|
|||
|
|
CheckBind -->|是| GenerateToken
|
|||
|
|
BindAccount --> GenerateToken
|
|||
|
|
|
|||
|
|
PhoneLogin --> SendCode[发送验证码]
|
|||
|
|
SendCode --> InputCode[输入验证码]
|
|||
|
|
InputCode --> ValidateCode{验证验证码}
|
|||
|
|
ValidateCode -->|失败| LoginFail2[登录失败]
|
|||
|
|
ValidateCode -->|成功| GenerateToken
|
|||
|
|
|
|||
|
|
GenerateToken --> SaveToken[保存Token到Redis]
|
|||
|
|
SaveToken --> ReturnToken[返回Token给客户端]
|
|||
|
|
ReturnToken --> ClientSave[客户端保存Token]
|
|||
|
|
ClientSave --> Success([登录成功])
|
|||
|
|
|
|||
|
|
LoginFail1 --> End1([登录失败])
|
|||
|
|
LoginFail2 --> End1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 10.2 API请求权限验证流程
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([客户端发起请求]) --> HasToken{是否携带Token?}
|
|||
|
|
|
|||
|
|
HasToken -->|否| CheckAnonymous{是否允许匿名访问?}
|
|||
|
|
CheckAnonymous -->|是| AllowAccess[允许访问]
|
|||
|
|
CheckAnonymous -->|否| Return401[返回401未授权]
|
|||
|
|
|
|||
|
|
HasToken -->|是| ValidateToken[验证Token]
|
|||
|
|
ValidateToken --> CheckExpire{Token是否过期?}
|
|||
|
|
|
|||
|
|
CheckExpire -->|是| Return401
|
|||
|
|
CheckExpire -->|否| GetUserInfo[获取用户信息]
|
|||
|
|
|
|||
|
|
GetUserInfo --> CheckRole{检查用户角色}
|
|||
|
|
CheckRole --> HasPermission{是否有权限?}
|
|||
|
|
|
|||
|
|
HasPermission -->|否| Return403[返回403禁止访问]
|
|||
|
|
HasPermission -->|是| AllowAccess
|
|||
|
|
|
|||
|
|
AllowAccess --> ExecuteAPI[执行API逻辑]
|
|||
|
|
ExecuteAPI --> ReturnResult[返回结果]
|
|||
|
|
ReturnResult --> End([请求完成])
|
|||
|
|
|
|||
|
|
Return401 --> End
|
|||
|
|
Return403 --> End
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 10.3 角色权限矩阵验证
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
flowchart TD
|
|||
|
|
Start([API请求]) --> GetAPI[获取API路径]
|
|||
|
|
GetAPI --> GetUserRole[获取用户角色]
|
|||
|
|
GetUserRole --> CheckMatrix{查询权限矩阵}
|
|||
|
|
|
|||
|
|
CheckMatrix --> RoleType{角色类型}
|
|||
|
|
|
|||
|
|
RoleType -->|家长| ParentPermission[家长权限列表]
|
|||
|
|
RoleType -->|陪伴员| TeacherPermission[陪伴员权限列表]
|
|||
|
|
RoleType -->|管理师| ManagerPermission[管理师权限列表]
|
|||
|
|
RoleType -->|分销员| DistPermission[分销员权限列表]
|
|||
|
|
RoleType -->|管理员| AdminPermission[管理员权限列表]
|
|||
|
|
|
|||
|
|
ParentPermission --> CheckAPI{API是否在权限列表?}
|
|||
|
|
TeacherPermission --> CheckAPI
|
|||
|
|
ManagerPermission --> CheckAPI
|
|||
|
|
DistPermission --> CheckAPI
|
|||
|
|
AdminPermission --> CheckAPI
|
|||
|
|
|
|||
|
|
CheckAPI -->|否| Deny[拒绝访问]
|
|||
|
|
CheckAPI -->|是| Allow[允许访问]
|
|||
|
|
|
|||
|
|
Allow --> LogAccess[记录访问日志]
|
|||
|
|
Deny --> LogDeny[记录拒绝日志]
|
|||
|
|
|
|||
|
|
LogAccess --> End1([访问成功])
|
|||
|
|
LogDeny --> End2([访问被拒])
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📝 十一、总结
|
|||
|
|
|
|||
|
|
### 11.1 系统特点
|
|||
|
|
|
|||
|
|
1. **多角色协同**
|
|||
|
|
- 家长、陪伴员、管理师、分销员四大核心角色
|
|||
|
|
- 每个角色有独立的功能模块和权限
|
|||
|
|
- 角色之间通过订单流程紧密协作
|
|||
|
|
|
|||
|
|
2. **完整的业务闭环**
|
|||
|
|
- 从订单创建到服务完成的完整流程
|
|||
|
|
- 支付、派单、服务、评价环环相扣
|
|||
|
|
- 收益结算和分销佣金自动化处理
|
|||
|
|
|
|||
|
|
3. **灵活的支付方式**
|
|||
|
|
- 支持微信支付、钱包支付、支付宝等多种方式
|
|||
|
|
- 套餐和时卡系统提供更多选择
|
|||
|
|
- 优惠券系统增强营销能力
|
|||
|
|
|
|||
|
|
4. **完善的通知机制**
|
|||
|
|
- 站内消息、微信模板消息、短信多渠道通知
|
|||
|
|
- 关键节点实时提醒
|
|||
|
|
- 提升用户体验
|
|||
|
|
|
|||
|
|
5. **数据驱动决策**
|
|||
|
|
- 多维度数据统计
|
|||
|
|
- 实时数据展示
|
|||
|
|
- 支持运营决策
|
|||
|
|
|
|||
|
|
### 11.2 技术亮点
|
|||
|
|
|
|||
|
|
1. **状态机管理**
|
|||
|
|
- 严格的订单状态流转规则
|
|||
|
|
- 防止非法状态跳转
|
|||
|
|
- 保证业务逻辑正确性
|
|||
|
|
|
|||
|
|
2. **并发控制**
|
|||
|
|
- 钱包操作使用乐观锁
|
|||
|
|
- 防止并发扣款问题
|
|||
|
|
- 保证数据一致性
|
|||
|
|
|
|||
|
|
3. **分布式架构**
|
|||
|
|
- 前后端分离
|
|||
|
|
- 微服务化设计
|
|||
|
|
- 易于扩展和维护
|
|||
|
|
|
|||
|
|
4. **安全机制**
|
|||
|
|
- Token认证
|
|||
|
|
- 角色权限控制
|
|||
|
|
- 操作日志记录
|
|||
|
|
|
|||
|
|
### 11.3 使用说明
|
|||
|
|
|
|||
|
|
本文档包含了习正陪伴系统的完整交互图和流程图,涵盖:
|
|||
|
|
|
|||
|
|
- ✅ 系统架构图
|
|||
|
|
- ✅ 用户角色交互图
|
|||
|
|
- ✅ 核心业务流程图(订单、支付、派单、服务、分销)
|
|||
|
|
- ✅ 订单状态流转图
|
|||
|
|
- ✅ 数据模型ER图
|
|||
|
|
- ✅ 前端页面流程图
|
|||
|
|
- ✅ 通知系统流程图
|
|||
|
|
- ✅ 收益结算流程图
|
|||
|
|
- ✅ 数据统计流程图
|
|||
|
|
- ✅ 权限控制流程图
|
|||
|
|
|
|||
|
|
**建议使用场景:**
|
|||
|
|
|
|||
|
|
1. **新人培训** - 快速了解系统架构和业务流程
|
|||
|
|
2. **需求分析** - 理解现有功能,规划新功能
|
|||
|
|
3. **开发参考** - 开发时参考流程图,避免遗漏
|
|||
|
|
4. **问题排查** - 根据流程图定位问题环节
|
|||
|
|
5. **文档编写** - 作为技术文档的配图
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**文档结束**
|
|||
|
|
|
|||
|
|
> 创建时间:2026-02-27
|
|||
|
|
> 最后更新:2026-02-27
|
|||
|
|
> 维护人:江鑫杰
|
|||
|
|
>
|
|||
|
|
> 本文档基于《习正陪伴业务流程完整分析》绘制,使用Mermaid语法实现,可在支持Mermaid的Markdown编辑器中查看。
|
|||
|
|
|