diff --git a/changelogs/2026-04/2026-04-23_order-v2_surcharge-discount-source-hide-delete.md b/changelogs/2026-04/2026-04-23_order-v2_surcharge-discount-source-hide-delete.md new file mode 100644 index 0000000..42d88bb --- /dev/null +++ b/changelogs/2026-04/2026-04-23_order-v2_surcharge-discount-source-hide-delete.md @@ -0,0 +1,68 @@ +--- +date: 2026-04-23 +type: feat +scope: order-service-v2 +pr: "#1262" +issue: "#1257" +breaking: false +audience: [hl-ui] +--- + +# 费用增加项 / 折扣列表 VO 新增 source 字段;ROOM_UPGRADE 条目需隐藏删除/修改按钮 + +## 需求背景 + +配房「差价确认」弹窗确认提交后,后端自动按总差价符号分流写入: +- 正差价 → `order_surcharge` 新增 1 条 `name="升级房型"` +- 负差价 → `order_discount` 新增 1 条 `name="房间优惠"` + +这些**自动生成的条目**用户不能手动删除/修改,**必须通过重新配房**自动清除。因此前端需要在列表渲染时识别并隐藏这些条目的操作按钮。 + +## 契约变更(增量,非 breaking) + +### `AdminOrderSurchargeVO`(费用增加项) +新增字段: +```json +{ + "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 条目 + +## 前端改动建议 + +```js +// 渲染按钮前先判 source +{row.source !== 'ROOM_UPGRADE' && } +{row.source !== 'ROOM_UPGRADE' && } + +// 可选:给 ROOM_UPGRADE 条目加个小标签提示"系统自动生成,重新配房后自动更新" +{row.source === 'ROOM_UPGRADE' && 自动} +``` + +## 验证 + +- 后端 `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 修复,前端零改动)