67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
# #167 Client:完整遍历尺码与套餐第二规格
|
||||
|
|
|
|||
|
|
- 工单号:#167
|
|||
|
|
- 类型:缺陷
|
|||
|
|
- 父级:Epic #1、MVP #2
|
|||
|
|
- 版本:Client 可运行任务闭环
|
|||
|
|
- 状态:待验收
|
|||
|
|
- 日期:2026-08-11
|
|||
|
|
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/167>
|
|||
|
|
|
|||
|
|
## 背景与目标
|
|||
|
|
|
|||
|
|
商品 `757123298435` 的“套餐”有十多个选项,但 Client 只保存当前控件树里可见的
|
|||
|
|
3 个。原因是旧流程找到第二规格后就结束,没有继续遍历套餐自身的横向滚动列表。
|
|||
|
|
本任务完整收集尺码或套餐文字,同时不改变颜色点击和逐颜色采价规则。
|
|||
|
|
|
|||
|
|
## 最终方案
|
|||
|
|
|
|||
|
|
- 先沿用原有纵向流程找到第二规格,避免改变普通衣服的颜色、尺码采集路径。
|
|||
|
|
- 找到第二规格后,定位规格选项最近的可滚动父容器,区分横向独立列表和纵向
|
|||
|
|
规格面板。
|
|||
|
|
- 横向套餐列表先回到最左端,再向右逐页扫描;纵向第二规格继续向下扫描。
|
|||
|
|
- 使用“当前可见文字 + 坐标”判断是否到达边界,跨页按文字去重并保留从起点
|
|||
|
|
开始的自然顺序,全程不点击套餐或尺码。
|
|||
|
|
- 标题包含数量(例如“套餐(15)”)时校验实际采集数量;数量不足明确返回
|
|||
|
|
`PDD_DATA_SPEC_INCOMPLETE`,不再把局部结果当作完整数据提交。
|
|||
|
|
- 嵌套列表解析结果按标题纵坐标排序,保证页面上方“款式”仍映射到主规格,页面
|
|||
|
|
下方“套餐”仍映射到第二规格。
|
|||
|
|
|
|||
|
|
## 改了哪些文件
|
|||
|
|
|
|||
|
|
- `client/src/pdd_collect_service.py`:增加第二规格容器定位、方向识别、起止边界
|
|||
|
|
检测、跨页合并及标题数量校验。
|
|||
|
|
- `client/test/test_pdd_collect_service.py`:增加七个横向套餐完整遍历、自然顺序、
|
|||
|
|
不点击选项及声明数量不足的回归测试。
|
|||
|
|
|
|||
|
|
## 验收结果
|
|||
|
|
|
|||
|
|
- [x] 独立横向套餐列表会先回到左端,再从左向右完整扫描。
|
|||
|
|
- [x] 相邻页面重复出现的套餐会去重,并保留自然顺序。
|
|||
|
|
- [x] 遍历第二规格时不会点击套餐或尺码。
|
|||
|
|
- [x] 标题声明的选项数量大于实际采集数量时明确报数据不完整。
|
|||
|
|
- [x] 衣服类已有颜色、尺码、逐颜色价格测试保持通过。
|
|||
|
|
- [x] 未修改数据库、Admin 接口和 `pdd_data` 数据结构。
|
|||
|
|
- [ ] 用户使用真机商品 `757123298435` 确认十多个套餐均被采集。
|
|||
|
|
|
|||
|
|
## 测试
|
|||
|
|
|
|||
|
|
在 `client/` 目录执行:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_collect_service.py"
|
|||
|
|
$env:QT_QPA_PLATFORM="offscreen"
|
|||
|
|
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
|
|||
|
|
C:/Python310/python.exe -m py_compile src/pdd_collect_service.py test/test_pdd_collect_service.py
|
|||
|
|
Remove-Item Env:QT_QPA_PLATFORM
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
结果:采集服务 60 项、Client 完整 422 项测试通过,语法检查通过。
|
|||
|
|
|
|||
|
|
**没验证到的部分**:未使用真机重新采集商品 `757123298435`;未执行真实采购、
|
|||
|
|
下单或付款;不采集套餐与款式组合价格,仍沿用只记录主规格价格的既定规则。
|
|||
|
|
|
|||
|
|
## 相关提交
|
|||
|
|
|
|||
|
|
- `18678e1` 完整遍历尺码与套餐第二规格。
|