activity-flow.md 6.2 KB

用户使用流程图 — 活动管理

flowchart TD
    %% ============ 颜色定义 ============
    classDef actor fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
    classDef action fill:#fff3e0,stroke:#f57c00,stroke-width:1px
    classDef system fill:#e8f5e9,stroke:#388e3c,stroke-width:1px
    classDef decision fill:#fce4ec,stroke:#d32f2f,stroke-width:1px
    classDef role fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px
    classDef endpoint fill:#f5f5f5,stroke:#616161,stroke-width:1px

    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

    subgraph 活动审核流程
        A15 --> B1[提交审核 /submit-review]
        B1 --> B2{管理员审核 /audit}
        B2 -->|通过| B3[活动发布]
        B2 -->|驳回| B4[查看驳回原因]
        B4 --> B5[编辑后重新提交]
        B5 --> B1
    end

    subgraph 发布与下架
        B3 --> C1[发布活动 /publish]
        C1 --> C2[活动上线]
        C2 --> C3{活动到期或结束操作}
        C3 -->|手动结束| C4[结束活动 /end]
        C3 -->|截止时间到| C4
        C4 --> C5[活动结束<br>不可再报名]
    end

    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

    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
    D1 -.- R2
    D7 -.- R3
    B2 -.- R4

业务规则

规则 说明
角色 活动由 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 拒绝报名