# Olons Server 移动端任务与账户平台后端。项目是独立应用,业务数据以 MySQL `olons_admin` 库中的 `hg_*` 表为唯一事实源。 项目现在采用前后端一体目录结构:`web/` 是 Vue 3 + Vite 移动端,Go 服务在生产环境通过网站根路径 `/` 提供构建后的静态资源,`/v1/` 继续提供业务 API。 ## 当前接口 - `POST /v1/auth/register` - `POST /v1/auth/login` - `POST /v1/auth/logout` - `GET /v1/me` - `PATCH /v1/me/avatar` - `PUT /v1/me/password` - `PUT /v1/me/trade-password` - `GET /v1/home` - `GET /v1/banners` - `GET /v1/contents/{content_key}` - `GET /v1/member-levels` - `GET /v1/task-halls` - `GET /v1/tasks/eligibility` - `GET /v1/tasks/stats` - `POST /v1/task-orders/claim` - `GET /v1/task-orders` - `GET /v1/task-orders/{order_id}` - `POST /v1/task-orders/{order_id}/submissions` - `GET /v1/manual-products` - `GET /v1/manual-products/{product_id}` - `GET /v1/payment-accounts` - `POST /v1/payment-accounts` - `PUT /v1/payment-accounts` - `GET /v1/payment-accounts/details` - `POST /v1/withdrawal-orders/quote` - `POST /v1/withdrawal-orders` - `GET /v1/withdrawal-orders` - `GET /v1/withdrawal-orders/{order_id}` - `GET /healthz` - `GET /metrics` 注册使用 `hg_app_member` 作为账户主档,并在同一事务中创建 `hg_app_member_profile` 和 `hg_wallet_account` 记录。登录按完整 `mobile` 查找会员,校验 bcrypt 密码后在 Redis 中创建独立会话。 ## 启动配置 核心环境变量: ```bash OLONS_SERVER_CONFIG=configs/olons_server.local.json OLONS_SERVER_MYSQL_DSN='user:password@tcp(host:3306)/olons_admin?parseTime=true&charset=utf8mb4&loc=Local' OLONS_SERVER_REDIS_ADDR='127.0.0.1:6379' OLONS_SERVER_FINANCE_MASTER_KEY='<至少 32 个字符的固定资金安全密钥>' OLONS_SERVER_API_KEYS='' ``` `finance_master_key` 已在 JSON 配置中提供固定值,也可由 `OLONS_SERVER_FINANCE_MASTER_KEY` 覆盖。服务会从这个主密钥派生数据加密键和检索键,用于保护收款账户姓名、账号、银行卡预留手机号及取出快照等支付敏感信息。密钥必须与已有数据保持一致;会员登录手机号直接保存在 `hg_app_member.mobile`。 前端静态目录可通过 `OLONS_SERVER_FRONTEND_DIR` 覆盖,默认值为 `web/dist`。本地开发可分别启动前后端: ```bash make web-install make web-build make run ``` 生产镜像使用 Docker 多阶段构建自动安装前端依赖、构建 `web/`,并将 C 端产物部署到网站根路径 `/`。 ## 请求头 ```http X-API-Key: X-Request-ID: X-Device-ID: ``` 服务采用单租户模式,登录仅按手机号查找账号,不读取或接受租户环境变量。现有数据库中的 `tenant_id` 字段仅作为兼容字段保留,新注册数据固定写入 `0`。 ## 验证 ```bash make test make build ``` 前后端完整对接契约见 [`docs/移动端任务与账户平台前后端对接文档.md`](docs/移动端任务与账户平台前后端对接文档.md),已实现的注册登录简版契约见 [`docs/注册登录对接文档.md`](docs/注册登录对接文档.md)。