hl-api-changelog/changelogs-v2/2026-06/26_配房改房交互-移除走DELETE-更换走配房保存-管理后台.md

3.0 KiB

配房「更换 / 移除」酒店的接口接线说明(接 #4407 换酒店并入配房)

变更类型:📌 接口接线说明(无后端代码改动,前端房务管家需按此接线「移除」 端类型:管理后台(房务管家·配房弹窗「选择酒店」) 日期2026-06-26 关联:#4407换酒店并入配房唯一写口 服务hl-order-service-v3端点均已在测试服实测


背景

#4407 后「换酒店」并入「配房」:点某天「配房」→「选择酒店」弹窗 →「已选配房」回显当前已配酒店(isCurrentlyAssigned)。本说明明确弹窗里**「更换」和「移除」分别该调哪个后端接口**——后端能力齐全,关键是前端「移除」要接对端点。


1. 更换酒店 走「确认配房」§2.2 submit

  • 在「已选配房」把当前酒店改成另一家(移除当前项 + 加入新酒店)→「确认配房」。
  • POST /v3/admin/order/hotel-requirements/{requirementId}/assignments,body items = 该天最终想要的配房集合
  • 后端按 (hotelId, roomTypeId) 整天对账:同酒店同房型同间数=不动;换成另一家=自动「释放旧店库存 + 扣新店 + 替换那行」。前端无需关心换/没换,把最终状态提交即可。

2. 移除某天已配酒店 ⚠️ 必须走 §2.4 DELETE,不能靠空提交

  • 关键POST …/assignmentsitems@NotEmpty空数组会被后端拒(返 items 不能为空,测试服实测)。所以「已选配房」移除到 0 条再点「确认配房(0条)」删不掉(界面没了、刷新又回来)。
  • 真正移除某天已保存的配房,调 DELETE /v3/admin/order/assignments/{id}{id} = 该天配房行 assignmentId。后端软删该行 + 级联删房间分配 + 释放库存(测试服实测:删后该天 0 active 行、扣减 log rollback_status=DONE 库存已退)。
  • 前端「移除」链接的正确接线
    • 移除的是已保存的配房行(有 assignmentId,即回显出来的当前已配→ 调 DELETE /v3/admin/order/assignments/{id}
    • 移除的是本次新加、尚未保存的项(还没 assignmentId→ 纯前端本地删即可,不调接口。

3. 业务提醒

  • 纯移除(该天清空、不换新酒店)会让该天无住宿 → 「最终确认」的「全晚配齐」校验过不了。常规操作是「移除旧 + 加入新 = 更换」;纯移除仅用于「这天本不该配酒店」的纠错。

接口速查

操作 接口
配房 / 更换酒店 / 加多房型 POST /v3/admin/order/hotel-requirements/{requirementId}/assignmentsitems=该天最终集合,非空)
改协议价/结算价/备注(不换酒店) PUT /v3/admin/order/assignments/{id}
移除某天已配酒店 DELETE /v3/admin/order/assignments/{id}
回显当前已配 候选 GET /v3/admin/hotel-candidatesisCurrentlyAssigned/assignedRoomTypeId;详情 currentAssignment.roomTypeId