QiuSWandClaude Opus 5.5 fbde80cc20 feat(returnmatch): DB-backed batch match/confirm/cancel/remark API for #338
Service (app/goauto/returnmatch/service.go) wires the pure matching
functions to the database:
- BatchMatch: manual-only trigger (no scheduler, not called from
  yeeke sync or SYB import) for ticked SYB product rows. Filters to
  the participating process stages (待人工处理 excluded per the
  confirmed rule), loads the available return pool (no active match,
  non-nil future destroy deadline) via purchase.ProcessStages +a
  join query, runs SelectMatches, and inserts one return_match row per
  outcome. A unique-constraint violation on insert (lost race) is
  reported per-row as a conflict skip, never fails the whole batch.
- Confirm/Cancel: state transitions with row locking; Cancel clears
  both Active* columns so the same pair can be rematched later.
- Remark, List (by SYB product id / return item id / status) and
  Detail for both admin pages' filter/column needs.

Handler + router (app/goauto/returnmatch/{handler,router}.go) expose
POST /api/admin/v1/return-matches/batch-match, GET .../return-matches,
GET .../return-matches/:id, POST .../:id/{confirm,cancel,remark}.
Write actions require admin/purchaser (same requireCanPurchase gate
already used by yeeke.Handler.TriggerSync); list/detail are read-only
for any authenticated user. Registered in
app/admin/router/init_router.go.

Tests cover end-to-end batch match, expired-deadline exclusion,
multi-colour cross-pairing through the DB path, 待人工处理 exclusion,
confirm-then-cancel restoring availability and rematch-ability, and a
concurrent-insert test asserting exactly one winner against the
unique constraint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTDbDcwbDw1TSAcE6wfh2F
2026-09-24 11:48:58 +08:00

GoAuto 移动采集管理平台

GoAuto 使用 go-admin、go-admin-ui 和 Android Portal/Agent 跑通 PDD 商品采集闭环:人工添加 PDD 链接、创建采集规则、创建任务、由 Android 执行并在任务详情查看结构化结果。

当前 MVP 只包含 PDD 商品、采集规则、采集任务、Android 执行和任务详情结果。顺云宝、Shopee、采购、批量任务、规则发布流程、全局停机和实时屏幕均不在当前范围。

阅读入口

  1. 项目档案
  2. 开发工作流
  3. 架构与代码地图
  4. 业务规则与术语
  5. 本地开发与验证
  6. 常见修改
  7. 故障排查
  8. MVP 需求
  9. 共享 API 契约
  10. 一期交付工单索引
  11. 交互原型

旧版 ADB/Portal 验证代码、日志和诊断资料已归档到本机 demo/,该目录不进入 Git。

当前状态

  • 需求和技术边界已确认。
  • Harness Coding 文档和工单已建立。
  • 服务端与 Android 端为可交互 HTML 原型。
  • server/ 已固定导入 go-admin v2.3.0。
  • web/ 已固定导入 go-admin-ui v3.0.0。
  • android/ 已建立 Kotlin/SDK 34 Agent 骨架。
  • 最小闭环 8 张业务表、迁移和唯一约束测试已经落地。
  • 设备首次自注册、Token 认证、停用和吊销接口已经落地。
  • Token 心跳、在线/离线、空闲/忙碌和离线任务失败已经落地。

验证

.\scripts\verify.ps1 -Component all

也可以把 all 改为 server、web 或 android 单独验证。

S
Description
No description provided
Readme
10 MiB
Languages
HTML 51.4%
Go 25.7%
Kotlin 10.6%
Vue 7.6%
JavaScript 1.9%
Other 2.7%