修复 V4 确认白名单和嵌套目录校验

This commit is contained in:
andy
2026-07-19 12:48:08 +07:00
parent 39518b3cf2
commit 10c28f0acb
7 changed files with 395 additions and 35 deletions

View File

@@ -610,9 +610,9 @@ POST /api/reservation/order-tasks/{orderTaskId}/cards/{cardId}/confirm
请求要点:
- 请求 JSON 必须携带 `version``confirmed_payload` 可选,未传时后端使用当前展示 payload 作为确认快照。
- 提交当前卡允许编辑字段或当前卡确认快照
- 前端只应提交当前卡 `fields[]` 中可编辑字段。后端确认时以当前卡展示快照为基准合并 `confirmed_payload`,未出现在展示快照 / 字段白名单中的字段会被忽略,不会写入 `confirmed_payload_json`
- Basic Information 确认时 `basic_information.account_code` 必须是第一版 Account 目录值;后端确认前会派生 `account_name``market_code``source_code` 写入 `confirmed_payload_json`
- 业务卡确认时,第一版会校验已有 `rate_code``room_items[].room_type_code` 是否在固定目录中;失败返回 `V4_FIELD_VALIDATION_FAILED`
- 业务卡确认时,第一版会递归校验已有 `rate_code``room_items[].room_type_code` 是否在固定目录中;`UPDATE_BOOKING` 等嵌套结构会返回类似 `business_fields.after.room_items.0.room_type_code` 的错误路径,失败返回 `V4_FIELD_VALIDATION_FAILED`
- 不提交草稿。
- 必须带 `version` 做并发校验。
- 后端确认后卡片 `CONFIRMED` 并锁定。