Просмотр исходного кода

fix(activity): correct activity flow diagram with proper business rules

iwt 3 месяцев назад
Родитель
Сommit
eb74625804
1 измененных файлов с 123 добавлено и 46 удалено
  1. 123 46
      docs/flows/activity-flow.md

+ 123 - 46
docs/flows/activity-flow.md

@@ -10,64 +10,141 @@ flowchart TD
     classDef role fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px
     classDef role fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px
     classDef endpoint fill:#f5f5f5,stroke:#616161,stroke-width:1px,shape:box
     classDef endpoint fill:#f5f5f5,stroke:#616161,stroke-width:1px,shape:box
 
 
-    subgraph 活动浏览
-        A1(("用户")) --> A2[获取活动列表 /list]
-        A2 --> A3[获取活动详情 /detail]
+    subgraph 活动创建(活动管理员)
+        A1(("活动管理员")) --> A2[创建活动 /create]
+        A2 --> A3[设置基本信息:标题/描述/封面/维度]
+        A3 --> A4[设置活动类型 offline/online/campaign]
+        A4 --> A5[设置时间地点:开始/结束/位置]
+        A5 --> A6[设置报名规则]
+        A6 --> A7{是否限制人数?}
+        A7 -->|是| A8[设置最大人数 maxParticipants]
+        A7 -->|否| A9[不限制人数]
+        A8 --> A10[设置价格体系]
+        A9 --> A10
+        A10 --> A11[普通价 price]
+        A11 --> A12[会员价 memberPrice]
+        A12 --> A13[签到积分 checkinPoints]
+        A13 --> A14[设置可见范围 public/restricted/member]
+        A14 --> A15[保存草稿]
     end
     end
 
 
-    subgraph 报名参与
-        A3 --> B1[报名活动 /register]
-        B1 --> B2[取消报名 /cancel-registration]
-        B2 --> B3[获取我的报名 /my-registrations]
-        B3 --> B4[活动签到 /checkin]
+    subgraph 活动审核流程
+        A15 --> B1[提交审核 /submit-review]
+        B1 --> B2{管理员审核 /audit}
+        B2 -->|通过| B3[活动发布]
+        B2 -->|驳回| B4[查看驳回原因]
+        B4 --> B5[编辑后重新提交]
+        B5 --> B1
     end
     end
 
 
-    subgraph 规划师活动管理
-        A1 --> C1[获取活动列表 /guide/activities/list]
-        C1 --> C2[获取详情 /guide/activities/detail]
-        C2 --> C3[创建活动 /guide/activities/create]
-        C3 --> C4[更新活动 /guide/activities/update]
-        C4 --> C5[发布活动 /guide/activities/publish]
-        C5 --> C6[取消活动 /guide/activities/cancel]
-        C6 --> C7[删除活动 /guide/activities/delete]
+    subgraph 发布与下架
+        B3 --> C1[发布活动 /publish]
+        C1 --> C2[活动上线]
+        C2 --> C3{活动到期或结束操作}
+        C3 -->|手动结束| C4[结束活动 /end]
+        C3 -->|截止时间到| C4
+        C4 --> C5[活动结束<br>不可再报名]
     end
     end
 
 
-    subgraph 管理员审核
-        C5 --> D1[活动审核 /admin/activity/review]
-        D1 --> D2[提交审核 /admin/activity/submit-review]
-        D2 --> D3[审批通过/驳回 /admin/activity/audit]
-        D3 --> D4[撤回审核 /admin/activity/withdraw]
-        D4 --> D5[重新编辑 /admin/activity/re-draft]
+    subgraph 用户浏览与报名
+        C2 --> D1(("家长")) --> D2[浏览活动列表 /list]
+        D2 --> D3[查看详情 /detail]
+        D3 --> D4{报名条件检查}
+        D4 -->|人数已满| D5[提示已满员]
+        D4 -->|已截止| D6[提示报名结束]
+        D4 -->|可报名| D7[选择参加的孩子 childId]
+        D7 --> D8[填写参加人身份信息]
+        D8 --> D9{用户会员等级}
+        D9 -->|普通用户| D10[普通价 price]
+        D9 -->|会员用户| D11[会员价 memberPrice]
+        D10 --> D12[提交报名 /register]
+        D11 --> D12
+        D12 --> D13{报名需审核?}
+        D13 -->|是| D14[等待管理员审批]
+        D13 -->|否| D15[报名成功]
+        D14 --> D16{管理员操作}
+        D16 -->|通过| D15
+        D16 -->|拒绝| D17[报名被驳回]
     end
     end
 
 
