89 lines
3.3 KiB
Markdown
89 lines
3.3 KiB
Markdown
# 采购自动化验证系统
|
||
|
||
本项目面向采购管理人员和采购执行人员,目标是将后台采集的商品标题、描述、图片、
|
||
数量和预算转成 Android 端可执行的采购任务,并验证 AI 辅助拼多多检索和候选商品
|
||
判断是否可靠。
|
||
|
||
第一版只验证:
|
||
|
||
```text
|
||
后台创建任务
|
||
-> Android App 手动领取
|
||
-> VLM 解析图片与文字
|
||
-> 拼多多搜索和候选比较
|
||
-> 停在人工确认位置
|
||
-> 回传结果、截图和失败原因
|
||
```
|
||
|
||
MVP 不自动提交订单、不支付、不绕过验证码或平台风控。
|
||
|
||
## 目标结构
|
||
|
||
```text
|
||
cmroubao/
|
||
├── android-buyer/ # Roubao main 固定 commit 的 Android 基线
|
||
├── backend-api/ # Go-Gin API、SQLite、迁移和后续管理页面
|
||
├── docs/ # Harness Coding 项目事实和执行约束
|
||
├── AGENTS.md # AI coding agent 权威入口
|
||
├── init.ps1 # Windows 标准构建/真机启动入口
|
||
└── init.sh # Unix 等价构建/真机启动入口
|
||
```
|
||
|
||
管理人员使用 Web 管理端,采购人员使用 Android App;二者共享同一后端、任务数据
|
||
和权限体系。验证版已实现 ADMIN 服务端会话、BUYER 账号和预授权设备联合身份,
|
||
完整 RBAC 放到验证通过后。
|
||
|
||
后端采用 Go 1.23.0 + Gin 1.11.0,以 Go Blueprint v0.10.11 为一次性骨架参考,
|
||
已收敛出 SQLite、Goose 迁移、健康检查和可关闭的 HTTP Server;业务 API 按 Phase 2
|
||
任务逐步加入。
|
||
|
||
Android 端已核实的 Roubao 上游环境为 Kotlin 1.9.20、JDK 17、Gradle 8.2、
|
||
AGP 8.2.0、Android SDK 34,以及 Jetpack Compose Compiler 1.5.5。最低支持
|
||
Android 8.0(API 26),目标为 Android 14(API 34)。具体版本和本机环境状态见
|
||
[`docs/03-tech-stack.md`](docs/03-tech-stack.md) 与
|
||
[`docs/current-state.md`](docs/current-state.md)。
|
||
|
||
## 私有样本导入
|
||
|
||
```powershell
|
||
Set-Location android-buyer
|
||
.\gradlew.bat :tools:shopee-importer:run `
|
||
--args="--input ../private-fixtures/shopee --output ../.local/probe-import"
|
||
.\gradlew.bat :app:assembleDebug `
|
||
'-PprobeFixturesDir=../.local/probe-import'
|
||
```
|
||
|
||
普通 `.\init.ps1` 或不带 `-PprobeFixturesDir` 的 Debug 构建会清除先前注入的私有
|
||
fixture,默认 APK 不携带真实订单资料。
|
||
|
||
## 后端运行
|
||
|
||
```powershell
|
||
Set-Location backend-api
|
||
$env:GOTOOLCHAIN = "local"
|
||
go run ./cmd/migrate up
|
||
$env:CMROUBAO_AUTH_PASSWORD = "至少 12 个 UTF-8 字节"
|
||
go run ./cmd/authctl create-user ADMIN admin
|
||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||
go run ./cmd/api
|
||
```
|
||
|
||
默认监听 `127.0.0.1:8080`,SQLite 位于被忽略的 `backend-api/var/`。另一个终端可
|
||
访问 `http://127.0.0.1:8080/healthz`。可配置项和独立验证命令见
|
||
[`backend-api/README.md`](backend-api/README.md)。
|
||
|
||
## 文档入口
|
||
|
||
- [AI 开发入口](docs/00-ai-start-here.md)
|
||
- [项目愿景](docs/01-vision.md)
|
||
- [需求与 MVP 验收](docs/02-requirements.md)
|
||
- [技术栈](docs/03-tech-stack.md)
|
||
- [架构设计](docs/04-architecture.md)
|
||
- [API 合约](docs/api.md)
|
||
- [任务路线图](docs/06-tasks.md)
|
||
- [当前实现状态](docs/current-state.md)
|
||
- [完整文档导航](docs/README.md)
|
||
|
||
Android Phase 0/1 和后端 T-201 至 T-205 已完成。真实状态以
|
||
[`docs/current-state.md`](docs/current-state.md) 为准。
|