文件
hl-api-changelog/changelogs-v2/2026-08/21_6125_房务工作台详情透出终止未用标记与异常原因-修改接口-管理后台.md
T
Mimingguang d16f03e052
changelog-filename-gate / validate (push) Failing after 2s
docs(changelog): #6125 前端 verified(mmg, ref 8a2c26af)
2026-08-21 17:16:21 +08:00

4.0 KiB
原始文件 Blame 文件历史

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 6125 房务工作台订单详情抽屉透出终止未用标记+异常原因(字段补传) admin wx 修改接口 deployed verified verified mmg 8a2c26af 2026-08-21 #6111 的未用标记/异常原因/行级释放只落到了订单详情页(order-v2 RoomArrangeCard),房务实际工作页 /housekeeper/orders 抽屉走另一条接口 /admin/house/orders/{orderId},本次把同口径字段补到该接口。前端在 ItineraryPanel.vue 渲染即可,口径照抄 9172700f。 2026-08-21 dev-v3 2026-08-21T15:45:00+08:00

房务工作台订单详情抽屉透出终止未用标记+异常原因(#6125)

背景

#6111 的「未用房晚标记 + 异常原因 + 行级释放」只覆盖订单详情页(/v3/admin/order/{id}/itinerary → RoomArrangeCard.vue)。房务实际工作页是房务工作台 /housekeeper/orders 的订单详情抽屉,它走 GET /admin/house/orders/{orderId},此前无这些字段。本次后端补齐,前端渲染后即可在房务工作台看到。

变更接口

接口 变更
GET /admin/house/orders/{orderId} 响应新增可选字段:① itinerary[].assignments[].unusedForTerminate(Boolean)/ unusedLabel(String,「未用」);② progress.exceptionReason / exceptionReasonLabel(String)

取值说明(TEST 实测)

  • 终止/异常单(progress.houseStatus === "EXCEPTION"):
    • progress.exceptionReason / exceptionReasonLabel = 终止原因(如「#P1 行程中终止测试-客户身体原因」)
    • 被勾选未用的房晚行:assignments[].unusedForTerminate === true、unusedLabel === "未用";未命中行 unusedForTerminate === false
  • 正常单:exceptionReason 为 null,各行 unusedForTerminate/unusedLabel 为 null

实测样例(终止单 26-9250 / 2090093100083904514):

{
  "progress": { "houseStatus": "EXCEPTION", "exceptionReason": "#P1 行程中终止测试-客户身体原因" },
  "itinerary": [{ "dayNumber": 1, "assignments": [{ "assignmentId": "2090093115967733761", "unusedForTerminate": true, "unusedLabel": "未用" }] }]
}

前端动作(房务工作台抽屉,ItineraryPanel.vue / OrderDetailModal.vue)

  1. 未用标记:行 unusedForTerminate === true 时渲染 unusedLabel 标记(样式照抄 order-v2 RoomArrangeCard.vue,commit 9172700f)。
  2. 异常原因:progress.houseStatus === "EXCEPTION" 且 exceptionReason 非空时,在「异常」徽标旁展示原因文本。
  3. 行级释放按钮:未用行展示「资源释放」按钮,确认后调既有 DELETE /v3/admin/order/assignments/{assignmentId}(软删+恢复库存;orderV2.js 已有 deleteOrderAssignment,房务角色可调,本单已回归验证)。成功后刷新抽屉。
  4. 正常单上述区域一律不渲染(字段为 null)。

验证证据

  • 单测:HouseDetailAggregatorTest 新增终止单/正常单用例,定向 176 例全绿;契约审查 additive-only 通过。
  • 部署:hl-order-service-v3(8086/8186)已滚动部署 TEST(task 5410dada)。
  • 网关实测(TEST 9443,房务 ROOM_MANAGER 角色 token):
    1. 终止单 26-9250 两行 unusedForTerminate=true/unusedLabel=未用、progress.exceptionReason 有值 ✅
    2. 正常单字段全 null 无报错 ✅
    3. 行级释放回归:DELETE /v3/admin/order/assignments/2090082479703498753 → 200,查库 deleted_at 软删生效,测试后已 DB 还原 ✅

关联

  • Issue: #6125
  • PR: #6131
  • Merge commit: 77be1f27a
  • 前序:#6111 / PR #6116(订单详情页侧);前端参照实现 hl-ui@9172700f