管理员在本地“AI 配置”页面填写有效服务商配置并提交后,页面经过 303 See Other 跳回列表,但看不到新增配置。
303 See Other
已确认 repository.InsertAIProvider 的 INSERT SQL 在固定值 enabled=0、last_test_status='pending' 之后写了 5 个占位符,而剩余字段和实参数量都只有 4 个,导致有效新增请求无法落库。303 本身是正常的 POST/Redirect/GET 流程;校验重定向和保存成功必须能通过 Location 参数区分。
repository.InsertAIProvider
enabled=0
last_test_status='pending'
303
Location
复现步骤:
_test
msg
error
admin/repository/ai_config.go
admin/repository/
Execer
CMAUTOBUY_MYSQL_TEST=1
admin/handler/web/
303 Location
create
从 admin/ 执行:
admin/
$env:GOTOOLCHAIN="go1.23.0" go build ./... go test ./... -count=1 go vet ./... Remove-Item Env:GOTOOLCHAIN
启用独立 MySQL 8.4 _test 库时执行新增/列表/重名/事务测试;本地浏览器提交合法配置,确认跳转后出现服务商行。
已完成根因修复和测试补强:
InsertAIProvider
固定 Go 1.23.0 的 build、全量 test、vet 已通过。当前未启用独立 MySQL _test,相关真实数据库用例明确跳过,未使用生产库代替。
根因已修复:AI 服务商新增 SQL 现在是 11 个占位符对应 11 个参数;没有 schema 变化,也不需要清理此前失败数据。
01469f7
4d107fb
docs/task/222-Admin修复AI服务商配置新增后未落库.md
验证结果:
go1.23.0 windows/amd64
go build ./...
go test ./... -count=1
go vet ./...
请重新启动或等待 Air 热重载后,再在本地 AI 配置页面提交。成功时跳转 URL 带 msg,新增服务商会出现在下方列表。
工单保持打开,等待用户验收。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
管理员在本地“AI 配置”页面填写有效服务商配置并提交后,页面经过
303 See Other跳回列表,但看不到新增配置。已确认
repository.InsertAIProvider的 INSERT SQL 在固定值enabled=0、last_test_status='pending'之后写了 5 个占位符,而剩余字段和实参数量都只有 4 个,导致有效新增请求无法落库。303本身是正常的 POST/Redirect/GET 流程;校验重定向和保存成功必须能通过Location参数区分。复现步骤:
做什么 / 不做什么
_test集成测试,覆盖新增、审计、列表回显、重名和事务一致性。msg、校验失败使用error。怎么做
admin/repository/ai_config.go:将 INSERT 的尾部占位符从 5 个改为 4 个。admin/repository/增加轻量假Execer测试,核对 SQL 问号数与实参数量,并验证字段参数顺序。CMAUTOBUY_MYSQL_TEST=1时必须明确跳过。admin/handler/web/测试成功与校验失败的303 Location;非校验数据库错误继续返回 500,不伪装成成功跳转。验收标准
create审计同事务成功;失败时不留下半条数据。Location带msg,校验失败带error,数据库异常返回 500。_test集成结果如实记录。怎么验证
从
admin/执行:启用独立 MySQL 8.4
_test库时执行新增/列表/重名/事务测试;本地浏览器提交合法配置,确认跳转后出现服务商行。风险和回退
实施进度
已完成根因修复和测试补强:
InsertAIProvider尾部占位符 5→4,使 11 个参数与 11 个占位符一致;_test集成用例覆盖新增后查询、create 审计、重名拒绝和失败不留半条数据。固定 Go 1.23.0 的 build、全量 test、vet 已通过。当前未启用独立 MySQL
_test,相关真实数据库用例明确跳过,未使用生产库代替。实施完成,待验收
根因已修复:AI 服务商新增 SQL 现在是 11 个占位符对应 11 个参数;没有 schema 变化,也不需要清理此前失败数据。
01469f74d107fbdocs/task/222-Admin修复AI服务商配置新增后未落库.md验证结果:
go1.23.0 windows/amd64的go build ./...:通过go test ./... -count=1:通过go vet ./...:通过_test库,明确跳过,未使用生产库代替请重新启动或等待 Air 热重载后,再在本地 AI 配置页面提交。成功时跳转 URL 带
msg,新增服务商会出现在下方列表。工单保持打开,等待用户验收。