T29 PDD 商品采购档案与规格 JSON 管理(先行 QuantUX 原型) #31

Closed
opened 2026-08-16 23:36:32 +08:00 by ila · 9 comments
Owner

原始需求摘要

PDD 商品是供采购人员长期、重复采购使用的独立商品档案,采集只是维护商品数据的一种手段。商品可由 PDD App 自动采集、人工录入,未来也可从文件导入。创建商品的最简入口是输入包含 goods_id 的 PDD URL。

本工单必须先使用 QuantUX MCP 创建管理端交互原型;原型未经用户明确审核通过,不得开始数据库、服务端或 Web 代码实现。

目标

  • 将 pdd_product 从“URL 档案”扩展为采购人员可维护的正式 PDD 商品档案。
  • 支持 URL 最简创建、人工维护和采集结果自动更新。
  • 只保存最新商品资料,不保存价格、链接或字段变更历史。
  • 使用通用多维规格结构,但当前只按颜色分类保存价格,尺码不参与定价。
  • 保持采购人员操作简单,不为当前需求建立 PDD 商品规格子表。

非目标

  • 本工单不实现文件导入;文件导入排在最后阶段另建工单。
  • 不实现 Shopee 规格映射、采购单、创建订单或付款。
  • 不保存 PDD SKU ID;无障碍控件树当前无法获得该字段。
  • 不保存历史价格、历史销量、历史评价或字段级来源/覆盖记录。
  • 不实现复杂的跨商品规格统计和筛选。

前置依赖

  • T09 PDD 商品与 URL 管理。
  • T13/T21 PDD 商品字段、规格和颜色价格采集。
  • T27 假售罄识别与恢复。
  • 原型实施前必须确认 QuantUX MCP 可用。

是否可并行

不可并行。原型、业务确认、数据库契约、服务端和 Web 依次推进;原型审核是强制门禁。

子项目影响

  • QuantUX 管理端原型。
  • pdd_product 数据库迁移与模型。
  • PDD 商品管理 API。
  • 采集结果应用到 PDD 商品的事务逻辑。
  • PDD 商品列表、创建、编辑和详情页面。
  • Harness 项目档案、业务规则和 API 文档。

已确认业务规则

  1. 创建 PDD 商品时最少只输入 URL;服务端提取 goods_id,相同 goods_id 继续保持唯一。
  2. 商品基础字段包含:URL、goods_id、标题、店铺名、销量、评价数量和状态。
  3. 销量与评价数量只保存解析后的最新数字,不保存展示文本和历史值。
  4. 规格使用通用多维模型;当前识别 color、size、other 角色。
  5. 不建立 PDD 商品规格子表;规格、规格值、是否可选择和颜色价格保存在 pdd_product.specs_json。
  6. 只有颜色规格值保存 priceCent;不同颜色可以不同价格,不区分不同尺码的价格。
  7. 不保存 PDD SKU ID,不生成 PDD SKU 表。
  8. 人工修改为全量覆盖;未来文件导入也采用全量覆盖。
  9. completed 采集结果自动全量覆盖商品基础资料和规格 JSON。
  10. completed_partial 只合并明确采集到的数据,不删除原来存在但本次未采集到的数据。
  11. failed 不修改 PDD 商品。
  12. 人工录入支持维护完整的规格维度、规格值、可选状态和颜色价格。
  13. 不可选择的规格值继续保留并保存 selectable=false;以后采购时不能选择。
  14. 采购阶段按待采购颜色和尺码匹配商品规格;必选值找不到或不可选择时,不创建采购单。
  15. 商品状态保持简单:pending、active、disabled。URL 最简创建为 pending;首次成功人工维护或采集后转为 active;disabled 由人工设置。
  16. 假售罄、临时售罄和采集失败不自动停用商品。

建议数据结构

pdd_product 增加:

  • title
  • shop_name
  • sales_count(BIGINT,可空)
  • review_count(BIGINT,可空)
  • status(pending / active / disabled)
  • specs_json(MySQL JSON)

specs_json 结构:

