# 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)`