# 后端服务重启指南

## 问题说明
修改了 `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 关联。
