Admin:实现可复用规格映射与采购任务创建 #69

Closed
opened 2026-08-09 22:22:12 +08:00 by ila · 4 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 Admin 四模块可用闭环
  • 阶段:顺运宝驱动采购闭环
  • 依赖:#67、#68
  • 状态:待验收

要解决什么

顺运宝规格匹配和创建采购任务仍是 501 骨架。采购员需要把已确认的蝦皮 SKU 映射到当前 PDD 商品的动态规格组合,并在全部安全条件满足后批量创建分配给客户端的采购任务。

做什么 / 不做什么

做

  • 顺运宝处理详情左右对照显示蝦皮规格和当前 PDD 商品采集到的动态规格维度、组合与人民币价格。
  • 保存可复用的 sku_mappings,查询永远同时限定蝦皮 SKU 与当前 PDD goods_id。
  • 已有且仍存在于最新采集结果的映射自动复用;PDD 换品或选项消失时回到待匹配。
  • 顺运宝列表显示“规格待匹配 / 可创建采购任务 / 已创建任务”等阶段。
  • 批量创建采购任务前选择当前账号可见且可用的客户端,并逐行确认人民币价格上限。
  • 服务端逐项校验商品、SKU、PDD 关联、采集结果、映射、数量、价格和客户端;失败逐条说明,不静默跳过。
  • 创建任务具备重复提交保护,同一顺运宝明细已有未结束采购任务时不重复创建。

不做

  • 不自动猜测相似 PDD 规格,不自动付款或打开真实下单开关。
  • 不把顺运宝台币售价当作人民币价格上限。
  • 不改 Client 四接口和不可逆阶段规则。
  • 不做全部商品 SKU 的批量预映射矩阵。

怎么做

  • Repository 增加映射读取/upsert、PDD 选项有效性校验、顺运宝采购上下文查询和事务内采购任务插入。
  • Service 解析现有 skus_json 动态维度与组合,生成稳定 option key;统一进行可采购性计算和创建校验。
  • Handler 提供规格映射 POST 和批量创建采购任务 POST,所有写操作带 CSRF。
  • 处理弹窗渐进展示映射控件;列表工具条的创建按钮只处理已勾选明细,确认弹窗显示客户端与逐行价格上限。
  • 更新 Admin 需求、数据、UI、质量文档和 Client 契约兼容测试说明;不修改接口协议。

预计修改:Mapping/SYB/Task/PDD Repository、Service、Handler、路由、顺运宝模板、JS/CSS、测试和文档。

验收标准

  • PDD 规格控件按采集结果的 dimensions 动态渲染,不写死颜色尺码。
  • 保存映射后相同蝦皮 SKU + 当前 PDD 商品可自动复用。
  • 换 PDD 商品或最新采集结果已无原选项时不会复用旧映射。
  • 只有全部安全条件满足的明细显示为可采购。
  • 创建前必须选择可见客户端并为每行提供人民币价格上限。
  • 服务端校验失败逐行返回原因,重复提交不产生重复进行中任务。
  • 创建的任务满足 Client 契约,真实下单开关仍默认关闭。
  • 顺运宝台币价格不会写入人民币价格上限。
  • Go 1.23.0 build、test、vet 和 Client 四接口契约回归通过。

怎么验证

从 admin/ 执行 Go 1.23.0 build/test/vet;覆盖动态维度、映射复用、换品隔离、失效选项、不可见客户端、缺价格、重复提交、部分失败事务边界和 Client API 契约回归。

风险和回退

这是采购安全相关代码。任何不确定映射、失效规格、空价格或不可见客户端都必须拒绝建任务。任务只创建为待执行状态,不触发实际下单;真实下单默认关闭。发生问题时回退实现,不删除已有映射或任务,已进入不可逆阶段的任务只核对订单、不得重下。

## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 阶段:顺运宝驱动采购闭环 - 依赖:#67、#68 - 状态:待验收 ## 要解决什么 顺运宝规格匹配和创建采购任务仍是 501 骨架。采购员需要把已确认的蝦皮 SKU 映射到当前 PDD 商品的动态规格组合,并在全部安全条件满足后批量创建分配给客户端的采购任务。 ## 做什么 / 不做什么 ### 做 - 顺运宝处理详情左右对照显示蝦皮规格和当前 PDD 商品采集到的动态规格维度、组合与人民币价格。 - 保存可复用的 `sku_mappings`,查询永远同时限定蝦皮 SKU 与当前 PDD goods_id。 - 已有且仍存在于最新采集结果的映射自动复用;PDD 换品或选项消失时回到待匹配。 - 顺运宝列表显示“规格待匹配 / 可创建采购任务 / 已创建任务”等阶段。 - 批量创建采购任务前选择当前账号可见且可用的客户端,并逐行确认人民币价格上限。 - 服务端逐项校验商品、SKU、PDD 关联、采集结果、映射、数量、价格和客户端;失败逐条说明,不静默跳过。 - 创建任务具备重复提交保护,同一顺运宝明细已有未结束采购任务时不重复创建。 ### 不做 - 不自动猜测相似 PDD 规格,不自动付款或打开真实下单开关。 - 不把顺运宝台币售价当作人民币价格上限。 - 不改 Client 四接口和不可逆阶段规则。 - 不做全部商品 SKU 的批量预映射矩阵。 ## 怎么做 - Repository 增加映射读取/upsert、PDD 选项有效性校验、顺运宝采购上下文查询和事务内采购任务插入。 - Service 解析现有 `skus_json` 动态维度与组合,生成稳定 option key;统一进行可采购性计算和创建校验。 - Handler 提供规格映射 POST 和批量创建采购任务 POST,所有写操作带 CSRF。 - 处理弹窗渐进展示映射控件;列表工具条的创建按钮只处理已勾选明细,确认弹窗显示客户端与逐行价格上限。 - 更新 Admin 需求、数据、UI、质量文档和 Client 契约兼容测试说明;不修改接口协议。 预计修改:Mapping/SYB/Task/PDD Repository、Service、Handler、路由、顺运宝模板、JS/CSS、测试和文档。 ## 验收标准 - [x] PDD 规格控件按采集结果的 dimensions 动态渲染,不写死颜色尺码。 - [x] 保存映射后相同蝦皮 SKU + 当前 PDD 商品可自动复用。 - [x] 换 PDD 商品或最新采集结果已无原选项时不会复用旧映射。 - [x] 只有全部安全条件满足的明细显示为可采购。 - [x] 创建前必须选择可见客户端并为每行提供人民币价格上限。 - [x] 服务端校验失败逐行返回原因,重复提交不产生重复进行中任务。 - [x] 创建的任务满足 Client 契约,真实下单开关仍默认关闭。 - [x] 顺运宝台币价格不会写入人民币价格上限。 - [x] Go 1.23.0 build、test、vet 和 Client 四接口契约回归通过。 ## 怎么验证 从 `admin/` 执行 Go 1.23.0 build/test/vet;覆盖动态维度、映射复用、换品隔离、失效选项、不可见客户端、缺价格、重复提交、部分失败事务边界和 Client API 契约回归。 ## 风险和回退 这是采购安全相关代码。任何不确定映射、失效规格、空价格或不可见客户端都必须拒绝建任务。任务只创建为待执行状态,不触发实际下单;真实下单默认关闭。发生问题时回退实现,不删除已有映射或任务,已进入不可逆阶段的任务只核对订单、不得重下。
Author
Owner

开始实施最后一阶段。将在已采集 PDD 数据上建立以 (shopee_sku_id, pdd_goods_id) 为键的可复用映射,并在创建采购任务前逐条校验映射、数量、价格上限和客户端可见范围;本阶段只创建演练任务,绝不打开真实下单。

开始实施最后一阶段。将在已采集 PDD 数据上建立以 `(shopee_sku_id, pdd_goods_id)` 为键的可复用映射,并在创建采购任务前逐条校验映射、数量、价格上限和客户端可见范围;本阶段只创建演练任务,绝不打开真实下单。
Author
Owner

实现完成,已进入待验收。

  • 实现提交:4433e3a
  • 归档提交:dbc08dc
  • 归档文档:docs/task/69-admin可复用规格映射与采购任务创建.md
  • Admin 验证:Go 1.23.0 build/test/vet、Node 语法检查和 diff check 均通过。
  • Client 契约回归:test_admin_gateway_contract.py 13 项、test_http_admin_gateway.py 12 项通过。
  • 安全边界:真实下单默认关闭,未连接真实设备,未执行采集、采购、下单或付款。
  • 未验证:真实浏览器视觉检查、真实 Client 领取本次页面创建任务。

工单保持开启等待用户验收,父工单清单暂不勾选。

实现完成,已进入待验收。 - 实现提交:`4433e3a` - 归档提交:`dbc08dc` - 归档文档:`docs/task/69-admin可复用规格映射与采购任务创建.md` - Admin 验证:Go 1.23.0 build/test/vet、Node 语法检查和 diff check 均通过。 - Client 契约回归:`test_admin_gateway_contract.py` 13 项、`test_http_admin_gateway.py` 12 项通过。 - 安全边界:真实下单默认关闭,未连接真实设备,未执行采集、采购、下单或付款。 - 未验证:真实浏览器视觉检查、真实 Client 领取本次页面创建任务。 工单保持开启等待用户验收,父工单清单暂不勾选。
Author
Owner

Client 下游采购演练工作已拆分:#71 本地演练执行与结果回传、#72 安全领取与分派、#73 崩溃恢复与安全门禁验证。#72 只有在 #71 可执行且可持久化后才开放 purchase 能力,避免采购任务被领取后卡住。

Client 下游采购演练工作已拆分:#71 本地演练执行与结果回传、#72 安全领取与分派、#73 崩溃恢复与安全门禁验证。#72 只有在 #71 可执行且可持久化后才开放 `purchase` 能力,避免采购任务被领取后卡住。
Author
Owner

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

用户已明确验收通过。验收清单已回填,本工单关闭。
ila closed this issue 2026-08-10 23:22:42 +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#69