文件
hl-api-changelog/changelogs-v2/2026-08/18_6016_终止行程房侧资源释放标记-修改接口-管理后台.md
Mimingguang 2f6a989fcf
changelog-filename-gate / validate (push) Failing after 2s
chore(changelog): 补齐 17 条消费闭环 frontmatter 回写
11 条有业务交付改判 verified(#6397/6903/6904/6905/6950/6979/6986/7013/7029/7036/7066,owner=mmg+对应业务 commit ref+交付日 verified_at);
6 条实证零改动改判 not_required(#6014/6016/6140/6938/6842/7087,仅翻 frontend_status 不填 owner/ref)。
#5935 挂起待后端补字段,保持 pending 不动。sync-log 均已记账。
2026-09-06 10:43:20 +08:00

4.4 KiB

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 6016 终止行程后房侧资源释放标记——订单已终止落异常桶+REFUND待办+按terminateDate释放未确认候选 admin wx 修改接口 deployed verified not_required mmg 2026-08-18 后端完成:PR #6020 已合并 dev-v3(1690be35cc)并部署 TEST(hl-order-service-v3 双实例 12:20 重启、jar 12:20 新编译,SSH 核实)。房侧新增终止行程监听 onOrderTerminated→handleOrderTerminated;house 包 922 + ArchTest 54 全绿。端到端 TRAVELLING 终止实测待补(测试库无现成出行中订单)。 2026-08-18 dev-v3 2026-08-18T12:30:00+08:00

终止行程后房侧资源释放标记(#6016)

背景

「终止行程」(terminateTrip,出行中 TRAVELLING→COMPLETED)的资源释放此前车侧已闭环(#5518 TERMINATE_TRUNCATE)、房侧缺失——房侧没有任何对终止行程的监听,已配好的房(house_hotel_assignment + 已扣酒店库存)滞留,房务不知道该来释放。

变更接口

无新增 admin 端点。房侧新增对 OrderTransitionedEvent(eventCode=TERMINATE) 的进程内监听,改变的是终止行程后房务侧数据/待办的可视结果:

房务侧入口 终止行程后的新行为
房务「异常桶」(需求 house_status=EXCEPTION) 已配房的终止订单需求会落进来,作为「订单已终止」标记
房务待办(REFUND 类型) 已配房产「客人终止行程 · 请处理酒店退订」待办(复用 REFUND 同桶,退款完成自动闭环)
抢单池/我的接单 未配房的终止订单需求被软删除,不再残留

行为口径(wx 拍定三决策)

  • 只标记 + 引导手动释放,不自动清配房、不自动退酒店(对齐取消订单 #3208 房侧语义)。
  • ① 释放边界 = 按 terminateDate 切分:terminateDate = 出发日 + (endDayNumber - 1)。已入住/已消费晚数(terminateDate 之前)的配房与库存原样保留;只自动释放 dayNumber ≥ endDayNumber 的「未确认(INQUIRING)候选」占的库存。CONFIRMED 行与已过晚数一律不动,由房务在异常桶按边界手动取消未入住部分(走现成删配房流,软删 + 释放已扣库存)再标完成。
  • ② 待办类型 = 复用 REFUND:取消订单与终止行程产同一种 REFUND 待办,同桶呈现;owner 取抢单人(无则广播 owner=NULL),dedupKey 复用不重复产。
  • ③ 未配房分支 = 软删需求:终止行程且无 active 配房时,软删该订单 active 用房需求(移出抢单池/视图),级联软删孤儿询房配房行,不产 REFUND。
  • 幂等(终止事件可重投):状态机 EXCEPTION→EXCEPTION 自循环不抛、REFUND dedupKey 复用、软删 0 行幂等。
  • 与车侧 #5518 TERMINATE_TRUNCATE 独立,互不影响。

前端动作

  • 房务「异常桶」会新出现终止行程的需求(标「订单已终止」),引导房务按 terminateDate 边界处理:保留已入住晚数、手动取消未入住的配房释放库存,再标完成。
  • REFUND 待办照常渲染(标题区分「客人终止行程」),退款完成后自动 RESOLVE。

验证证据

  • 单测:HouseTodoServiceTest 4 用例(已配房带抢单人/无抢单人广播+endDay 兜底/REFUND 复用幂等/未配房软删)、HouseTodoEventListenerTest 4 用例(TERMINATE 透传/非 TERMINATE 忽略/null 忽略/异常降级)、HouseAssignmentServiceTest 3 用例(dayNumber 切分/边界前返 0/null 返 0)、OrderEventPublisherTest 1 用例(双路发布)、OrderServiceTest 断言 endDayNumber 透传。house 包 922 + ArchTest 54 全绿。
  • 部署:PR #6020 squash 合并 dev-v3(merge commit 1690be35cc),Deploy Panel task 29a0c139 success,SSH 核实 jar 12:20:17 更新 + 双实例 12:20 重启生效。
  • 端到端(造出行中订单→terminateTrip→验房侧落异常桶+产 REFUND)待补:测试库当前无现成 TRAVELLING 订单,按需补测。

关联 / 联系人