hl-api-changelog/changelogs/2026-04/2026-04-23_order-v2_surcharge-discount-source-hide-delete.md

2.6 KiB

date, type, scope, pr, issue, breaking, audience
date type scope pr issue breaking audience
2026-04-23 feat order-service-v2 #1262 #1257 false
hl-ui

费用增加项 / 折扣列表 VO 新增 source 字段;ROOM_UPGRADE 条目需隐藏删除/修改按钮

需求背景

配房「差价确认」弹窗确认提交后,后端自动按总差价符号分流写入:

  • 正差价 → order_surcharge 新增 1 条 name="升级房型"
  • 负差价 → order_discount 新增 1 条 name="房间优惠"

这些自动生成的条目用户不能手动删除/修改,必须通过重新配房自动清除。因此前端需要在列表渲染时识别并隐藏这些条目的操作按钮。

契约变更(增量,非 breaking)

AdminOrderSurchargeVO(费用增加项)

新增字段:

{
  "source": "MANUAL | ROOM_UPGRADE"
}
  • MANUAL: 手动添加,照旧显示「删除」「修改」按钮
  • ROOM_UPGRADE: 配房差价自动生成,隐藏「删除」「修改」按钮

AdminOrderDiscountVO(订单折扣)

同上,新增 source 字段,枚举值与规则同。

历史数据

  • 历史手动添加的条目 source=MANUAL(DB 默认值),前端行为与旧版一致
  • 新的 ROOM_UPGRADE 条目只在本次 PR 部署后、用户触发配房 execute 后才会出现

相关接口路径(无签名变化)

  • GET /admin/order/{orderId}/surcharge — 费用增加项列表(返回的 VO 列表里每条多 source 字段)
  • GET /admin/order/{orderId}/discount — 订单折扣列表(同上)
  • POST /admin/order/{orderId}/surcharge / PUT .../{id} / DELETE .../{id} — 手动 CRUD 保持不变(后端不拦截,前端自行根据 source 隐藏入口)
  • 配房执行 PUT /admin/order/{orderId}/hotel-assignment — 无前端契约变化,但调用成功后下次列表查询会自动带上 ROOM_UPGRADE 条目

前端改动建议

// 渲染按钮前先判 source
{row.source !== 'ROOM_UPGRADE' && <DeleteButton ... />}
{row.source !== 'ROOM_UPGRADE' && <EditButton ... />}

// 可选:给 ROOM_UPGRADE 条目加个小标签提示"系统自动生成,重新配房后自动更新"
{row.source === 'ROOM_UPGRADE' && <Tag color="blue">自动</Tag>}

验证

  • 后端 PR #1262 本地 curl + 测试服网关 curl 已验证三路径(正/负/零差价)
  • 前端可用测试服订单 2046864526866886657 走配房流程验证

相关

  • 工单: Gitea #1257
  • 后端 PR: #1262
  • 后端 changelog: hl-backend-changelog/2026-04/2026-04-23_order-v2_room-diff-sync-surcharge-discount.md(含 DDL + 同事务内分流逻辑)
  • 前置: PR #1250(配房差价预览 3 连环 BUG 修复,前端零改动)