diff --git a/docs/task/95-顺运宝支持输入PDD商品ID.md b/docs/task/95-顺运宝支持输入PDD商品ID.md new file mode 100644 index 0000000..70ba603 --- /dev/null +++ b/docs/task/95-顺运宝支持输入PDD商品ID.md @@ -0,0 +1,60 @@ +# 95 Admin:顺运宝商品详情支持输入 PDD 商品 ID + +- 类型:需求 +- 父级大工单:#14 +- 所属 MVP / 版本:#15 +- 状态:已完成(待验收) +- 日期:2026-08-10 +- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/95 + +## 背景与目标 + +顺运宝商品详情原来只接受带 `goods_id` 的完整拼多多链接。采购员已经拿到商品 ID 时, +仍要手工拼接链接。本任务让该入口同时接受完整 PDD 链接和 6~24 位纯数字商品 ID, +并继续复用已有 PDD 商品档案和采集结果。 + +## 最终方案 + +- 只在顺运宝关联入口规范化输入,不改变蝦皮数据页和 PDD 商品页的既有输入边界。 +- 6~24 位纯数字按 PDD 商品 ID 处理,并生成 + `https://mobile.yangkeduo.com/goods.html?goods_id=` 标准链接。 +- 完整链接继续经过协议、拼多多域名和 `goods_id` 参数校验;短 ID、超长 ID、混合字符及 + 普通文本均返回可操作的错误提示。 +- 规范化后复用原有关联事务和按 `goods_id` 去重逻辑。已有有效商品不重置采集状态、SKU + 或采集结果;软删除、换品确认等原规则保持不变。 +- 输入框改为文本类型,使用可见标签和持续帮助文字说明两种格式,避免浏览器在提交前 + 把纯数字误判为非法 URL。 +- 保存关联不会自动创建采集任务、采购任务或触发下单。 + +## 改了哪些 + +- `admin/service/shopee_pdd.go`:顺运宝 PDD 引用规范化和错误提示。 +- `admin/service/purchase_workflow_test.go`:纯 ID、完整链接、复用、边界和换品确认测试。 +- `admin/templates/syb/detail_modal.html`:输入类型、标签、示例和帮助文字。 +- `admin/main_test.go`:真实路由下的详情弹窗渲染回归。 +- `docs/admin/01-requirements.md`、`05-ui-specification.md`:同步稳定需求和界面规范。 + +## 验收结果 + +| 验收标准 | 结果 | +|---|---| +| 完整 PDD 链接的原有关联行为不变 | 通过 | +| 6~24 位纯数字 ID 生成标准 URL 并保存 | 通过 | +| 已有 PDD 商品唯一复用,采集状态、SKU 和结果保持 | 通过 | +| 非法长度、混合字符和普通文本拒绝保存 | 通过 | +| 换成其他 PDD 商品仍要求明确确认 | 通过 | +| 页面展示两种格式且不再受 `type=url` 拦截 | 通过 | +| 保存关联不自动创建任何任务 | 通过 | + +## 测试 + +- 执行的命令: + - `cd D:\chengma\cmautobuy\admin; $env:GOTOOLCHAIN='go1.23.0'; go vet ./...; gofmt -l .; go test ./... -count=1` + - `go test ./service -run 'TestAssociateSybPdd_' -count=1` + - `go test . -run 'TestMainPagesReturnOK' -count=1` +- 结果:Go 1.23.0 静态检查、格式检查、全量测试、顺运宝关联定向测试和真实路由模板测试通过。 +- **没验证到的部分**:尚未部署线上;未使用真实浏览器人工粘贴商品 ID 并提交。 + +## 相关提交 + +- `775e388` `feat: 顺运宝支持输入 PDD 商品 ID (#95)`