
QiuSWandClaude Opus 5
5524fe958c
feat: 店铺列表与商品数据下载 (#8)
由 Codex (gpt-5.6-sol) 实施,Claude 审核。
实现以真实抓包为准,纠正了 Python 参考实现与接口文档的三处错误:
1. erp/shop/all 请求体是 userId=(空值),不是文档写的 type=1
2. product/shop/getPage 用 form 编码,不是 JSON
3. 两个接口的响应都没有 {type, message, code, bean} 包裹:
shop/all 返回裸数组,getPage 直接返回分页对象
internal/huohanhan/shop.go
- ListShops 解析裸数组,只保留 platform=="0" 的 Shopee 店铺,
店铺名去首尾空格后按名称排序
- Shop 结构体只声明界面需要的 8 个字段。货憨憨返回的
accessToken、refreshToken 是 Shopee OAuth 凭据,createUser 是手机号,
一律不解析、不记录、不存储、不返回前端;有测试用反射与 JSON
序列化双重断言
internal/huohanhan/product.go
- GetProductPage 发送完整表单,自定义 UnmarshalJSON 兼容
total/size/current/pages 既可能是数字也可能是字符串
- DownloadAllProducts 按页拉全量,带 200 页上限保护防止 pages
异常导致死循环,达上限记警告而非静默截断
app.go
- ListShops、DownloadProductData 换成真实实现
- 未选店铺时返回「请先选择店铺」。该账号有 19 个店铺,
单店铺 1256 个商品 63 页,默认拉全部会非常慢
前端
- 店铺加载失败不再静默吞掉,改为可见提示
- 「下载数据」传当前店铺 ID,完成后刷新列表
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LbdtsD3ohhSMy3KPoCgARq
2026-09-02 17:16:41 +08:00
..
2026-09-02 15:59:54 +08:00
2026-09-02 17:16:41 +08:00
2026-09-02 15:59:54 +08:00
2026-09-02 15:59:54 +08:00