[
  {
    "name": "颜色分类",
    "role": "color",
    "values": [
      {"name": "黑色", "selectable": true, "priceCent": 2590},
      {"name": "白色", "selectable": false, "priceCent": 2690}
    ]
  },
  {
    "name": "尺码",
    "role": "size",
    "values": [
      {"name": "M", "selectable": true},
      {"name": "L", "selectable": true}
    ]
  }
]

服务端必须校验 JSON:维度名和规格值非空、角色合法、同维度规格值不重复、价格为非负整数分、只有颜色值允许价格。

分阶段方案与审核门禁

阶段 A:QuantUX 原型

  1. 使用 QuantUX MCP 创建采购人员视角的 PDD 商品列表、URL 最简创建、商品详情/编辑原型。
  2. 原型至少展示标题、店铺、销量、评价、状态、规格维度、规格值、可选状态和颜色价格。
  3. 人工编辑采用完整表单;颜色值显示价格,尺码和其他规格不显示价格输入框。
  4. 展示 pending、active、disabled 状态及不完整采集的提示方式。
  5. 提交原型链接/标识和页面说明,等待用户审核。

强制门禁:用户未明确回复原型通过验收前,工单保持原型待验收,不得修改迁移、Go 服务端、Vue 页面或共享 API。

阶段 B:代码实现

仅在原型明确验收后开始:

  1. 增量迁移和模型。
  2. JSON 校验、覆盖/部分合并服务。
  3. 管理端 API 契约。
  4. 商品列表、创建、详情和人工编辑。
  5. 采集任务完成时自动更新商品。
  6. 自动化测试、文档和真机回归。

原型验收标准

  • 采购人员可从列表使用“添加 PDD 商品”,只输入 URL 即创建。
  • pending 商品可以进入编辑页补充基础资料和完整规格。
  • 规格编辑支持增加、删除、排序维度与规格值。
  • 颜色规格值可以填写分单位价格对应的元显示值;尺码不显示价格。
  • 可以标记规格值是否可选择。
  • 状态简单清楚,不向采购人员暴露采集任务内部字段。
  • 页面明确区分“保存人工修改”和“采集自动更新”,但不增加字段级来源管理。
  • 原型未确认前不存在代码交付。

最终代码验收标准

  • URL 最简创建正确提取并唯一校验 goods_id。
  • 商品可以人工全量编辑基础字段与规格 JSON。
  • completed 自动全量覆盖;completed_partial 安全合并;failed 不更新。
  • 销量和评价保存为数字;颜色价格使用整数分。
  • 不可选颜色/尺码不能用于后续采购选择。
  • 数据库、API、管理端和文档测试通过。
  • 不引入 PDD 商品规格子表、SKU 表或历史表。

验证

  • QuantUX 原型人工验收。
  • MySQL 8.4 增量迁移和回滚风险检查。
  • Go 模型、JSON 校验、覆盖/部分合并事务测试。
  • Web 表单、规格编辑器和 API E2E 测试。
  • Android 完整/部分/失败采集结果更新回归。

风险

  • JSON 方案不适合复杂跨商品规格 SQL 查询;当前采购流程按商品整体读取,可以接受。
  • 全量覆盖会替换人工数据;这是已确认规则,页面保存和自动采集必须明确提示。
  • completed_partial 合并必须按维度角色/名称和规格值名称稳定匹配,不能把缺失数据当删除。
  • 自动更新商品和任务完成必须在同一事务或具备幂等保护,避免任务完成但商品未更新。
  • 修改商品结构会影响既有任务结果展示和未来采购设计,需要保持采集结果表独立。

文档影响

原型通过并进入代码阶段后,更新:

  • docs/00-project-profile.md
  • docs/02-architecture-and-data-model.md
  • docs/03-business-rules-and-glossary.md
  • docs/08-agent-api-contract.md(仅涉及采集结果应用契约时)
  • docs/09-delivery-issues.md
