实现酒店上下文单酒店收口
This commit is contained in:
@@ -31,7 +31,7 @@ Debug EML 页面第一版只做一件事:
|
||||
|
||||
| 区域 | 展示 / 操作 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| 上传配置区 | `hotel_id`、Debug 上传口令、`run_label`、`.eml` 文件选择、提交按钮 | Debug 上传口令只能由调试人员临时输入,不能写进前端源码、环境变量、localStorage 或 URL。 |
|
||||
| 上传配置区 | 可选酒店覆盖、Debug 上传口令、`run_label`、`.eml` 文件选择、提交按钮 | Debug 上传口令只能由调试人员临时输入,不能写进前端源码、环境变量、localStorage 或 URL;单酒店阶段默认不需要手填酒店。 |
|
||||
| 执行状态区 | loading、成功、失败、耗时、本次 `debug_run_id` | 提交后禁用按钮,避免重复点击;失败时展示安全错误摘要。 |
|
||||
| SourceMessage 追溯区 | `source_message_id`、`source_provider`、`external_message_id`、`external_conversation_id` | 用于确认已写入 SourceMessage Inbox。 |
|
||||
| 邮件内容预览区 | `html_body_sanitized`、纯文本、附件列表、内联图片列表 | HTML 展示必须优先使用 `html_body_sanitized`。 |
|
||||
@@ -59,7 +59,7 @@ Header: X-TH-Hotel-Debug-Upload-Key: <调试上传口令>
|
||||
| 参数 | 类型 | 必填 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| `file` | File | 是 | `.eml` 邮件文件。前端文件选择器建议 `accept=".eml,message/rfc822"`。 |
|
||||
| `hotel_id` | string | 是 | 酒店上下文 ID;本地 / test 可使用当前前端配置的 `VITE_RESERVATION_HOTEL_ID`。 |
|
||||
| `hotel_id` | string | 否 | 可选酒店上下文覆盖;缺省由后端按当前登录用户上下文或平台酒店表唯一 `ACTIVE` 酒店解析。 |
|
||||
| `run_label` | string | 否 | 调试标签,例如 `frontend-debug-smoke`,方便后端日志和数据库排查。 |
|
||||
|
||||
前端调用示例:
|
||||
@@ -67,14 +67,16 @@ Header: X-TH-Hotel-Debug-Upload-Key: <调试上传口令>
|
||||
```ts
|
||||
export async function uploadDebugEml(input: {
|
||||
baseUrl: string
|
||||
hotelId: string
|
||||
hotelId?: string | null
|
||||
debugUploadKey: string
|
||||
file: File
|
||||
runLabel?: string
|
||||
}) {
|
||||
const form = new FormData()
|
||||
form.append('file', input.file)
|
||||
form.append('hotel_id', input.hotelId)
|
||||
if (input.hotelId?.trim()) {
|
||||
form.append('hotel_id', input.hotelId.trim())
|
||||
}
|
||||
if (input.runLabel?.trim()) {
|
||||
form.append('run_label', input.runLabel.trim())
|
||||
}
|
||||
@@ -171,7 +173,7 @@ S000/S999 解析示例:
|
||||
|
||||
| HTTP 状态 | `error_code` | 前端建议 |
|
||||
| --- | --- | --- |
|
||||
| `400` | `REQUEST_FIELD_REQUIRED` | 提示缺少必填字段,检查文件、`hotel_id` 或请求参数。 |
|
||||
| `400` | `REQUEST_FIELD_REQUIRED` | 提示缺少必填字段,检查文件或请求参数。 |
|
||||
| `400` | `EML_FILE_REQUIRED` | 提示请选择 `.eml` 文件。 |
|
||||
| `400` | `EML_FILE_TOO_LARGE` | 提示文件超过后端限制;当前默认上限通常为 10MB,以环境配置为准。 |
|
||||
| `400` | `INVALID_FILE_TYPE` | 提示只支持 `.eml`。 |
|
||||
@@ -204,7 +206,7 @@ idle
|
||||
|
||||
实现建议:
|
||||
|
||||
- 文件未选择、`hotel_id` 为空、Debug 上传口令为空时禁用提交按钮。
|
||||
- 文件未选择或 Debug 上传口令为空时禁用提交按钮;`hotel_id` 为空是允许的,表示使用后端系统酒店。
|
||||
- 提交后禁用文件选择和提交按钮,避免重复上传。
|
||||
- SuperAgent 调用可能耗时较长,页面 loading 文案不要只写“上传中”,建议写“正在解析邮件并等待 SuperAgent 返回”。
|
||||
- 成功后保留本次响应在页面内存中;当前没有 Debug run 查询接口,刷新页面后需要重新上传。
|
||||
@@ -233,7 +235,7 @@ idle
|
||||
前端需要具备:
|
||||
|
||||
- 可配置后端 `BASE_URL`。
|
||||
- 可配置或输入 `hotel_id`。
|
||||
- 可配置或输入可选 `hotel_id`;单酒店联调默认可留空。
|
||||
- 调试人员临时输入 Debug 上传口令。
|
||||
- 准备一封 `.eml` 样例邮件。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user