From dccd4b93f7ca7ae21a33cb08880718f6a0a976eb Mon Sep 17 00:00:00 2001 From: Rogee Date: Tue, 28 Jul 2026 21:46:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E8=BD=AE=E5=9B=9E=E5=BD=92=E5=8F=91=E7=8E=B0=E7=9A=84=E5=B7=B2?= =?UTF-8?q?=E7=9F=A5=20BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 修复清单 ### 后端路由修复 1. — 新增 GET 路由与现有 POST 并存 - 前端 widget.html 原使用 GET 调用但路由仅注册 POST,导致 404 - 修复: 注册 GET + POST 双路由,handler 支持 query param + JSON body ### 前端修复 2. — Config 调用方式修正 - GET /api/v1/widget/config?website_token= → POST /api/v1/widget/config - 发送 JSON body: {"website_token":"..."} - 后端 Config handler 已同时支持两种调用方式 ### 文档更新 3. 修正测试计划 §13.7 已知未实现端点状态 - 标记 4 项已验证正常(copilot/config、agent_bot_inboxes/、reports/overview) - 标记 2 项已修复(widget/config GET+POST) - 保留 1 项 P3 未实现(conversation_workflows 需完整 CRUD handler) ### 已验证非 BUG 项 - 仪表盘会话计数的0问题:实际显示 1/13/14 ✅(之前为 stale snapshot) - 会话列表为空:filter status=open 过滤掉 snoozed 会话 ✅(设计如此) - Reports API:正确路由 /reports?metric=&since=&until= ✅ --- backend/internal/router/router.go | 1 + .../qa/2026-07-15-cdp-user-function-test-plan.md | 16 +++++++++++----- frontend/widget.html | 5 +++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/backend/internal/router/router.go b/backend/internal/router/router.go index b165e372..696e2423 100644 --- a/backend/internal/router/router.go +++ b/backend/internal/router/router.go @@ -2172,6 +2172,7 @@ func registerChatwootWidgetRoutes(g *gin.RouterGroup, h *Handlers) { g.POST("/direct_uploads", h.Upload.DirectUpload) g.PUT("/direct_uploads/:upload_uuid", h.Upload.CompleteWidgetDirectUpload) g.POST("/config", h.Widget.Config) + g.GET("/config", h.Widget.Config) g.GET("/campaigns", h.Widget.ListCampaigns) g.POST("/events", h.Widget.CreateEvent) diff --git a/docs/qa/2026-07-15-cdp-user-function-test-plan.md b/docs/qa/2026-07-15-cdp-user-function-test-plan.md index 23dd25de..5b426e29 100644 --- a/docs/qa/2026-07-15-cdp-user-function-test-plan.md +++ b/docs/qa/2026-07-15-cdp-user-function-test-plan.md @@ -1015,11 +1015,17 @@ curl -fsS http://127.0.0.1:9222/json/version | 端点 | 方法 | 说明 | 状态 | |------|------|------|------| | /auth/login | POST | Chatwoot 使用 /auth/sign_in | 差异(非缺陷) | -| /api/v1/accounts/:id/copilot_config | GET | 路由存在但返回 404 | 待确认 | -| /api/v1/accounts/:id/conversation_workflows | GET | 路由未注册 | 未实现 (P3) | -| /api/v1/accounts/:id/agent_bot_inboxes/by_inbox | GET | 替代路由 by_bot 可用 | 路由依赖 | -| /widget/config | GET | 无后端端点 | 未实现 (P3) | -| /api/v1/accounts/:id/reports/overview | GET | 路由未注册 | 未实现 (P2) | +| /api/v1/accounts/:id/conversation_workflows | GET | 路由未注册 | 未实现 (P3), 需完整 CRUD handler | +| /api/v1/accounts/:id/reports/overview | GET | 前端仅 Vue Router 路径,API 使用 /reports?metric=... | 非缺陷 | + +### 13.7b 已修复端点 + +| 端点 | 方法 | 修复内容 | 状态 | +|------|------|---------|------| +| /api/v1/widget/config | GET | 新增 GET 路由(原仅 POST) | ✅ | +| /api/v1/widget/config | POST | widget.html 将 GET→POST 调用,发送 JSON body | ✅ | +| /api/v1/accounts/:id/copilot/config | GET | 确认正确路径为 /copilot/config 非 /copilot_config | ✅ 已验证 | +| /api/v1/accounts/:id/agent_bot_inboxes/ | GET | 正确路径为 ?inbox_id=X(非 /by_inbox) | ✅ 已验证 | ### 13.8 补充关键断言模板 diff --git a/frontend/widget.html b/frontend/widget.html index f7d9fc73..d0095c17 100644 --- a/frontend/widget.html +++ b/frontend/widget.html @@ -69,7 +69,8 @@ portal: null, }; var xhr = new XMLHttpRequest(); - xhr.open('GET', '/api/v1/widget/config?website_token=' + websiteToken, true); + xhr.open('POST', '/api/v1/widget/config', true); + xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onload = function() { if (xhr.status === 200) { try { @@ -89,7 +90,7 @@ } catch(e) {} } }; - xhr.send(); + xhr.send('{"website_token":"' + websiteToken + '"}'); })(); })();