## 原始需求摘要 PDD 商品是供采购人员长期、重复采购使用的独立商品档案,采集只是维护商品数据的一种手段。商品可由 PDD App 自动采集、人工录入,未来也可从文件导入。创建商品的最简入口是输入包含 `goods_id` 的 PDD URL。 本工单必须先使用 QuantUX MCP 创建管理端交互原型;原型未经用户明确审核通过,不得开始数据库、服务端或 Web 代码实现。 ## 目标 - 将 `pdd_product` 从“URL 档案”扩展为采购人员可维护的正式 PDD 商品档案。 - 支持 URL 最简创建、人工维护和采集结果自动更新。 - 只保存最新商品资料,不保存价格、链接或字段变更历史。 - 使用通用多维规格结构,但当前只按颜色分类保存价格,尺码不参与定价。 - 保持采购人员操作简单,不为当前需求建立 PDD 商品规格子表。 ## 非目标 - 本工单不实现文件导入;文件导入排在最后阶段另建工单。 - 不实现 Shopee 规格映射、采购单、创建订单或付款。 - 不保存 PDD SKU ID;无障碍控件树当前无法获得该字段。 - 不保存历史价格、历史销量、历史评价或字段级来源/覆盖记录。 - 不实现复杂的跨商品规格统计和筛选。 ## 前置依赖 - T09 PDD 商品与 URL 管理。 - T13/T21 PDD 商品字段、规格和颜色价格采集。 - T27 假售罄识别与恢复。 - 原型实施前必须确认 QuantUX MCP 可用。 ## 是否可并行 不可并行。原型、业务确认、数据库契约、服务端和 Web 依次推进;原型审核是强制门禁。 ## 子项目影响 - QuantUX 管理端原型。 - `pdd_product` 数据库迁移与模型。 - PDD 商品管理 API。 - 采集结果应用到 PDD 商品的事务逻辑。 - PDD 商品列表、创建、编辑和详情页面。 - Harness 项目档案、业务规则和 API 文档。 ## 已确认业务规则 1. 创建 PDD 商品时最少只输入 URL;服务端提取 `goods_id`,相同 `goods_id` 继续保持唯一。 2. 商品基础字段包含:URL、goods_id、标题、店铺名、销量、评价数量和状态。 3. 销量与评价数量只保存解析后的最新数字,不保存展示文本和历史值。 4. 规格使用通用多维模型;当前识别 `color`、`size`、`other` 角色。 5. 不建立 PDD 商品规格子表;规格、规格值、是否可选择和颜色价格保存在 `pdd_product.specs_json`。 6. 只有颜色规格值保存 `priceCent`;不同颜色可以不同价格,不区分不同尺码的价格。 7. 不保存 PDD SKU ID,不生成 PDD SKU 表。 8. 人工修改为全量覆盖;未来文件导入也采用全量覆盖。 9. `completed` 采集结果自动全量覆盖商品基础资料和规格 JSON。 10. `completed_partial` 只合并明确采集到的数据,不删除原来存在但本次未采集到的数据。 11. `failed` 不修改 PDD 商品。 12. 人工录入支持维护完整的规格维度、规格值、可选状态和颜色价格。 13. 不可选择的规格值继续保留并保存 `selectable=false`;以后采购时不能选择。 14. 采购阶段按待采购颜色和尺码匹配商品规格;必选值找不到或不可选择时,不创建采购单。 15. 商品状态保持简单:`pending`、`active`、`disabled`。URL 最简创建为 `pending`;首次成功人工维护或采集后转为 `active`;`disabled` 由人工设置。 16. 假售罄、临时售罄和采集失败不自动停用商品。 ## 建议数据结构 `pdd_product` 增加: - `title` - `shop_name` - `sales_count`(BIGINT,可空) - `review_count`(BIGINT,可空) - `status`(`pending` / `active` / `disabled`) - `specs_json`(MySQL JSON) `specs_json` 结构: ```json [ { "name": "颜色分类", "role": "color", "values": [ {"name": "黑色", "selectable": true, "priceCent": 2590}, {"name": "白色", "selectable": false, "priceCent": 2690} ] }, { "name": "尺码", "role": "size", "values": [ {"name": "M", "selectable": true}, {"name": "L", "selectable": true} ] } ] ``` 服务端必须校验 JSON:维度名和规格值非空、角色合法、同维度规格值不重复、价格为非负整数分、只有颜色值允许价格。 ## 分阶段方案与审核门禁 ### 阶段 A:QuantUX 原型 1. 使用 QuantUX MCP 创建采购人员视角的 PDD 商品列表、URL 最简创建、商品详情/编辑原型。 2. 原型至少展示标题、店铺、销量、评价、状态、规格维度、规格值、可选状态和颜色价格。 3. 人工编辑采用完整表单;颜色值显示价格,尺码和其他规格不显示价格输入框。 4. 展示 `pending`、`active`、`disabled` 状态及不完整采集的提示方式。 5. 提交原型链接/标识和页面说明,等待用户审核。 **强制门禁:用户未明确回复原型通过验收前,工单保持原型待验收,不得修改迁移、Go 服务端、Vue 页面或共享 API。** ### 阶段 B:代码实现 仅在原型明确验收后开始: 1. 增量迁移和模型。 2. JSON 校验、覆盖/部分合并服务。 3. 管理端 API 契约。 4. 商品列表、创建、详情和人工编辑。 5. 采集任务完成时自动更新商品。 6. 自动化测试、文档和真机回归。 ## 原型验收标准 - 采购人员可从列表使用“添加 PDD 商品”,只输入 URL 即创建。 - `pending` 商品可以进入编辑页补充基础资料和完整规格。 - 规格编辑支持增加、删除、排序维度与规格值。 - 颜色规格值可以填写分单位价格对应的元显示值;尺码不显示价格。 - 可以标记规格值是否可选择。 - 状态简单清楚,不向采购人员暴露采集任务内部字段。 - 页面明确区分“保存人工修改”和“采集自动更新”,但不增加字段级来源管理。 - 原型未确认前不存在代码交付。 ## 最终代码验收标准 - URL 最简创建正确提取并唯一校验 `goods_id`。 - 商品可以人工全量编辑基础字段与规格 JSON。 - `completed` 自动全量覆盖;`completed_partial` 安全合并;`failed` 不更新。 - 销量和评价保存为数字;颜色价格使用整数分。 - 不可选颜色/尺码不能用于后续采购选择。 - 数据库、API、管理端和文档测试通过。 - 不引入 PDD 商品规格子表、SKU 表或历史表。 ## 验证 - QuantUX 原型人工验收。 - MySQL 8.4 增量迁移和回滚风险检查。 - Go 模型、JSON 校验、覆盖/部分合并事务测试。 - Web 表单、规格编辑器和 API E2E 测试。 - Android 完整/部分/失败采集结果更新回归。 ## 风险 - JSON 方案不适合复杂跨商品规格 SQL 查询;当前采购流程按商品整体读取,可以接受。 - 全量覆盖会替换人工数据;这是已确认规则,页面保存和自动采集必须明确提示。 - `completed_partial` 合并必须按维度角色/名称和规格值名称稳定匹配,不能把缺失数据当删除。 - 自动更新商品和任务完成必须在同一事务或具备幂等保护,避免任务完成但商品未更新。 - 修改商品结构会影响既有任务结果展示和未来采购设计,需要保持采集结果表独立。 ## 文档影响 原型通过并进入代码阶段后,更新: - `docs/00-project-profile.md` - `docs/02-architecture-and-data-model.md` - `docs/03-business-rules-and-glossary.md` - `docs/08-agent-api-contract.md`(仅涉及采集结果应用契约时) - `docs/09-delivery-issues.md`
Author
Owner

