文件
hl-api-changelog/changelogs-v2/2026-08/20_6111_配房行程标记终止未用房晚与异常原因透传-修改接口-管理后台.md
T
2026-08-20 10:09:34 +00:00

4.6 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 6111 配房行程标记终止未用房晚+异常原因透传 admin wx 修改接口 deployed verified not_required 后端完成:PR #6116 已合并 dev-v3(squash 3dd65f62d)并部署 TEST(hl-order-service-v3 双实例 8086/8186,2026-08-20 17:49 重启)。行程接口响应 hotelGroup 新增异常原因 2 字段、配房行新增未用标记 2 字段(均可选只读,正常单为 null/不影响既有字段),前端按需取读即可。 2026-08-20 dev-v3 2026-08-20T17:55:00+08:00

配房行程标记终止未用房晚+异常原因透传(#6111)

背景

订单中止行程后,房务「配房行程」详情页看不到:(1) 哪几晚被运营在终止时勾选为「未用房晚」;(2) 异常桶旁的异常原因文案。本变更为房务侧补上这两个只读字段(纯新增,不影响既有字段)。

变更接口

接口 变更
GET /v3/admin/order/{id}/itinerary(订单详情-行程安排) 响应新增字段(均可选只读,正常单为 null/false,不影响既有任何字段):hotelGroup.exceptionReason(String,异常原因,仅 houseStatus=EXCEPTION 时有值)、hotelGroup.exceptionReasonLabel(String,同 exceptionReason 中文展示)、hotelGroup.assignments[].unusedForTerminate(Boolean,该晚是否终止勾选未用)、hotelGroup.assignments[].unusedLabel(String,未用标记文案「未用」,未标记为 null)

响应示例

GET /v3/admin/order/{id}/itinerary 返回(仅列本次新增字段,其余字段省略):

{
  "code": 200,
  "data": {
    "hotelGroup": {
      "houseStatus": "EXCEPTION",
      "exceptionReason": "客户中止",
      "exceptionReasonLabel": "客户中止",
      "assignments": [
        {
          "assignmentId": "2090093115967733761",
          "dayNumber": 1,
          "hotelName": "呼伦贝尔香格里拉大酒店",
          "unusedForTerminate": true,
          "unusedLabel": "未用"
        },
        {
          "assignmentId": "2090093115976122369",
          "dayNumber": 2,
          "hotelName": "呼伦贝尔香格里拉大酒店",
          "unusedForTerminate": true,
          "unusedLabel": "未用"
        }
      ]
    }
  }
}

说明:该单已终止且运营勾选两晚均未用,故两行 unusedForTerminate=true、unusedLabel="未用";houseStatus=EXCEPTION 故 exceptionReason 透出终止原因。正常单(非终止)exceptionReason/Label 为 null、unusedForTerminate=false、unusedLabel 为 null。

行为口径

  • 4 个字段均为只读、可选:正常单(未终止)exceptionReason/Label 为 null、unusedForTerminate=false、unusedLabel 为 null,接口不报错。
  • unusedForTerminate=true 的行即终止时运营勾选的「未用房晚」,前端可渲染「未用」标记 + 行级「资源释放」按钮。
  • 行级资源释放复用现有 DELETE /v3/admin/order/assignments/{id}(软删+恢复库存,CONFIRMED 行自动解冻),前端按该行 assignmentId 调即可,无新端点。
  • exceptionReason 来源为终止行程原因,仅异常桶(houseStatus=EXCEPTION)有值。

前端动作

无必须动作。需要展示「未用」标记时读 assignments[].unusedForTerminate/unusedLabel;需要显示异常原因时读 hotelGroup.exceptionReason(Label);需要行级释放按钮时对该行调 DELETE /v3/admin/order/assignments/{assignmentId}。

验证证据

  • 单测:OrderDetailConverterTest 44 / TerminateRefundServiceTest 8 / OrderDetailServiceTest 88 全绿(新增 7 例覆盖命中/未命中/未终止/null 边界)。
  • 架构门禁:*ArchTest 44 全绿(跨子聚合走 Service 契约,零违规)。
  • 部署:PR #6116 squash 合并 dev-v3(merge commit 3dd65f62d);测试服 hl-order-service-v3 双实例 8086/8186 于 2026-08-20 17:49 滚动重启健康。
  • 网关实测(TEST,admin token):终止单 GET /v3/admin/order/2090093100083904514/itinerary 返 200,hotelGroup.exceptionReason="客户中止",两行配房 unusedForTerminate=true/unusedLabel="未用";正常单(CUSTOMIZING)exceptionReason=null,符合「异常有值/正常 null」口径。

关联 / 联系人