# 【后端已修 + 前端待改·管理后台】配房工作台「抢了才能配」：未抢单拒绝配房（新增 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。

## 6. 关联
- **PR**: [#4231](https://git.1814.love:8443/wx/HL/pulls/4231)（房务测试反馈驱动，无关联 Issue）
- **后端负责人**: @wx ｜ **前端**: @mmg