Stage A:QuantUX 原型已完成,等待人工审核

本轮覆盖

  1. 采购人员使用的数据密集型 PDD 商品列表,支持关键字和状态筛选。
  2. 最小创建入口只要求输入 PDD URL,并展示解析出的 goods_id;goods_id 相同须提示商品已存在。
  3. 商品详情展示标题、店铺、销量、评价数量、商品状态,以及通用规格维度、规格值、可选状态和颜色价格。
  4. 编辑页采用覆盖式保存;颜色分类维护价格,尺码不维护独立价格,不展示 SKU/历史/任务内部字段。
  5. 明示完整采集自动覆盖;部分采集只合并本次确认数据,不凭空删除旧规格。

校验

  • 4 个页面均在画布边界内。
  • 无重复 ID、孤立控件、缺失子控件或无效跳转。
  • 9 条主流程跳转均指向有效页面。
  • QuantUX 服务可访问;浏览器需先登录 QuantUX 账号。

门禁状态

本轮未修改数据库、服务端、Web 业务代码或共享 API。工单保持打开并等待用户审核;仅在用户明确回复“#31 原型通过”后进入 Stage B 实现。

## Stage A:QuantUX 原型已完成,等待人工审核 - QuantUX 应用:`GoAuto - PDD商品采购档案原型` - App ID:`6a81db5d191a826306a7edd6` - 原型概览:<http://124.222.27.183:8082/#/apps/6a81db5d191a826306a7edd6.html> - 原型编辑器:<http://124.222.27.183:8082/#/apps/6a81db5d191a826306a7edd6/create.html> - 页面:PDD 商品列表、添加 PDD 商品、商品详情、编辑商品(4 页) - 结构:201 个控件、9 条页面跳转 ### 本轮覆盖 1. 采购人员使用的数据密集型 PDD 商品列表,支持关键字和状态筛选。 2. 最小创建入口只要求输入 PDD URL,并展示解析出的 goods_id;goods_id 相同须提示商品已存在。 3. 商品详情展示标题、店铺、销量、评价数量、商品状态,以及通用规格维度、规格值、可选状态和颜色价格。 4. 编辑页采用覆盖式保存;颜色分类维护价格,尺码不维护独立价格,不展示 SKU/历史/任务内部字段。 5. 明示完整采集自动覆盖;部分采集只合并本次确认数据,不凭空删除旧规格。 ### 校验 - 4 个页面均在画布边界内。 - 无重复 ID、孤立控件、缺失子控件或无效跳转。 - 9 条主流程跳转均指向有效页面。 - QuantUX 服务可访问;浏览器需先登录 QuantUX 账号。 ### 门禁状态 本轮未修改数据库、服务端、Web 业务代码或共享 API。工单保持打开并等待用户审核;仅在用户明确回复“#31 原型通过”后进入 Stage B 实现。
Author
Owner

