Admin:顺运宝商品详情支持输入 PDD 商品 ID #95

Closed
opened 2026-08-10 14:22:06 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15
  • 阶段:顺运宝采购准备

要解决什么

顺运宝商品详情页的“PDD 商品链接”当前只接受带 goods_id 的完整拼多多 URL。采购员已经拿到 PDD 商品 ID 时仍需手工拼接链接,操作冗余。需要兼容直接输入 6~24 位纯数字商品 ID,并继续复用现有 PDD 商品档案、采集结果和换品确认机制。

做什么 / 不做什么

  • 做:顺运宝详情页允许输入完整 PDD 链接或 6~24 位纯数字商品 ID;纯 ID 在服务端转换为标准链接后进入现有关联事务;更新标签、帮助文字和错误提示;补充服务及页面测试。
  • 不做:不支持 PDD 短链接解析;不接受含字母、空格或超出长度的伪 ID;不改变蝦皮数据页和 PDD 商品页输入行为;不自动创建采集任务、采购任务或下单。

怎么做

  • admin/service/shopee_pdd.go:在 AssociateSybPdd 边界规范化输入;纯数字 ID 通过现有 isGoodsID 校验后生成 https://mobile.yangkeduo.com/goods.html?goods_id=<ID>,完整链接仍交给 ParsePddGoodsID 严格校验。
  • admin/templates/syb/detail_modal.html:输入框从 URL 专用类型改为普通文本,标签明确写“PDD 商品链接或商品 ID”,增加持续可见的两种格式说明。
  • admin/service/purchase_workflow_test.go 或相邻顺运宝关联测试:验证纯 ID 新建、已有商品复用、同 ID 不清空采集结果、无效 ID 拒绝及不同商品仍需确认。
  • 页面测试验证渲染后的输入框不会被浏览器 URL 类型拦截,且标签和帮助文字存在。
  • 不改数据库结构和 Client API。

验收标准

  • 顺运宝商品详情输入合法完整 PDD 链接时行为保持不变。
  • 输入 6~24 位纯数字商品 ID 可以保存,并存储可供 Client 使用的标准 PDD URL。
  • 商品 ID 已存在时复用唯一 PDD 商品档案,保留有效采集状态、SKU 和采集结果。
  • 输入不足 6 位、超过 24 位、非纯数字或非 PDD URL 时拒绝保存并给出可操作提示。
  • 当前蝦皮商品已关联其他 PDD 商品时仍要求人工确认更换。
  • 页面有可见标签和帮助文字,纯数字不会被浏览器 type=url 提前拦截。
  • 不自动创建采集、采购或下单任务。

怎么验证

从 admin/ 执行:

$env:GOTOOLCHAIN='go1.23.0'
go vet ./...
gofmt -l .
go test ./... -count=1
Remove-Item Env:GOTOOLCHAIN

定向运行新增的顺运宝 PDD 商品 ID 输入测试和页面渲染测试。

风险和回退

  • 风险:把任意数字误当商品 ID。通过沿用 6~24 位纯数字限制,并仅在顺运宝关联入口启用来控制范围。
  • 风险:纯 ID 没有可供 Client 打开的 URL。服务端统一生成标准 PDD 商品 URL,任务继续读取数据库中的该 URL。
  • 回退:恢复顺运宝输入框 type=url 并移除 AssociateSybPdd 的纯 ID 规范化;数据库无需回退。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 - 阶段:顺运宝采购准备 ## 要解决什么 顺运宝商品详情页的“PDD 商品链接”当前只接受带 `goods_id` 的完整拼多多 URL。采购员已经拿到 PDD 商品 ID 时仍需手工拼接链接,操作冗余。需要兼容直接输入 6~24 位纯数字商品 ID,并继续复用现有 PDD 商品档案、采集结果和换品确认机制。 ## 做什么 / 不做什么 - 做:顺运宝详情页允许输入完整 PDD 链接或 6~24 位纯数字商品 ID;纯 ID 在服务端转换为标准链接后进入现有关联事务;更新标签、帮助文字和错误提示;补充服务及页面测试。 - 不做:不支持 PDD 短链接解析;不接受含字母、空格或超出长度的伪 ID;不改变蝦皮数据页和 PDD 商品页输入行为;不自动创建采集任务、采购任务或下单。 ## 怎么做 - `admin/service/shopee_pdd.go`:在 `AssociateSybPdd` 边界规范化输入;纯数字 ID 通过现有 `isGoodsID` 校验后生成 `https://mobile.yangkeduo.com/goods.html?goods_id=<ID>`,完整链接仍交给 `ParsePddGoodsID` 严格校验。 - `admin/templates/syb/detail_modal.html`:输入框从 URL 专用类型改为普通文本,标签明确写“PDD 商品链接或商品 ID”,增加持续可见的两种格式说明。 - `admin/service/purchase_workflow_test.go` 或相邻顺运宝关联测试:验证纯 ID 新建、已有商品复用、同 ID 不清空采集结果、无效 ID 拒绝及不同商品仍需确认。 - 页面测试验证渲染后的输入框不会被浏览器 URL 类型拦截,且标签和帮助文字存在。 - 不改数据库结构和 Client API。 ## 验收标准 - [x] 顺运宝商品详情输入合法完整 PDD 链接时行为保持不变。 - [x] 输入 6~24 位纯数字商品 ID 可以保存,并存储可供 Client 使用的标准 PDD URL。 - [x] 商品 ID 已存在时复用唯一 PDD 商品档案,保留有效采集状态、SKU 和采集结果。 - [x] 输入不足 6 位、超过 24 位、非纯数字或非 PDD URL 时拒绝保存并给出可操作提示。 - [x] 当前蝦皮商品已关联其他 PDD 商品时仍要求人工确认更换。 - [x] 页面有可见标签和帮助文字,纯数字不会被浏览器 `type=url` 提前拦截。 - [x] 不自动创建采集、采购或下单任务。 ## 怎么验证 从 `admin/` 执行: ```powershell $env:GOTOOLCHAIN='go1.23.0' go vet ./... gofmt -l . go test ./... -count=1 Remove-Item Env:GOTOOLCHAIN ``` 定向运行新增的顺运宝 PDD 商品 ID 输入测试和页面渲染测试。 ## 风险和回退 - 风险:把任意数字误当商品 ID。通过沿用 6~24 位纯数字限制,并仅在顺运宝关联入口启用来控制范围。 - 风险:纯 ID 没有可供 Client 打开的 URL。服务端统一生成标准 PDD 商品 URL,任务继续读取数据库中的该 URL。 - 回退:恢复顺运宝输入框 `type=url` 并移除 `AssociateSybPdd` 的纯 ID 规范化;数据库无需回退。
Author
Owner

实施完成,等待验收

  • 实现提交:775e388 feat: 顺运宝支持输入 PDD 商品 ID (#95)
  • 归档提交:48bbe1c docs: 归档任务 #95
  • 归档:docs/task/95-顺运宝支持输入PDD商品ID.md

实现结果:顺运宝商品详情可输入完整 PDD 链接或 6~24 位纯数字商品 ID;纯 ID 生成标准链接后复用现有商品档案。已有有效采集状态、SKU 和结果不会被清空;非法输入拒绝、换品确认和不自动建任务规则保持有效。界面改为文本输入,并增加可见标签与持续帮助文字。

验证结果:Go 1.23.0 下 go vet ./...、gofmt -l .、go test ./... -count=1 通过;顺运宝关联定向测试及真实路由模板测试通过。

未验证:尚未部署线上,未使用真实浏览器人工粘贴提交。工单保持开启,等待用户验收。

## 实施完成,等待验收 - 实现提交:`775e388 feat: 顺运宝支持输入 PDD 商品 ID (#95)` - 归档提交:`48bbe1c docs: 归档任务 #95` - 归档:`docs/task/95-顺运宝支持输入PDD商品ID.md` 实现结果:顺运宝商品详情可输入完整 PDD 链接或 6~24 位纯数字商品 ID;纯 ID 生成标准链接后复用现有商品档案。已有有效采集状态、SKU 和结果不会被清空;非法输入拒绝、换品确认和不自动建任务规则保持有效。界面改为文本输入,并增加可见标签与持续帮助文字。 验证结果:Go 1.23.0 下 `go vet ./...`、`gofmt -l .`、`go test ./... -count=1` 通过;顺运宝关联定向测试及真实路由模板测试通过。 未验证:尚未部署线上,未使用真实浏览器人工粘贴提交。工单保持开启,等待用户验收。
Author
Owner

用户已明确验收通过。验收清单已回填,本工单关闭。

用户已明确验收通过。验收清单已回填,本工单关闭。
ila closed this issue 2026-08-10 23:23:54 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#95