Files
Wyndham-RSVN-0918/docs/project/integrations/ohip-call-journal-cp5.md
鲨鱼辣椒 262831af42
Some checks failed
verify / booking-verify (push) Has been cancelled
完善预订操作台与AI处理结果并接入酒店本地四流程
2026-09-17 10:13:16 +08:00

39 lines
4.0 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.

# 逐次酒店写调用与中断恢复 CP5
2026-09-16在已有CP3办理队列和CP2 HTTP之间增加独立调用记录。它解决多次调用中途退出后丢失发送事实的问题不替代冻结参数校验、实际对象绑定、酒店查询或整个流程核验。
## 实际调用顺序
1. 已有worker领取一个环节并提交RUNNING。
2. 可信办理适配器准备固定OHIP请求提供稳定子项键例如上传的“来源附件实际目标”、删除的“旧附件实际目标”应包含逻辑动作不使用列表位置或当前时间。
3. OhipDurableWriteAdapter复用该Execution、Task Card和确认版本构造技术外层校验操作所属环节并计算实际地址/环境/酒店/方法/路径/正文摘要。
4. JdbcHotelBookingCallRepository短事务核对库内确认、作用域、版本、租约和唯一RUNNING环节先提交DISPATCHED及一次发送token。
5. 事务外再次检查剩余时限再调用现有HTTP客户端。返回后只保存技术状态、平台请求编号、实际对象编号及实际新附件编号。
6. 后续实际查询和业务比较仍由可信办理适配器完成CP3 worker决定整次办理状态。
技术外层case_id使用`hotel-booking:{executionId}`task_id使用原Order Task编号hotel_confirmation_id使用`card:{cardId}:version:{version}`幂等键包含Execution、环节及稳定子项键的SHA256。这些是平台技术关联引用不新建或冒充业务Case、Oracle Block/Reservation或酒店确认号。
## 重启与续办
同一请求的摘要和操作不可改变。已发送、未知、已受理、拒绝、冲突或已返回读回数据的记录都不会再次授予发送许可返回已有元数据时没有freshResponse不能当成最新酒店查询。
只有HTTP客户端明确NOT_SENT且worker已进入更高的环节attempt时才允许使用原键、原摘要重新取得许可。同一attempt的重复调用仍不发送。是否允许该环节继续由CP3 RECONCILE规则判断调用记录不会自动跳过它。
数据库锁等待可能消耗租约因此真正发送前二次检查。发送后的回执可在租约过期后保存便于恢复时查证但不推进Execution旧token不能覆盖新一轮回执。返回后落盘失败时DISPATCHED事实仍保留不能声称请求未发出。
附件上传的Edge resource_id是父预订/团队编号不能代替文件编号。逐次记录另存已核对的attachment.id供后续精准查询。附件字节、原始请求/响应、文件URL和Key都不进此表。
## 代码、数据和验证
- 业务DTO/枚举HotelBookingCallContracts、HotelCallState。
- 稳定持久端口HotelBookingCallRepository及JdbcHotelBookingCallRepository。
- OHIP衔接OhipDurableWriteAdapter、OhipJournaledCallResultHTTP适配器只增加同包非秘密目标元数据读取。
- V42新增workflow_hotel_booking_call引用V41办理记录保持MySQL大小写敏感、UTC时间和内部访问边界。当前配置注册Repository不注册发送器或替换Pending办理端口。
- 20项新增测试及相关128项通过覆盖真实JDBC/localhost HTTP、两个附件、后台worker续办查询、并发、过期/锁等待、请求变化、发送前后DB失败和安全元数据。完整verify结果见[证据](../../../.project-docs/50-evidence/topics/2026-09-16-ohip-call-journal-cp5.md)。
## 保留边界
本轮未运行真实MySQL迁移、加载服务或调用酒店业务。H2及合成HTTP不代表Oracle验收。默认OhipPendingBookingExecutionAdapter保持这不是完整四流程的运行时实现也没有“开关一开就上线”的路径。
当前平台公开目录仍0.6.0/111项缺本机Automation Principal和实际部署通道0.8.0/118项候选已推送但未部署。测试酒店GC/GTT/X/Source TA/BTQR未查到、TEN缺配置查询权限的结论保持。后续继续用此记录层承接经验证的对象绑定、原生字段、完整读回和逐调用续办只在现有合成测试授权内联调不自行提升身份或替代业务参数。