2.8 KiB
2.8 KiB
【后端已修 + 前端待改·管理后台】配房工作台「抢了才能配」:未抢单拒绝配房(新增 808116)(#4231)
后端 PR: #4231 | 服务: hl-order-service-v3 | 更新: 2026-06-22 前端负责人: @mmg —— 后半「前端待改」需配合:未抢单时置灰「配房」按钮。
1. 背景(房务测试反馈)
订单还在**抢单池(无人抢单)**时,房务详情里每天的「配房」按钮仍可点、配房接口仍能提交,绕过了抢单流程。应「抢了才能配」。
2. 后端已修(#4231)
配房写操作(提交配房 / 最终确认 / 修改 / 删除 / 房间分配)前置守卫补齐「未抢单」拦截:
- 需求未被任何人抢单(claimerId 为空)→ 拒绝,返回新错误码 808116「订单未抢单, 请先抢单再配房」。
- 需求被他人抢单 → 仍拒绝,返回 808110「需求不属于当前用户」(原有行为不变)。
- 内部 Feign / 系统调用(无 admin 上下文)不受影响。
| 接口 | 方法 | 路径 | 变更 |
|---|---|---|---|
| 提交配房 | POST | /v3/admin/order/hotel-requirements/{requirementId}/assignments | 未抢单→808116 |
| 最终确认 | POST | /admin/house/assignments/requirements/{requirementId}/finalize | 未抢单→808116 |
| 修改/删除配房、房间分配 | — | (同需求归属校验链路) | 未抢单→808116 |
3. 前端待改
- 未抢单时置灰/隐藏每天的「配房」按钮(以及抢单池预览里的配房入口)。信号现成:房务详情接口
GET /admin/house/orders/{orderId}已返claim.isMine(是否当前用户的单)——isMine == false(含未抢单 claimerId 为空、或被他人抢)即应禁用配房操作,仅保留「抢这一单」。 - 若仍调用配房接口命中 808116,按 message 提示「请先抢单再配房」,不要静默失败。
- 抢单池预览(「这单还在抢单池·下方信息仅供参考」)下方的「配房」按钮应整体禁用,与顶部「抢到才能开始配房」文案一致。
4. 错误码
| code | 含义 | 触发 | 本次 |
|---|---|---|---|
| 808116 | 订单未抢单, 请先抢单再配房 | 对未抢单(claimerId 空)的需求提交配房/最终确认/改删/房间分配 | 新增 |
| 808110 | 需求不属于当前用户 | 需求被他人抢单时操作 | 不变 |
5. 影响 / 兼容
- 行为收紧:仅对「未抢单却调配房」的旧漏洞路径生效(属应修缺陷);正常「先抢单→再配房」流程不受影响。
- 回滚:revert PR #4231 重新部署 hl-order-service-v3。