-    R1(("👤 用户/规划师")):::actor
-    R2(("🔧 管理员")):::role
+    subgraph 报名管理
+        D15 --> E1[我的报名 /my-registrations]
+        E1 --> E2{活动开始前?}
+        E2 -->|是| E3[取消报名 /cancel-registration]
+        E2 -->|否| E4[等待签到]
+    end
+
+    subgraph 签到
+        E4 --> F1[签到 /checkin]
+        F1 --> F2{需审核签到?}
+        F2 -->|是| F3[等待审核]
+        F2 -->|否| F4[签到成功<br>发放积分]
+    end
+
+    subgraph 活动反馈(活动结束后)
+        C5 --> G1[已签到参与者]
+        G1 --> G2[提交活动反馈]
+    end
+
+    subgraph 管理员报名管理
+        D14 --> H1[报名列表 /admin/activity/registration/list]
+        H1 --> H2[审批 /approve]
+        H2 --> H3[拒绝 /reject]
+    end
+
+    subgraph 管理后台
+        B2 --> I1[活动列表 /admin/activity/list]
+        I1 --> I2[活动审核 /review]
+        I2 --> I3[撤回 /withdraw]
+        I3 --> I4[转草稿 /re-draft]
+    end
+
+    R1(("🔧 活动管理员<br>role=activity_admin")):::actor
+    R2(("👤 家长")):::actor
+    R3(("👶 孩子")):::role
+    R4(("🔧 管理员")):::role
 
 
     A1 -.- R1
     A1 -.- R1
     D1 -.- R2
     D1 -.- R2
+    D7 -.- R3
+    B2 -.- R4
 ```
 ```
 
 
-## 端点明细
+## 业务规则
 
 
-| 端点 | 说明 |
+| 规则 | 说明 |
 |------|------|
 |------|------|
-| `/api/activity/list` | 活动列表 |
-| `/api/activity/detail` | 活动详情 |
-| `/api/activity/create` | 创建活动 |
-| `/api/activity/update` | 更新活动 |
-| `/api/activity/publish` | 发布活动 |
-| `/api/activity/end` | 结束活动 |
-| `/api/activity/register` | 报名活动 |
-| `/api/activity/cancel-registration` | 取消报名 |
-| `/api/activity/my-registrations` | 我的报名 |
-| `/api/activity/checkin` | 签到 |
-| `/api/guide/activities/list` | 规划师活动列表 |
-| `/api/guide/activities/detail` | 规划师活动详情 |
-| `/api/guide/activities/create` | 创建活动(规划师) |
-| `/api/guide/activities/update` | 更新活动 |
-| `/api/guide/activities/publish` | 发布活动 |
-| `/api/guide/activities/cancel` | 取消活动 |
-| `/api/guide/activities/delete` | 删除活动 |
-| `/api/admin/activity/list` | 管理员活动列表 |
-| `/api/admin/activity/review` | 活动审核 |
-| `/api/admin/activity/audit` | 审批操作 |
+| **角色** | 活动由 `activity_admin`(活动管理员)管理,非规划师。`admin` 也可管理。 |
+| **替他人报名** | 家长可替多个孩子报名,每个报名需指定 childId |
+| **身份信息** | 报名时需填写参加人的信息(孩子信息) |
+| **价格分层** | `price` 普通价 vs `memberPrice` 会员价,不同级别用户不同价格 |
+| **人数限制** | `maxParticipants`=0/null 表示不限制人数 |
+| **报名截止** | `endTime` 即报名截止时间 |
+| **自动截止** | 达到 `maxParticipants` 或超过 `endTime` 自动停止报名 |
+| **签到** | 活动签到 `checkin`,可设置签到审核和签到积分 `checkinPoints` |
+| **反馈** | 活动结束后,已签到的参与者可提交反馈 |
+
+## 端点明细
+
+| 端点 | 控制器 | 说明 |
+|------|--------|------|
+| `/api/activity/list` | ActivityController | 活动列表(支持维度过滤+分页) |
+| `/api/activity/detail` | ActivityController | 活动详情 |
+| `/api/activity/create` | ActivityController | 创建活动(需admin/activity_admin) |
+| `/api/activity/update` | ActivityController | 修改活动(需admin/activity_admin) |
+| `/api/activity/publish` | ActivityController | 发布活动 |
+| `/api/activity/end` | ActivityController | 结束活动 |
+| `/api/activity/register` | ActivityController | 报名(activityId + childId) |
+| `/api/activity/cancel-registration` | ActivityController | 取消报名 |
+| `/api/activity/my-registrations` | ActivityController | 我的报名列表 |
+| `/api/activity/checkin` | ActivityController | 签到 |
+| `/api/admin/activity/list` | AdminActivityController | 管理员活动列表 |
+| `/api/admin/activity/detail` | AdminActivityController | 活动详情 |
+| `/api/admin/activity/review` | AdminActivityController | 审核 |
+| `/api/admin/activity/submit-review` | AdminActivityController | 提交审核 |
+| `/api/admin/activity/audit` | AdminActivityController | 审批(通过/驳回) |
+| `/api/admin/activity/withdraw` | AdminActivityController | 撤回审核 |
+| `/api/admin/activity/re-draft` | AdminActivityController | 转草稿 |
+| `/api/admin/activity/registration/list` | AdminActivityRegistrationController | 报名列表 |
+| `/api/admin/activity/registration/approve` | AdminActivityRegistrationController | 审批报名通过 |
+| `/api/admin/activity/registration/reject` | AdminActivityRegistrationController | 拒绝报名 |