2026-10-12 23:26:36 +08:00
2026-10-10 23:47:28 +08:00
2026-10-12 23:26:36 +08:00
2026-10-12 23:26:36 +08:00
2026-10-12 23:26:36 +08:00
2026-10-10 23:47:28 +08:00
2026-10-10 23:34:06 +08:00
2026-10-10 23:34:06 +08:00
2026-10-10 23:47:28 +08:00
2026-10-12 20:29:27 +08:00

Workbench

移动端任务与账户平台后端。项目是独立应用,业务数据以 MySQL olons_admin 库中的 hg_* 表为唯一事实源。

项目现在采用前后端一体目录结构:web/ 是参考 im_manager 组织的 Vue 3 + Vite 管理端,Go 服务在生产环境通过 /admin/ 提供构建后的静态资源,/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
  • 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 中创建独立会话。

启动配置

核心环境变量:

WORKBENCH_CONFIG=configs/workbench.local.json
WORKBENCH_MYSQL_DSN='user:password@tcp(host:3306)/olons_admin?parseTime=true&charset=utf8mb4&loc=Local'
WORKBENCH_REDIS_ADDR='127.0.0.1:6379'
WORKBENCH_DATA_ENCRYPTION_KEY='<32 字节随机密钥的 Base64>'
WORKBENCH_LOOKUP_HMAC_KEY='<至少 32 字节随机密钥的 Base64>'
WORKBENCH_API_KEYS='<API Key,多个以逗号分隔>'

WORKBENCH_DATA_ENCRYPTION_KEY 和 WORKBENCH_LOOKUP_HMAC_KEY 用于保护收款账户姓名、账号、银行卡预留手机号及取出快照等支付敏感信息。两个密钥必须分开生成、通过部署 Secret 注入,并与已有数据的加密配置保持一致;会员登录手机号直接保存在 hg_app_member.mobile。

前端静态目录可通过 WORKBENCH_FRONTEND_DIR 覆盖,默认值为 web/dist。本地开发可分别启动前后端:

make web-install
make web-build
make run

生产镜像使用 Docker 多阶段构建自动安装前端依赖、构建 web/,并将产物部署到 /admin/。

请求头

X-API-Key: <api key>
X-Request-ID: <request id>
X-Device-ID: <optional device id>

默认租户通过 WORKBENCH_DEFAULT_TENANT_ID 配置,现有 olons_admin 数据使用 tenant_id=0。服务不接受客户端传入租户身份。

验证

make test
make build

前后端完整对接契约见 docs/移动端任务与账户平台前后端对接文档.md,已实现的注册登录简版契约见 docs/注册登录对接文档.md。

S
Description
No description provided
Readme
30 MiB