QuantUX 原型修正:PDD 商品列表与采购选择器数据统一

根据用户复查反馈,已修正 App 6a81db5d191a826306a7edd6:

  • 统一演示商品:
    • 972800403573:正常、资料和规格完整;
    • 719834019024:待完善;
    • 731370706977:已停用且数据不完整。
  • 将容易误解为“已经可以采购”的“可使用”改为“正常”。
  • 列表增加“更新时间”和“链接”入口,保留 goods_id、商品/店铺、状态、销量/评价、规格概况、颜色价格和操作。
  • 商品详情、编辑页同步为 972800403573,避免从列表进入后变成另一件商品。
  • 详情规格同步为 10 个颜色、8 个尺码,和列表“2维 / 18值”一致。

结构复检:4页、208个控件、12条跳转;无缺失控件、孤立控件、越界或无效跳转。Playwright 已从列表点击第一行进入详情并核对同一 goods_id、URL、标题与规格。

原型链接:http://124.222.27.183:8082/#/apps/6a81db5d191a826306a7edd6.html

本轮未修改数据库、服务端或Web代码,工单继续等待用户审核。

## QuantUX 原型修正:PDD 商品列表与采购选择器数据统一 根据用户复查反馈,已修正 App `6a81db5d191a826306a7edd6`: - 统一演示商品: - `972800403573`:正常、资料和规格完整; - `719834019024`:待完善; - `731370706977`:已停用且数据不完整。 - 将容易误解为“已经可以采购”的“可使用”改为“正常”。 - 列表增加“更新时间”和“链接”入口,保留 goods_id、商品/店铺、状态、销量/评价、规格概况、颜色价格和操作。 - 商品详情、编辑页同步为 `972800403573`,避免从列表进入后变成另一件商品。 - 详情规格同步为 10 个颜色、8 个尺码,和列表“2维 / 18值”一致。 结构复检:4页、208个控件、12条跳转;无缺失控件、孤立控件、越界或无效跳转。Playwright 已从列表点击第一行进入详情并核对同一 goods_id、URL、标题与规格。 原型链接:<http://124.222.27.183:8082/#/apps/6a81db5d191a826306a7edd6.html> 本轮未修改数据库、服务端或Web代码,工单继续等待用户审核。
Author
Owner

