状态和权限
状态属于具体业务对象。投递、洽谈和订单不能共用一个含糊的“待确认”。前端按钮只是提示,服务端仍要检查身份、归属、当前状态和版本。
状态
| 对象 | 状态与转换 |
|---|---|
| 入驻审核 | DRAFT → PENDING → APPROVED / REJECTED;重提后重新审核;违规可 SUSPENDED |
| 需求 | DRAFT → OPEN → MATCHED / CLOSED;过期不能新增投递 |
| 投递 | SUBMITTED → SELECTED / REJECTED / WITHDRAWN;被选中后建立洽谈 |
| 邀约 | PENDING → ACCEPTED / REJECTED / WITHDRAWN / EXPIRED;接受后建立洽谈 |
| 洽谈 | NEGOTIATING → AWAITING_CONFIRMATION → CONFIRMED;可以终止为 CANCELLED |
| 订单 | CONFIRMED → AWAITING_COMPLETION → COMPLETED;取消请求进入 CANCELLATION_REQUESTED;异常进入 DISPUTED;协商或裁定后可 CANCELLED |
| 媒体 | UPLOADING → PROCESSING → READY / FAILED;内容审核另有 PENDING / APPROVED / REJECTED |
| 会员购买 | PENDING_PAYMENT → PAID / CLOSED / REFUNDED;只有支付事实确认后开通权益 |
修改洽谈条件会产生新版本,清空当前版本的双方确认。旧版本和确认留作历史。第二方确认完成时,才创建 CONFIRMED 订单。
订单前任一方可以终止洽谈,记录原因。订单后取消需要双方按约定处理;一方发起请求时先保留档期,只有同意取消或运营裁定后才释放。改期、改价用单独的变更提案,双方同意后再替换当前快照。
一方确认演出完成后进入 AWAITING_COMPLETION,另一方确认后完成。有争议时不自动完成或自动扣款。已完成后发现问题,通过追加争议记录处理,不删除原来的完成事件。
谁能操作
| 操作 | 酒吧 | 艺人 | 运营 |
|---|---|---|---|
| 编辑资料、提交审核 | 自己的酒吧 | 自己的艺人资料 | 审核与停用,记录原因 |
| 发布、修改、关闭需求 | 自己且审核通过 | 无 | 违规下架 |
| 投递、撤回 | 无 | 自己且审核通过 | 查看必要审计记录 |
| 选择投递 | 需求所属酒吧 | 无 | 不代替用户确认 |
| 发起、撤回邀约 | 自己的酒吧 | 无 | 必要的违规处理 |
| 回应邀约 | 无 | 收件艺人 | 不代替用户接受 |
| 发消息、修改条件、确认 | 这次合作的酒吧 | 这次合作的艺人 | 仅经授权的异常处理 |
| 完成、取消、变更、争议 | 自己参与的订单 | 自己参与的订单 | 按规则处理并留审计 |
| 下载资质文件 | 本人 | 无 | 审核岗位所需范围 |
| 查看公开作品 | 可查看已公开内容 | 可查看已公开内容 | 必要的审核和下架 |
| 查看看板、费用汇总 | 自己的订单和权益 | 自己的订单 | 授权范围内汇总 |
游客只能读公开、审核通过的资料和需求。手机号、营业执照、私聊、完整订单和上传凭证不进入公开主页。
错误和异常
- 条件版本过旧:409 TERMS_VERSION_CHANGED,返回当前版本,让用户重新看条件。
- 档期冲突或名额已满:409 ARTIST_UNAVAILABLE / DEMAND_FILLED,不产生半份订单。
- 无权操作:403 FORBIDDEN;避免通过错误信息暴露别人的私有资源。
- 同一动作重试:同一个幂等键返回原结果;内容变了却复用键时返回 409 IDEMPOTENCY_CONFLICT。
- 对方不回应:保留待确认,不自动成交。超时提醒和自动过期时限由业务另定。
- 回调重复或乱序:先核对来源、事件和当前状态,重复事件不重复开权益或记收款。
原型说明取消与回应的入口;真实协商、运营处理和裁定仍需按上述规则实现。