Skip to content

fanyu/WealthProfile

Repository files navigation

WealthTest

财富潜力测试(小红书销售版)开源开发仓库。

当前状态

  • 已完成文档系统落地(docs/)。
  • 已完成测评主链路(验单 -> 会话 -> 作答 -> 报告)。
  • 已完成运营后台检索(订单/会话/报告)。
  • 已完成双档题量(快速版 8 题 / 标准版 24 题)与置信度输出。
  • 已完成“情境冲突型”题库与可晒标签(主标签+副标签+分享文案)。

本地运行

  1. 安装依赖:npm install
  2. 复制环境变量:cp .env.example .env.local
  3. 启动开发:npm run dev
  4. 页面入口:/, /assessment, /admin

Admin RBAC

  • 后台支持“账号密码登录 -> cookie 会话”,也支持 token 直传(x-admin-tokenAuthorization: Bearer <token>
  • 可配置环境变量:
    • ADMIN_LOGIN_USERNAME(默认 admin
    • ADMIN_LOGIN_PASSWORD(为空时回退使用 ADMIN_TOKEN
    • ADMIN_VIEWER_TOKEN
    • ADMIN_OPERATOR_TOKEN
    • ADMIN_ADMIN_TOKEN
    • ADMIN_TOKEN(兼容单 token,按 admin 角色处理)
  • 推荐本地设置:ADMIN_LOGIN_USERNAME=admin + ADMIN_LOGIN_PASSWORD=admin + ADMIN_TOKEN=admin

MySQL(可选)

  1. 创建数据库:wealth_test
  2. 执行脚本:db/schema.sql
  3. 设置 .env.local
    • MYSQL_ENABLED=true
    • MYSQL_HOST/MYSQL_PORT/MYSQL_USER/MYSQL_PASSWORD/MYSQL_DATABASE

默认 MYSQL_ENABLED=false,将使用内存仓储用于本地快速开发。

已实现 API

  • POST /api/v1/xhs/order/validate
  • POST /api/v1/assessment/session/create
  • GET /api/v1/assessment/questions
  • POST /api/v1/assessment/submit
  • GET /api/v1/report/:reportId
  • POST /api/v1/share-card/generate
  • GET /api/v1/admin/dashboard
  • GET /api/v1/admin/orders
  • GET/POST /api/v1/admin/redeem-codes
  • GET /api/v1/admin/sessions
  • GET /api/v1/admin/reports
  • GET /api/v1/admin/reports/export
  • GET /api/v1/admin/trace/:id
  • GET /api/v1/admin/monitor
  • GET /api/v1/admin/audits
  • POST /api/v1/admin/xhs/diagnose
  • POST /api/v1/report/export
  • GET /api/v1/report/export/download
  • GET /api/v1/health
  • POST /api/v1/redeem-code/validate

发布前自检

  • 快速烟测:npm run smoke
  • 发布门禁自检:npm run release:check -- http://localhost:3000 ORDER-10001 admin
  • 小红书映射探测:./scripts/xhs_live_probe.sh http://localhost:3000 ORDER-10001 admin
  • 小红书样本回放:npm run xhs:replay
  • 单元测试基线:npm test

小红书 live 预留环境变量

  • XHS_MODE=live
  • XHS_APP_KEY=...
  • XHS_APP_SECRET=...
  • XHS_OPEN_BASE_URL=https://open.xiaohongshu.com
  • XHS_ORDER_VALIDATE_PATH=/your/path
  • XHS_TIMEOUT_MS=8000
  • XHS_RETRY_COUNT=1
  • XHS_SIGN_HEADER=x-sign
  • XHS_RESPONSE_SIGN_HEADER=x-sign
  • XHS_VERIFY_RESPONSE_SIGN=false

快速联调流程

  1. POST /api/v1/xhs/order/validate 获取 validationToken
  2. POST /api/v1/assessment/session/create(可传 tier=quick|standard)获取 sessionId
  3. GET /api/v1/assessment/questions?tier=quick|standard 获取题目
  4. POST /api/v1/assessment/submit(传 tier)获取 reportId
  5. 打开 /report/{reportId} 查看报告

无 API 发码流程(推荐当前店铺)

  1. 小红书虚拟商品自动发卡密(兑换码)
  2. 用户进入 /assessment,选择“兑换码”校验
  3. 前端调用 POST /api/v1/redeem-code/validate 获取 validationToken
  4. 前端调用 POST /api/v1/assessment/session/create 开测
  5. 后台 GET /api/v1/admin/redeem-codes 可追踪码状态/会话绑定

小红书样本回放(离线)

  • 样本目录:fixtures/xhs/*.json
  • 回放命令:npm run xhs:replay
  • 用途:在未接入 live 网关前,先验证字段映射与签名校验逻辑。

Smoke 测试

  • 启动服务后执行:./scripts/smoke.sh
  • 可传参:./scripts/smoke.sh http://localhost:3000 ORDER-10001

文档入口

  • docs/README.md

About

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors