# 68 Admin:统一蝦皮关联 PDD 与采集入口 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 状态:已完成 - 日期:2026-08-09 - Gitea 工单: ## 背景与目标 蝦皮详情的 PDD 关联和采集入口原先返回 501,顺运宝处理弹窗也无法在订单上下文中完成关联。此次让两个入口共用一套事务服务,并继续复用 PDD 商品模块已经验证过的采集任务规则。 ## 最终方案 - 完整 PDD 链接先解析 `goods_id`,再在一个事务内复用或复活 PDD 商品档案并更新蝦皮商品当前关联。 - 已有关联与新 `goods_id` 不同时,只有明确勾选确认才允许更换;不删除旧 PDD 档案和旧规格映射。 - 蝦皮详情和顺运宝处理详情都提供关联、创建采集任务和失败重试入口,调用同一个 Service。 - 采集仍然只是创建无主任务,沿用已有的去重、采集中跳过和超时重试规则。 - PDD 商品页继续承担档案浏览、批量采集和故障诊断。 未修改数据库结构、Client 四接口、规格映射、采购任务和真实下单逻辑。 ## 改了哪些文件 - `admin/repository/shopee.go`:增加当前 PDD 关联更新方法。 - `admin/service/shopee_pdd.go`:增加共享关联事务及按蝦皮/顺运宝上下文创建采集任务。 - `admin/service/shopee_list.go`、`admin/service/syb.go`:补充详情所需的 PDD 和采集状态。 - `admin/handler/web/shopee.go`、`admin/handler/web/others.go`、`admin/handler/web/web.go`:实现表单处理、路由和列表状态保留。 - `admin/templates/shopee/`、`admin/templates/syb/detail_modal.html`:增加渐进式关联和采集入口。 - `admin/service/shopee_pdd_test.go`、`admin/handler/web/pagination_test.go`:覆盖事务、换品确认、复活、采集和跳转状态。 - `docs/admin/01-requirements.md`、`docs/admin/05-ui-specification.md`:更新稳定需求和界面规则。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 蝦皮详情和顺运宝详情共用关联逻辑 | 通过 | | 同一 PDD 商品复用,软删除商品可复活 | 通过 | | 无效和短链接不写数据 | 通过 | | 更换 PDD 商品必须确认且旧映射不删除 | 通过 | | 采集任务沿用幂等、跳过和超时重试规则 | 通过 | | 页面显示当前采集状态和明确下一步 | 通过 | | 不修改数据库、Client 四接口和实际采购 | 通过 | | Go 1.23.0 build、test、vet 通过 | 通过 | ## 测试 - 从 `admin/` 执行:`node --check static/js/app.js`、Go 1.23.0 的 `go build ./...`、`go test ./... -count=1`、`go vet ./...`。 - 从仓库根目录执行:`git diff --check -- admin docs/admin`。 - 结果:全部通过。 - **未验证到的部分**:未让真实 Client 领取新建采集任务;未在真实浏览器人工检查弹窗布局。 ## 相关提交 - `518e6df` 统一蝦皮与顺运宝 PDD 关联入口