diff --git a/changelogs-v2/2026-06/22_4231_配房工作台抢了才能配_未抢单拒绝配房808116_管理后台+前端BUG.md b/changelogs-v2/2026-06/22_4231_配房工作台抢了才能配_未抢单拒绝配房808116_管理后台+前端BUG.md new file mode 100644 index 0000000..4efacd2 --- /dev/null +++ b/changelogs-v2/2026-06/22_4231_配房工作台抢了才能配_未抢单拒绝配房808116_管理后台+前端BUG.md @@ -0,0 +1,38 @@ +# 【后端已修 + 前端待改·管理后台】配房工作台「抢了才能配」:未抢单拒绝配房(新增 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