已使用 QuantUX MCP 将线上 App 6a81db5d191a826306a7edd6 导出为本地单文件离线 HTML:

  • 文件:prototypes/quantux-pdd-product-6a81db5d191a826306a7edd6.html
  • 大小:138773 bytes
  • 模型:4 个页面、208 个控件、12 条流程线
  • MCP 验证:PASS;导航、输入、交互切换通过,runtimeErrors=0,unsupportedTypes=0
  • 本地验证:无外部 script/link 依赖,4/4 页面名称存在
  • 提交:34b5e0c7ccce2021ba92ee03ce252ff0bcc47fc4

本次只保存线上草稿的可追溯离线快照,不改变原型审核状态。

已使用 QuantUX MCP 将线上 App `6a81db5d191a826306a7edd6` 导出为本地单文件离线 HTML: - 文件:`prototypes/quantux-pdd-product-6a81db5d191a826306a7edd6.html` - 大小:138773 bytes - 模型:4 个页面、208 个控件、12 条流程线 - MCP 验证:PASS;导航、输入、交互切换通过,runtimeErrors=0,unsupportedTypes=0 - 本地验证:无外部 script/link 依赖,4/4 页面名称存在 - 提交:`34b5e0c7ccce2021ba92ee03ce252ff0bcc47fc4` 本次只保存线上草稿的可追溯离线快照,不改变原型审核状态。
Author
Owner

PDD 商品列表多选与批量采集入口补充(2026-08-17)

按用户确认更新 #31 QuantUX 原型:

  • PDD 商品列表左侧增加复选框,支持当前页多选和“已选择 N 条”。
  • 多选后的动作明确为“批量创建采集任务”,不是采购任务,也不会创建订单。
  • 页面已知不可采集的商品复选框禁用并显示原因,例如商品停用、没有可用采集规则、已有 pending/running 采集任务。
  • 点击后进入批量确认,展示规则、设备分配方式、可创建/不可创建数量和逐条检查结果。
  • 每个 PDD 商品分别创建一个采集任务;服务端创建前重新校验,允许部分成功并逐条显示结果。
  • 表头全选只作用于当前页;没有选择时批量按钮禁用。
  • 生产实现由独立单元工单负责;#31 仍只作为 PDD 商品档案及本轮批量入口的原型审核门禁。
## PDD 商品列表多选与批量采集入口补充(2026-08-17) 按用户确认更新 #31 QuantUX 原型: - PDD 商品列表左侧增加复选框,支持当前页多选和“已选择 N 条”。 - 多选后的动作明确为“批量创建采集任务”,不是采购任务,也不会创建订单。 - 页面已知不可采集的商品复选框禁用并显示原因,例如商品停用、没有可用采集规则、已有 `pending/running` 采集任务。 - 点击后进入批量确认,展示规则、设备分配方式、可创建/不可创建数量和逐条检查结果。 - 每个 PDD 商品分别创建一个采集任务;服务端创建前重新校验,允许部分成功并逐条显示结果。 - 表头全选只作用于当前页;没有选择时批量按钮禁用。 - 生产实现由独立单元工单负责;#31 仍只作为 PDD 商品档案及本轮批量入口的原型审核门禁。
Author
Owner

多选与批量采集 QuantUX 原型已更新,等待审核

覆盖 PDD 商品列表当前页多选、不可选状态说明、批量创建采集任务确认和逐条结果。每个商品创建独立采集任务,明确不会创建采购任务或订单。工单仍为原型待审核,不授权生产实现。

