Files
goalfylearning-admin/docs/deployment_and_testing.md

5.3 KiB
Raw Blame History

邀请码申请管理功能 - 部署和测试指南

部署状态

已完成的部署步骤

  1. 后端服务

    • 已构建成功:admin-server
    • 数据库迁移已完成:admin_invite_code_applications 表已创建
    • 服务已启动:监听端口 8087
    • 路由已注册所有API端点正常
  2. 配置文件

  3. 数据库表结构

    admin_invite_code_applications
    - id (主键)
    - email (申请邮箱)
    - reason (申请理由)
    - status (pending/approved/rejected)
    - invite_code_id (关联的邀请码ID)
    - reject_reason (拒绝理由)
    - approved_at (审批时间)
    - approved_by (审批人)
    - email_sent_at (邮件发送时间)
    - created_at, updated_at, deleted_at
    

已验证的功能

公开API测试官网提交

1. 成功提交申请

curl -X POST http://localhost:8087/api/public/invite-code/apply \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com", "reason": "想体验AI编程助手"}'

返回:

{
  "code": 0,
  "message": "申请已提交我们将在1-2个工作日内处理您的申请",
  "data": {
    "id": 1,
    "email": "test@example.com",
    "status": "pending",
    ...
  }
}

2. 重复提交拦截

curl -X POST http://localhost:8087/api/public/invite-code/apply \
  -H "Content-Type: application/json" \
  -d '{"email": "test@example.com", "reason": "第二次申请"}'

返回:

{
  "error": "您已经提交过申请,请等待审核"
}

后台管理功能测试

需要认证的API端点

所有管理接口都需要通过SSO认证访问路径为/api/admin/invite-applications/*

可用的管理接口:

  1. GET /api/admin/invite-applications - 获取申请列表
  2. GET /api/admin/invite-applications/statistics - 获取统计信息
  3. GET /api/admin/invite-applications/pending-count - 获取待处理数量
  4. POST /api/admin/invite-applications/approve - 审批通过
  5. POST /api/admin/invite-applications/reject - 审批拒绝
  6. POST /api/admin/invite-applications/batch-approve - 批量审批通过
  7. POST /api/admin/invite-applications/batch-reject - 批量审批拒绝

前端测试步骤

  1. 启动前端应用

    cd /path/to/goalfymax-admin-web
    npm run dev
    
  2. 登录管理后台

  3. 访问邀请码管理页面

    • 导航到邀请码管理
    • 查看页面顶部的"待处理申请"按钮
    • 按钮上应该显示待处理数量徽章
  4. 处理申请

    • 点击"待处理申请"按钮
    • 查看申请列表
    • 测试以下操作:
      • ✓ 单个申请审批通过
      • ✓ 单个申请拒绝(可填写拒绝理由)
      • ✓ 批量选择申请
      • ✓ 批量审批通过
      • ✓ 批量拒绝

邮件发送测试

审批通过邮件

触发条件:管理员点击"同意"按钮

邮件内容

审批拒绝邮件

触发条件:管理员点击"拒绝"按钮并填写原因

邮件内容

  • 主题:关于您的 Goalfy 申请
  • 包含拒绝理由
  • 包含支持邮箱:support@goalfy.com

当前测试数据

已创建的测试申请:

  1. test@example.com - 状态pending
  2. another@example.com - 状态pending

下一步操作建议

1. 前端功能测试

cd /Users/youziba/goalfyagent/goalfymax-admin-web
npm run dev

然后登录后台,访问邀请码管理页面测试完整流程。

2. 邮件发送测试

在前端进行审批操作后:

  • 检查申请人邮箱是否收到邮件
  • 验证邮件内容是否正确
  • 验证邀请码链接是否有效

3. 官网集成

docs/invite_apply_example.html 中的表单集成到官网:

  • 修改 API_BASE_URL 为实际的后端地址
  • 调整样式以匹配官网设计
  • 添加必要的验证逻辑

注意事项

⚠️ 生产环境配置

  1. 修改 etc/config.yaml 中的 invite_url_prefix
  2. 确保SMTP服务器能够正常发送邮件
  3. 配置CORS允许官网域名访问API

⚠️ 安全建议

  1. 公开API /api/public/invite-code/apply 建议添加:

    • 频率限制(防止恶意申请)
    • 图形验证码
    • IP白名单
  2. 邮箱验证:

    • 确保邮箱格式正确
    • 可考虑添加邮箱域名白名单

服务管理命令

# 启动服务
./scripts/start.sh

# 停止服务
./scripts/stop.sh

# 查看日志
tail -f logs/admin-server.log

# 测试API
./scripts/test_api.sh

故障排查

服务无法启动

  • 检查端口8087是否被占用lsof -i:8087
  • 查看日志文件:tail -100 logs/admin-server.log

邮件发送失败

  • 检查 etc/config.yaml 中的邮件配置
  • 确认SMTP服务器可访问
  • 查看服务日志中的邮件发送错误信息

数据库连接失败

  • 检查 etc/config.yaml 中的数据库连接字符串
  • 确认数据库服务可访问
  • 检查数据库用户权限