Document upload concurrency and visible selection behavior (#30 #31)

ila
2026-10-05 18:01:01 +08:00
parent 0a176fa4cf
commit 9ebe51001e
+3 -3
@@ -15,13 +15,13 @@ DownloadProductData(platformShopID) 返回 internal/erpgo.SyncResult 和 error
## 本地列表分页条数(2026-09-29)
商品列表 n-pagination 启用 show-size-picker,提供每页20/50/100/200/500条;初始/重置仍20。changePageSize 更新 query.pageSize、清空旧勾选,调用 search 回到第一页,其他筛选条件保留。仅此次页大小切换明确清空勾选,普通搜索/翻页继续原选择行为。
商品列表 n-pagination 启用 show-size-picker,提供每页20/50/100/200/500条;初始/重置仍20。changePageSize 更新 query.pageSize、清空旧勾选,调用 search 回到第一页,其他筛选条件保留。普通搜索/重置和翻页清空勾选;后台刷新只保留当前页仍可见的 ID。上传预览与实际执行使用同一选择快照,不会把隐藏的旧勾选带入批量操作。
store.ListProducts 接受1—500的 pageSize,空/非正数/大于500仍回退20;参数化 LIMIT/OFFSET、排序与同条件 COUNT 保持原样。这里是本地商品列表,与 erpgo 商品同步每页200、任务并发及上传流程无关。选择500增加当前页行和视频摘要读取,不自动勾选或启动任务。
## 商品列表下载状态筛选(2026-09-29)
`ProductListView.vue` 的初始/重置查询默认为在售中(NORMAL)、缺少视频(missing)和未下载(not_downloaded)。下载状态下拉复用现有 n-select,提供全部、未下载(含失败)、待下载、下载中、已下载、下载失败;用户点击搜索应用条件,沿用原页码重置和筛选栏换行;普通搜索/翻页保持原有勾选行为。
`ProductListView.vue` 的初始/重置查询默认为在售中(NORMAL)、缺少视频(missing)和未下载(not_downloaded)。下载状态下拉复用现有 n-select,提供全部、未下载(含失败)、待下载、下载中、已下载、下载失败;用户点击搜索应用条件,沿用原页码重置和筛选栏换行;普通搜索/翻页不会携带不可见行的勾选。
`store.ProductQuery.DownloadStatus` 的 JSON 名称为 `downloadStatus`,空值保持旧调用查全部下载状态。`buildWhere` 把 not_downloaded 映射到 `download_status IN (pending, failed)`,单状态等值查询,所有值参数化,与其他条件 AND 组合;COUNT 和分页列表使用同一 WHERE。not_downloaded 仅是查询条件,不写入数据库状态。筛选不调用外部接口、不更改 SQLite 表结构或商品/视频/任务/上传状态。
@@ -129,7 +129,7 @@ cmsp/
→ 事件推送进度,前端刷新表格
使用者勾选商品点击「上传视频」
→ app_upload.go 串行处理,预检本地 mp4 并查询 erpgo 当前视频
→ app_upload.go 按 `upload.concurrency`(默认 1,允许 1—4)对不同商品有界并行处理;每件仍独立预检本地 mp4 并查询 erpgo 当前视频
→ SQLite 保存幂等键、Shopee ID 与文件指纹
→ internal/erpgo/video.go 以 X-API-Key PUT 单个 multipart video
→ 同键 GET /video/operation 查询结果;仅 succeeded 更新本地视频和上传状态