球队与成员
优先复用的入口
team-apply-actions.js 负责普通申请,team-admin-actions.js 负责阶段推进和成员协调,team-invite-join-actions.js 负责邀请直入,team-leave-actions.js 与 team-dissolution-actions.js 处理退出和解散。展示从对应 repository、mapper 和 view-model 进入。
状态与关系
普通申请当前允许 pending → approved → invited → joined,并有拒绝分支;进入 invited 阶段可能同步试训成员,正式接纳同步 formal 关系。邀请直入独立处理正式关系、申请复用与去重。
修改任一环节都应核对“当前有效申请”和真实成员状态,拒绝在旧流程上继续操作。不能仅更新申请的展示状态,也不能将同意试训直接改为正式入队。
实施步骤
- 明确变更针对普通申请、邀请、试训、正式成员还是退出后重申。
- 在既有 action 中复用状态校验与关系查询;新增跨表业务优先明确 BFF 合同。
- 设计响应丢失后的回读、已有记录复用与失败补偿。
- 同步申请列表、成员列表、球队权限和人数来源的刷新失效。
- 核对通知接收人及业务目标,消息失败不能虚构成员事务成功。
验证
覆盖队长和普通用户、阶段变化、重复接受邀请、已有申请、退出后重申、非管理者拒绝及中间写入失败。使用现有 smoke:mini:team-approval、smoke:mini:team-invite 定向验证,读取其实际场景和清理条件后再执行。
关系写入完成后,应在真实成员列表中确认结果。
