# 后端服务重启指南 ## 问题说明 修改了 `MartialScheduleArrangeServiceImpl.java` 文件添加了空值检查,需要重启后端服务以加载新代码。 ## 修改的文件 - `src/main/java/org/springblade/modules/martial/service/impl/MartialScheduleArrangeServiceImpl.java` - 第 394-398 行:集体项目空值检查 - 第 430-434 行:个人项目空值检查 ## 重启步骤 ### 1. 停止当前运行的后端服务 在当前运行后端服务的命令行窗口中按 `Ctrl+C` 停止服务。 ### 2. 重新编译项目(可选,推荐) ```bash cd D:\workspace\31.比赛项目\project\martial-master mvn clean compile ``` ### 3. 重启后端服务 使用之前启动后端的相同命令重新启动。通常是以下之一: **选项A - 使用 Maven 直接运行:** ```bash mvn spring-boot:run ``` **选项B - 使用已打包的 JAR 文件:** ```bash java -jar target/blade-martial-*.jar ``` **选项C - 在 IDE (如 IntelliJ IDEA 或 Eclipse) 中:** 右键点击主类 `Application.java` → Run ### 4. 验证服务启动成功 等待服务启动完成(看到类似 "Started Application in X seconds" 的日志)。 ### 5. 重新测试 API ```bash curl -X POST "http://localhost:8123/martial/schedule/auto-arrange" -H "Content-Type: application/json" -d "{\"competitionId\": 200}" ``` ## 预期结果 修复后应该不再出现 NPE 错误,会返回以下情况之一: 1. **成功**: `{"code":200,"success":true,...}` - 自动编排成功 2. **警告日志**: 后端日志中会显示 "项目不存在, projectId: XXX, 跳过该分组" 如果有参赛者关联了不存在的项目 ## 如果仍有问题 请执行数据验证脚本检查数据完整性: ```bash mysql -uroot -proot123 martial_db < database/martial-db/debug_check.sql ``` 查看是否所有参赛者都有有效的 project_id 关联。