## 多选与批量采集 QuantUX 原型已更新,等待审核 - App ID:`6a81db5d191a826306a7edd6` - 在线:<http://124.222.27.183:8082/#/apps/6a81db5d191a826306a7edd6.html> - 本地:`prototypes/quantux-pdd-product-6a81db5d191a826306a7edd6.html` - 结构:6页、328控件、16条流程线 - 验证:QuantUX PASS,runtimeErrors=0,unsupportedTypes=0 - 提交:`7df4546` 覆盖 PDD 商品列表当前页多选、不可选状态说明、批量创建采集任务确认和逐条结果。每个商品创建独立采集任务,明确不会创建采购任务或订单。工单仍为原型待审核,不授权生产实现。
Author
Owner

用户验收通过(2026-08-17)

用户明确确认 PDD 商品原型没有问题,并要求按照已确认原型实施 PDD 商品模块页面。

验收范围:

  • PDD 商品列表、添加、详情和编辑页面;
  • 当前页多选与批量创建独立采集任务;
  • 已停用、无可用规则或已有活动采集任务时的禁用原因;
  • 批量确认和逐条结果;
  • 采集入口不创建采购任务或订单。

QuantUX App:6a81db5d191a826306a7edd6;已确认版本为 6 页、328 控件、16 条流程线,本地快照提交 7df4546。

#31 原型门禁完成并关闭。生产实现必须使用新的单元工单,不能在本工单继续混入数据库、服务端或 Web 代码。

## 用户验收通过(2026-08-17) 用户明确确认 PDD 商品原型没有问题,并要求按照已确认原型实施 PDD 商品模块页面。 验收范围: - PDD 商品列表、添加、详情和编辑页面; - 当前页多选与批量创建独立采集任务; - 已停用、无可用规则或已有活动采集任务时的禁用原因; - 批量确认和逐条结果; - 采集入口不创建采购任务或订单。 QuantUX App:`6a81db5d191a826306a7edd6`;已确认版本为 6 页、328 控件、16 条流程线,本地快照提交 `7df4546`。 #31 原型门禁完成并关闭。生产实现必须使用新的单元工单,不能在本工单继续混入数据库、服务端或 Web 代码。
ila closed this issue 2026-08-17 15:43:21 +08:00
ila reopened this issue 2026-08-17 15:45:36 +08:00
Author
Owner

用户已于 2026-08-17 明确确认 #31 QuantUX 原型没有问题,原型门禁通过。纠正状态:本工单还包含阶段 B 数据、API 与 Admin 页面实现,因此重新打开并进入实施;批量创建采集任务继续由独立工单 #45 承担,不混入本提交。

用户已于 2026-08-17 明确确认 #31 QuantUX 原型没有问题,原型门禁通过。纠正状态:本工单还包含阶段 B 数据、API 与 Admin 页面实现,因此重新打开并进入实施;批量创建采集任务继续由独立工单 #45 承担,不混入本提交。
Author
Owner

阶段 B 实施完成,等待用户验收

原型门禁已通过后,已按确认原型完成 PDD 商品档案模块;批量创建采集任务仍保留在独立工单 #45,未混入本提交。

实现

  • pdd_product 增加标题、店铺、数字销量/评价、pending/active/disabled 状态和通用多维 specs_json 最新值。
  • URL 最简创建保持 goods_id 唯一;增加商品详情接口、关键字/状态筛选和完整人工覆盖编辑。
  • 规格角色限定 color/size/other;只有颜色保存非负整数分价格,规格值保存可选择状态。
  • completed 在任务结果事务内全量覆盖商品,completed_partial 合并明确获得的数据,failed 不更新;人工停用不会被采集自动启用。
  • Admin 页面完成列表、添加、详情、编辑、规格增删/排序、颜色价格和易懂的空态/提示。
  • 增量迁移 1786700500000 已针对 MySQL 8.4 JSON 列采用“可空添加、回填空数组、改为非空”,本机真实库执行成功。

验证

  • scripts/verify.ps1 -Component server:通过(全量 Go 测试和构建)。
  • scripts/verify.ps1 -Component web:通过(0 lint error;上游既有 30 warnings;生产构建通过)。
  • pnpm exec playwright test tests/e2e/pdd-product-module.spec.ts:1 passed,覆盖列表、详情、编辑和颜色价格请求;API 使用测试拦截,不改真实商品。
  • MySQL 8.4 增量迁移:通过,版本 1786700500000 已登记。
  • Wiki commit a5c60ff2d9d64c824be176bb1630d884379f6c7c 已先更新并验证;核心 docs 镜像与该版本逐页一致。

