Files
Wyndham-RSVN-0918/docs/project/integrations/ohip-confirmed-fields-20260918.md
鲨鱼辣椒 bc71026246
Some checks failed
verify / booking-verify (push) Has been cancelled
完善酒店接口确认字段与回读核对并同步工作台最新改动
2026-09-18 15:38:52 +08:00

45 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工作台确认字段接入2026-09-18
本次按用户逐项确认后的要求修改接口适配及回读已完成本地代码验证。现有运行服务、酒店配置、排队任务和真实酒店数据未操作。相关CR为[确认字段完整写入](../requirements/CR-20260918-confirmed-hotel-fields.md)。
## 最终字段与接口
| 工作台确认值 | GROUP NEW / UPDATE | FIT NEW / UPDATE |
| --- | --- | --- |
| Account | blockProfiles.blockProfile配置对应的账户和联系人Profile IDAgent / AgentContactUPDATE使用fullOverlay并保留其他关联 | reservationProfiles.reservationProfile配置的TravelAgent Profile IDUPDATE保留其他关联 |
| Market / Source | blockDetails.marketCode.marketCode / sourceOfSale.sourceCode.sourceCode | roomStay.roomRates[].marketCode / sourceCode |
| Rate Code | reservationDetails.ratePlanCode[].ratePlanCode | roomStay.roomRates[].ratePlanCode |
| Meal | reservationDetails.breakfast.breakfastIncluded来自确认Rate的目录解析 | 通过Rate Code体现不新增独立早餐接口 |
| Note | comments.commentInfo[].comment.text.value | comments[].comment.text.value |
| Arrival / Departure | blockDetails.timeSpan | roomStay和roomRates日期 |
| Room Type / Quantity | putBlockAllocation完整逐晚目标清零旧日期/房型残留 | roomRates房型和分配到实际预订的numberOfUnits |
| Nights | 由日期推导,不另发固定晚数 | 同左 |
GROUPpostBlock / putBlock / getBlock房量为putBlockAllocation / getBlockRoomRateGrid。FITpostReservation / putReservation / getReservation。接口路径维持/api/v1/blocks、/api/v1/reservations及/{id}子资源。
Account是酒店的业务档案不是登录账户也不是SOURCE。现有运行清单按accountCode选择实际Profile ID只用已配置编号不把LIAN_TAI或显示名冒充Profile ID。getProfiles/getProfile/getProfileRelationships是此前核实的档案查找/核验接口;本次预订链复用配置档案关联,不额外新增按名称猜选档案的运行逻辑。
Market、Source取员工确认后的basic快照再按当前酒店显式code映射转换账户默认值不覆盖最终改选。已有映射直接使用本地SOURCE别名company若未在运行清单配置对应酒店代码会在生成写入前拒绝不能猜为TA或虚构COMPANY码。此项是目录/连接配置不是缺company接口。本次没有修改私有运行目录或补造未知映射。
## Meal与Note
前端已完成的Meal只读保持。服务端新确认重新加载受信Rate目录并派生早餐客户端旧早餐/餐厅参数不能覆盖Rate。餐厅仅可保留目录兼容值不再参与员工必填、独立Meal选择或酒店请求。重复确认保留冻结快照不按后来目录重算。
酒店适配器逐字使用booking_note.text不重新拼价格/早餐正文。GROUP新建现在发送NoteGROUP修改定位本系统过去成功发送的Note ID仅改文本并核对其他备注及元数据保持。没有本系统来源记录时新增第一条业务Note不拿现有相似文本当作本系统备注新添后中断恢复仍只写一次。来源冲突、他人改写本系统旧Note或不完整回读会停止不覆盖不明归属备注。空Note不构造写入。
GROUP修改前需要完整Profiles/Rates/Comments及房格回读缺失完整集合不解释为空集合。尚未取得该酒店实际省略空集合的响应样例故保持拒绝不完整响应。回读逐项验证账户/联系人、Market、Source、Rate、早餐、Note和日期房量FIT增加账户/Market/Source的最终检查。任何必要字段未匹配都不能显示整单成功。
GROUP计划保存完整修改前头字段、Note ID和完整请求摘要检查点升级为confirmed-fields-v3。旧计划不会按新字段语义静默恢复。FIT仍由冻结请求、原资料及现有持久计划保护。预览、逐字段结果和受控调用日志同步上述内容。
## 边界与验证
未新增公开Controller、权限、表或数据库迁移。保留现有酒店隔离、人工确认、租约、请求摘要、持久来源、回执及未知写入禁止自动重发的规则。TA、取消/转换、邮件附件边界不扩大。
- 后端全量2727项2710通过、17既有跳过随后新增2项并运行相关回归最新测试报告合计2729项、0失败/错误、17跳过。
- 前端完整39文件409项通过生产构建含vue-tsc通过。目标ESLint为0错误ValueReview模板原有3条排版警告保留。
- Python模拟71项通过本机Java装配以release17编译合成目录及调用记录检查通过。
- 验证覆盖Note原文/其他备注保留、首次新增/重试、完整字段修改、错误和缺失回读、Rate早餐派生、历史确认、配置缺失、旧字段兼容、取消及类型转换回归。
- 不将本地合成测试称为Oracle沙箱页面验收当前服务未加载本轮后端代码未代用户确认卡片、重跑队列或操作酒店。
详细日志位于忽略目录.planning/confirmed-interface-implementation-20260918/。开始时保存的baseline用于区分其他任务已有修改未重置既有工作区。