From ee6f7c146ac2df1c14bfde25fedbb4ee11bee12c Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Mon, 24 Aug 2026 16:02:46 +0800 Subject: [PATCH] docs(#75): archive implementation pending acceptance --- Task-75-SYB-Hourly-Sync.-.md | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Task-75-SYB-Hourly-Sync.-.md diff --git a/Task-75-SYB-Hourly-Sync.-.md b/Task-75-SYB-Hourly-Sync.-.md new file mode 100644 index 0000000..09c6c2c --- /dev/null +++ b/Task-75-SYB-Hourly-Sync.-.md @@ -0,0 +1,56 @@ +# #75 SYB 每小时自动同步并精简商品页入口 + +## 状态 + +待用户验收。 + +## 目标与范围 + +- 服务端每小时自动同步一次 SYB,默认在每小时第 5 分钟触发。 +- 按 Asia/Shanghai 计算日期范围,默认同步当天和前一天。 +- 保留手动导入 API 和同步记录页面,但移除 SYB 商品页的“导入”“同步记录”按钮及导入弹窗。 +- 商品页自动展示最近一次同步状态;同步运行中轮询,完成后刷新商品列表。 +- 不修改 Android Agent,不涉及 PDD 下单或支付。 + +## 实现 + +- 抽取手动接口与定时任务共用的 `StartImport`,复用店铺准入、凭据检查、单任务互斥、同步记录和现有导入执行链路。 +- 新增 go-admin DB-aware ExecJob 调用能力,注册 `GoAutoSYBHourlySync`。 +- 新增幂等迁移 `1786701600000_syb_hourly_sync_job.go`,首次写入启用的 `sys_job`;重复迁移及管理员修改后的 Cron/状态不会被覆盖。 +- 上一次同步仍在运行时,本次定时触发跳过;失败不立即重试,等待下一小时。 +- 调度失败不再输出误导性的成功日志。 + +## 数据库迁移 + +用户已明确确认执行本机数据库迁移。迁移首次执行新增 1 个版本,第二次执行新增 0 个、跳过 19 个,确认幂等。验证期间没有启动 Admin API,因此没有触发真实 SYB 同步。 + +## 验证 + +- `go test ./...`:通过。 +- `go build ./...`:通过。 +- `pnpm run lint`:0 errors;仅上游既有 30 个 warnings。 +- `pnpm run build:prod`:通过;仅既有 CSS/包体积提示。 +- 相关 Playwright:8 passed。 +- `python dev_scripts/harness.py sync --verify`:通过。 +- `python dev_scripts/harness.py check --strict`:通过。 +- `git diff --check`:通过。 + +## 长期文档 + +Wiki-first 已更新并回读: + +- Architecture-and-Code-Map:`ce37cbe86bad24c38c801955e301ff8e90ec86b5` +- Business-Rules-and-Glossary:`bb1dea3110c827ee6516f74eb440417a0551f9b8` +- Local-Development-and-Verification:`465390216d69d28a642854fd946d2d818a834f9c` + +对应核心镜像已同步。 + +## 提交 + +- `a2cc9a1 feat(#75): 增加 SYB 每小时自动同步` + +## 待验收 + +- 重启 Admin API 后确认“定时任务”里存在且启用“SYB 每小时自动同步”。 +- SYB 商品页确认顶部入口已精简、同步状态可显示。 +- 到下一次每小时第 5 分钟后确认产生“系统定时同步”的同步记录并刷新商品。