提交

  • 代码:a7a4536(已推送 main)。

未验证与边界

  • 本次不涉及 Android 新字段或 APK 变更,未做真机采集;采集结果应用商品档案由 Go 事务测试覆盖。
  • 未实现列表多选和批量创建采集任务,该范围继续由 #45 承担。
  • 工单保持打开,等待用户对正式页面明确验收。
## 阶段 B 实施完成,等待用户验收 原型门禁已通过后,已按确认原型完成 PDD 商品档案模块;批量创建采集任务仍保留在独立工单 #45,未混入本提交。 ### 实现 - `pdd_product` 增加标题、店铺、数字销量/评价、`pending/active/disabled` 状态和通用多维 `specs_json` 最新值。 - URL 最简创建保持 goods_id 唯一;增加商品详情接口、关键字/状态筛选和完整人工覆盖编辑。 - 规格角色限定 `color/size/other`;只有颜色保存非负整数分价格,规格值保存可选择状态。 - `completed` 在任务结果事务内全量覆盖商品,`completed_partial` 合并明确获得的数据,`failed` 不更新;人工停用不会被采集自动启用。 - Admin 页面完成列表、添加、详情、编辑、规格增删/排序、颜色价格和易懂的空态/提示。 - 增量迁移 `1786700500000` 已针对 MySQL 8.4 JSON 列采用“可空添加、回填空数组、改为非空”,本机真实库执行成功。 ### 验证 - `scripts/verify.ps1 -Component server`:通过(全量 Go 测试和构建)。 - `scripts/verify.ps1 -Component web`:通过(0 lint error;上游既有 30 warnings;生产构建通过)。 - `pnpm exec playwright test tests/e2e/pdd-product-module.spec.ts`:1 passed,覆盖列表、详情、编辑和颜色价格请求;API 使用测试拦截,不改真实商品。 - MySQL 8.4 增量迁移:通过,版本 `1786700500000` 已登记。 - Wiki commit `a5c60ff2d9d64c824be176bb1630d884379f6c7c` 已先更新并验证;核心 docs 镜像与该版本逐页一致。 ### 提交 - 代码:`a7a4536`(已推送 `main`)。 ### 未验证与边界 - 本次不涉及 Android 新字段或 APK 变更,未做真机采集;采集结果应用商品档案由 Go 事务测试覆盖。 - 未实现列表多选和批量创建采集任务,该范围继续由 #45 承担。 - 工单保持打开,等待用户对正式页面明确验收。
Author
Owner

用户验收通过并归档

  • 用户于 2026-08-17 明确确认 #31 通过验收。
  • QuantUX 原型、MySQL 8.4 迁移、商品 API、Admin 列表/添加/详情/编辑和采集结果写回均已完成。
  • 三星任务 35 已把标题、店铺、销量、3 个颜色价格和 1 个尺码写入 PDD 商品;reviewCount 缺失由用户决定暂不处理。
  • 代码提交:a7a4536。
  • Wiki 归档:Task-31-PDD-product-archive,revision dd16035。
  • docs 镜像提交:f6bada9。
  • 列表多选和批量创建采集任务继续由独立 #45 承担。
## 用户验收通过并归档 - 用户于 2026-08-17 明确确认 #31 通过验收。 - QuantUX 原型、MySQL 8.4 迁移、商品 API、Admin 列表/添加/详情/编辑和采集结果写回均已完成。 - 三星任务 35 已把标题、店铺、销量、3 个颜色价格和 1 个尺码写入 PDD 商品;reviewCount 缺失由用户决定暂不处理。 - 代码提交:a7a4536。 - Wiki 归档:Task-31-PDD-product-archive,revision dd16035。 - docs 镜像提交:f6bada9。 - 列表多选和批量创建采集任务继续由独立 #45 承担。
ila closed this issue 2026-08-17 17:03:01 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#31