Commit Graph
49 Commits
Author SHA1 Message Date
QiuSW 148ba96521 feat(goauto): add managed purchase rules (#127) 2026-08-29 21:20:55 +08:00
QiuSW cc326ebc6c feat(#155): reuse failed collection tasks by attempt 2026-08-29 16:05:37 +08:00
QiuSW 11c407d582 feat(#148): match purchase specs asynchronously 2026-08-29 11:51:32 +08:00
QiuSW c9e9539de0 fix(#147): move purchase matching outside transaction 2026-08-29 11:09:48 +08:00
QiuSW f84ea5df3b feat(#142): group GoAuto admin navigation 2026-08-29 09:44:06 +08:00
QiuSW 9d23b44811 fix(upload): preserve multipart boundaries (#139) 2026-08-29 00:01:37 +08:00
QiuSW 6f611a04ef feat(goauto): collect cropped color images (#133) 2026-08-28 23:31:23 +08:00
QiuSW 5feb4e8571 feat(web): enforce server-driven GoAuto menus (#138) 2026-08-28 22:16:51 +08:00
QiuSW 9916ed5ccf feat(web): add stock purchase workflow (#136) 2026-08-28 21:46:17 +08:00
QiuSW 941b7b11f3 feat(#122): add SYB inner-code admin workflow 2026-08-28 10:24:22 +08:00
QiuSW ae9a9fef6f fix: add purchaser role permissions (#85) 2026-08-25 14:25:22 +08:00
QiuSW ab5832d00f fix: isolate user import dialog visibility 2026-08-25 11:21:53 +08:00
QiuSW a622d718e0 fix(#84): restore collection selection in locate mode 2026-08-25 11:05:56 +08:00
QiuSW 0991fd2b57 feat(#83): add PDD product locate mode 2026-08-25 10:48:27 +08:00
QiuSW 7b488e2c68 fix(#82): separate PDD linking from mapping 2026-08-25 10:21:10 +08:00
QiuSW 66ea01c02e fix(#81): open PDD detail from SYB stage 2026-08-25 10:00:04 +08:00
QiuSW 0794dc580b feat(#80): add SYB product process stages 2026-08-25 09:44:02 +08:00
QiuSW 5c9b75fc53 feat(#78): add manual SYB sync action 2026-08-24 17:05:16 +08:00
QiuSW 3261561940 fix(web): decouple SYB sync feedback (#77) 2026-08-24 16:49:23 +08:00
QiuSW a2cc9a144f feat(#75): 增加 SYB 每小时自动同步 2026-08-24 16:02:16 +08:00
QiuSW 3a8ec2055e fix(#74): 增加 SYB 店铺联想筛选 2026-08-24 15:33:01 +08:00
QiuSW c706f1e2df fix(#74): 收紧 SYB 商品列表布局 2026-08-24 15:21:30 +08:00
QiuSW 0fccbc99c1 feat(#74): 优化 SYB 商品筛选和列表布局 2026-08-24 15:10:47 +08:00
QiuSW 634bd46729 fix(#73): speed up SYB purchase preview 2026-08-24 11:48:56 +08:00
QiuSW 476ca64616 fix(#72): wait for API and retry SYB load 2026-08-24 11:02:47 +08:00
QiuSW 67d8f32eaf feat(#69): add Shopee PDD specification mapping 2026-08-23 23:23:42 +08:00
QiuSW b5d0d836fd feat(#68): streamline SYB product toolbar 2026-08-22 12:04:14 +08:00
QiuSW 9490bddf8f feat(#67): add Shopee order snapshots to purchase tasks 2026-08-22 10:41:05 +08:00
QiuSW 0e3be46c4c feat(#62): extend AI matching timeout 2026-08-21 17:23:02 +08:00
QiuSW 6181d97f39 feat(#62): add AI specification matching settings 2026-08-21 17:04:49 +08:00
QiuSW 01d852011a feat(#58): batch retry failed purchase tasks 2026-08-21 14:20:40 +08:00
QiuSW 7e4f404265 feat(#44): create purchase tasks from SYB products 2026-08-21 10:17:31 +08:00
QiuSW 387577667a fix(#57): compact purchase task filters 2026-08-21 09:22:22 +08:00
QiuSW c0c88bb43f feat(#35): add purchase task admin UI 2026-08-20 23:54:17 +08:00
QiuSW d392ed54c4 refactor(#51): compact SYB product list layout 2026-08-20 15:42:15 +08:00
QiuSW badb78fa68 feat(#50): run SYB imports asynchronously 2026-08-20 15:24:50 +08:00
QiuSW 6c7a7298e3 feat(#49): complete SYB shop management 2026-08-20 11:54:11 +08:00
QiuSWandClaude Opus 5 7edb4e7b9f feat(#48): add SYB sync orchestration, import endpoint and page entry
Stage 2. Completes the path from the SYB API to the archive.

sybimport.Sync pages a date range day by day and folds each detail line
through the existing idempotent ApplyDetail. The paging loop is driven by
listTotal, never by the list response's own total, which live data
confirmed is the page's row count rather than the filtered total. A day
whose completeness cannot be proven — a short page, a total that drifted
while paging, a detail response missing an order — stops the run instead
of reporting a partial import as a whole one. Rows already written stay:
they are idempotent on (order_code, detail_id), so a re-run overwrites.

sybimport.Connect reuses the cached session and only discards it when SYB
explicitly says it is invalid. Caching the numeric user id alongside the
cookies is required, not incidental: session validation calls
/am/user/get?id=, and a wrong id comes back as a business error rather
than a logout, so cookies alone can never be revalidated.

The import endpoint is single-flight and detached from the request
context, so closing the tab cannot abandon a half-finished range. It
reads only; no SYB write endpoint is reachable from GoAuto.

The page swaps its "no import entry" warning for a date-range dialog that
warns when the span is wide — a single week held over 7000 orders — and
reports partial progress when a run fails midway.

Verified: go build, go vet, go test ./... all pass. The drift check was
mutation-tested. Not verified: the MySQL migration for syb_session, and
any browser walkthrough.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 16:56:00 +08:00
QiuSWandClaude Opus 5 136f5c94cb style(#40,#41): collapse page headings into search toolbar
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 15:32:50 +08:00
QiuSWandClaude Opus 5 03a56565ef feat(#41): add syb product admin page
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 14:49:12 +08:00
QiuSWandClaude Opus 5 40d2862c1a feat(#40): add shopee product admin page
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 13:53:51 +08:00
QiuSW ceecb5855e feat(#45): add batch collection task creation 2026-08-17 17:17:20 +08:00
QiuSW a7a453633e feat(#31): implement PDD product archive module 2026-08-17 16:04:18 +08:00
QiuSW cde2a84211 feat: configure startup ports from local config (#30) 2026-08-16 19:18:46 +08:00
QiuSW 924c6e0504 fix: recover PDD similar-product sold-out page (#29) 2026-08-15 18:07:47 +08:00
QiuSW c4e0aa75c8 feat: retry PDD detail navigation once (#28) 2026-08-15 17:44:34 +08:00
QiuSW dbeb151f1d feat: recover transient PDD sold-out pages (#27) 2026-08-15 17:23:20 +08:00
QiuSW affa6b3f8c feat: add safe PDD rule template editor (#24) 2026-08-15 15:36:58 +08:00
QiuSW 6949e53968 feat: establish GoAuto MVP baseline (#19) 2026-08-15 14:24:45 +08:00