Files
martial-master/docs/SCHEDULE_DEPLOYMENT_CHECKLIST.md
宅房 7aa6545cbb
All checks were successful
continuous-integration/drone/push Build is passing
fix bugs
2025-12-12 05:13:10 +08:00

5.0 KiB
Raw Permalink Blame History

赛程编排系统部署检查清单

部署前检查

1. 数据库检查

  • 已执行数据库表创建脚本: create_schedule_tables.sql
  • 已导入测试数据(可选): create_100_team_participants.sql
  • 数据库连接配置正确
  • 确认表名一致性:
    • 代码使用: martial_athlete
    • 测试数据插入: martial_participant
    • 需要确认: 是否为同一张表(可能是表名重构导致)

2. 后端代码检查

  • 4个实体类已创建
  • 4个Mapper接口及XML已创建
  • Service接口和实现已创建
  • Controller已创建
  • 定时任务处理器已创建
  • Service层项目查询逻辑已修复

3. 前端代码检查

  • 页面布局已修改
  • API接口已集成
  • 集体/个人项目差异化显示已实现
  • 编排状态和锁定机制已添加

4. 配置检查

  • PowerJob服务已启动
  • PowerJob定时任务已配置
  • Cron表达式设置为: 0 */10 * * * ?
  • 处理器类名正确: org.springblade.job.processor.ScheduleAutoArrangeProcessor

⚠️ 已知问题和解决方案

问题1: 表名不一致 已修复

现象: 测试数据脚本插入的是 martial_participant 表,但代码查询的是 martial_athlete

解决方案: 已将测试数据脚本修改为使用正确的表名 martial_athlete

修复内容:

  1. 批量替换 martial_participantmartial_athlete
  2. 批量替换 created_timecreate_time (统一字段名)

验证方法:

-- 导入测试数据后检查
SELECT COUNT(*) FROM martial_athlete WHERE competition_id = 200;
-- 应返回500条记录(100个队伍 × 5人)

问题2: getScheduleResult方法中的字段名错误 已修复

位置: MartialScheduleArrangeServiceImpl.java 第233行

问题: MartialScheduleDetail 没有 scheduleDetailId 字段,应该使用主键 id

修复: 已将查询条件修正为使用正确的字段名

pDetailWrapper.eq(MartialScheduleDetail::getId, p.getScheduleDetailId())

🔍 部署后测试流程

1. 后端API测试

测试1: 手动触发编排

curl -X POST http://localhost/api/martial/schedule/auto-arrange \
  -H "Content-Type: application/json" \
  -d '{"competitionId": 200}'

预期结果: 返回 {"code":200,"success":true,"msg":"自动编排完成"}

测试2: 获取编排结果

curl http://localhost/api/martial/schedule/result?competitionId=200

预期结果: 返回编排数据,包含 scheduleGroups 数组

测试3: 保存并锁定

curl -X POST http://localhost/api/martial/schedule/save-and-lock \
  -H "Content-Type: application/json" \
  -d '{"competitionId": 200}'

预期结果: 返回 {"code":200,"success":true,"msg":"编排已保存并锁定"}

2. 前端页面测试

访问: http://localhost:3000/martial/schedule?competitionId=200

检查项:

  • 页面正常加载
  • 显示编排状态标签(未编排/编排中/已锁定)
  • 竞赛分组Tab可切换
  • 场地Tab可切换
  • 集体项目按单位分组显示
  • 个人项目直接列出参赛者
  • 点击场地时间段按钮弹出详情对话框
  • 保存编排按钮可点击且生效

3. 定时任务测试

检查定时任务执行

-- 查看编排状态表
SELECT * FROM martial_schedule_status WHERE competition_id = 200;

-- 检查last_auto_schedule_time字段是否更新

查看PowerJob日志

在PowerJob控制台查看任务执行日志,确认:

  • 任务正常执行
  • 日志中显示编排成功
  • 没有异常错误

🛠️ 待修复项

所有已知问题已修复!

系统已达到生产就绪状态,可以开始部署测试。


📊 性能测试建议

测试场景1: 小规模数据

  • 参赛人数: 100人
  • 场地数: 4个
  • 比赛天数: 2天

预期结果: 编排耗时 < 1秒

测试场景2: 中规模数据

  • 参赛人数: 1000人
  • 场地数: 5个
  • 比赛天数: 5天

预期结果: 编排耗时 < 5秒

测试场景3: 大规模数据

  • 参赛人数: 5000人
  • 场地数: 10个
  • 比赛天数: 7天

预期结果: 编排耗时 < 10秒


📝 部署日志模板

部署记录

部署时间: _______________

部署人员: _______________

部署环境: □ 开发环境 □ 测试环境 □ 生产环境

执行步骤:

  • 1. 数据库表创建
  • 2. 测试数据导入
  • 3. 后端服务部署
  • 4. PowerJob任务配置
  • 5. 前端服务部署
  • 6. API接口测试
  • 7. 前端页面测试
  • 8. 定时任务测试

遇到的问题:




解决方案:




部署结果: □ 成功 □ 失败

备注:




文档版本: v1.0 创建时间: 2025-12-08 维护人: 开发团队