diff --git a/changelogs-v2/2026-06/25_4412-4414_房务待办+日历+不限库存_前端重新对接_管理后台.md b/changelogs-v2/2026-06/25_4412-4414_房务待办+日历+不限库存_前端重新对接_管理后台.md new file mode 100644 index 0000000..c82bca9 --- /dev/null +++ b/changelogs-v2/2026-06/25_4412-4414_房务待办+日历+不限库存_前端重新对接_管理后台.md @@ -0,0 +1,67 @@ +# 房务「待办 + 日历」模块逻辑修复 + 不限库存读路径修复 — 前端需重新对接 + +> 变更类型:🐛 逻辑修复(后端,**房务管家前端需对照重新对接待办/日历/库存展示**) +> 端类型:管理后台(房务管家·待办看板 / 日历视图 / 配房候选) +> 日期:2026-06-25 | 工单:#4411 + #4413 | PR:#4412 + #4414 | 服务:hl-order-service-v3 + hl-resource-service(双实例已部署 health UP,**测试服 API+DB 实测通过**) + +--- + +## 背景 +34-agent 深度逻辑审计 + 17-agent 跨 PR 集成检验,确认并修复房务待办、日历、库存读路径一批逻辑 bug。前端需对照以下变更重新对接。 + +--- + +## 一、待办看板(GET /v3/admin/order/todos) + +### 1. 排序已修正(后端自动,前端无需改但行为变) +- 修复前:列表按 urgency 字符串降序,导致 **danger(最紧急:换酒店/退订/加急)排在最底**、warn 反而置顶(字典序 bug)。 +- 修复后:后端按权重 **danger > warn > normal**(同级按创建时间倒序)排序,最紧急的恒置顶。前端直接按返回顺序渲染即可。 + +### 2. stats 分类计数 key 改为枚举常量(**前端必改**) +- stats 各类计数的 JSON key 由 camelCase(`swapHotel`)改为**枚举常量**(`SWAP_HOTEL`/`REFUND`/`INQUIRY_TIMEOUT`/`INQUIRY_ESCALATED`/`INVENTORY_CHECK_OVERDUE`),与 list 行的 `todoType`、筛选入参口径统一。前端读 stats 的 key 要改。 + +### 3. stats 随筛选收窄(行为变) +- stats 现**跟随 scope(mine/others)与结构性筛选收窄**:切「我的」只数你负责的、切「同事」数同事的。(不随 Tab 选择/urgency/keyword 收窄,避免切 Tab 把其余红点打 0。) + +### 4. urgency 三层智能升级(后端推导,前端展示颜色) +- urgency 现由后端三层推导:基线 + **待办挂久自动升级**(挂满 2h→warn、4h→danger)+ **临近出行升红**(距出行 ≤24h→danger、≤7天→warn)。前端按返回的 urgency 渲染红/黄/灰即可。 + +### 5. UNDELIVERED「未送达」类型下线 +- 该类型无生产者、恒 0,已从 stats/异常集合移除。前端**别再展示「未送达」分类**。 + +--- + +## 二、日历视图(GET /admin/house/calendar?month=yyyy-MM) + +### 6. 已配房按「每个入住晚」落点 + 下钻传 stayDate(**前端必改**) +- 多晚订单现在月历上**每个入住晚都有一个点**(住 3 晚 → 3 天各一点)。 +- 点某天下钻列表时,**请带上该天的 `stayDate` 参数**(下钻接口 `GET /v3/admin/order/grab-pool/my-claims/hotel` 已支持 `stayDate` 可选过滤)——否则多晚订单点中间晚会跳转出空列表(这是本次修的 bug)。 + +### 7. 「询房中」桶补显示已抢未配的订单 +- 已抢单、还没配房、但已发了询房(PENDING)的订单,现在也会出现在日历「询房中」桶(之前完全不显示)。 + +### 8. 异常桶口径对齐 +- 日历异常桶现并入 `house_status=EXCEPTION`,与「我的接单」异常计数口径一致。 + +--- + +## 三、不限库存展示(配房候选 / 库存日历,**前端必改**) + +### 9. 不限库存房型新增 `unlimited` 字段 +- 房务把某房型某日设为「不限库存」(stock=NULL)后,配房候选 `GET /v3/admin/hotel-candidates` 的 `roomTypes[]` 与库存日历,该房型现返回 **`unlimited=true`(此时 `available=null`、`inventoryStatus=AVAILABLE`)**。 +- 修复前:不限库存被错当成 `available=0/FULL`,房务在候选弹窗看到「满房/不可选」——明明永远可订却选不出来。现已修正。 +- **前端识别 `unlimited=true` 时展示「不限」**(而非数字 0 或 null)。 +- 酒店卡级 `matchedRoomTypeAvailable` 在 matched 房型不限时为占位值 `99`(仅排序用),前端展示**以 room 项的 `unlimited` 为准**。 + +--- + +## 四、后端行为(前端知悉即可,无需对接) +- 待办 RESOLVE 闭环补全(退订/换酒店/异常处置完成/重发询房自动解,列表不再积压幽灵待办);转单/释放后待办归属自动迁移给新房务。 +- 配房「同步协议价」开关新增 roomTypeId 归属校验(防越权改别家酒店协议价);CONFIRMED/EXCEPTION 需求不再被 submit 误改/误翻态。 + +--- + +## 测试服实测(已通过) +- 不限库存:嘉世豪豪华大床房 stock=NULL → `unlimited=true/available=null/AVAILABLE`,对照 stock=20 房型正常。 +- 越权:配房同步协议价传别家酒店房型 → 808112 拒。 +- 待办/日历接口 200 渲染正常;Flyway 迁移 success=1。