148 lines
4.3 KiB
Markdown
148 lines
4.3 KiB
Markdown
# 学生考核审核功能说明
|
|
|
|
## 📋 功能概述
|
|
|
|
学生考核审核功能允许班主任查看和管理自己班级学生的考核申请,确保班主任只能查看已提交的申请,不能查看草稿状态的申请。
|
|
|
|
## 🔐 权限控制
|
|
|
|
### 班主任查看权限
|
|
- **权限标识**: `assessment:approval:teacherClass`
|
|
- **数据范围**: 仅限当前登录用户作为班主任的班级
|
|
- **状态限制**: 只能查看已提交、班主任审核、已完成状态的申请
|
|
|
|
### 考核计划查看权限
|
|
- **权限标识**: `assessment:approval:available`
|
|
- **数据范围**: 所有进行中和已结束的考核计划
|
|
|
|
## 📊 数据过滤规则
|
|
|
|
### 班主任班级申请列表查询
|
|
|
|
#### 接口信息
|
|
- **URL**: `GET /assessment/approval/teacherClass`
|
|
- **权限**: `assessment:approval:teacherClass`
|
|
|
|
#### 查询条件
|
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
|--------|------|------|------|
|
|
| scheduleId | Long | 否 | 考核计划ID |
|
|
| studentNo | String | 否 | 学号(支持模糊查询) |
|
|
| studentName | String | 否 | 学生姓名(支持模糊查询) |
|
|
| status | String | 否 | 申请状态(2-已提交 3-班主任审核 6-已完成) |
|
|
| pageNum | Integer | 否 | 页码,默认1 |
|
|
| pageSize | Integer | 否 | 每页大小,默认10 |
|
|
|
|
#### 强制过滤条件
|
|
```sql
|
|
-- 班主任只能查看自己班级的申请
|
|
AND a.class_id IN (
|
|
SELECT id FROM xg_class_msg
|
|
WHERE class_teacher_id = #{teacherId}
|
|
AND deleted = 0 AND class_status = '1'
|
|
)
|
|
|
|
-- 排除草稿状态,只查看已提交、班主任审核、已完成的申请
|
|
AND a.status IN ('2', '3', '6')
|
|
```
|
|
|
|
#### 状态说明
|
|
| 状态码 | 状态名称 | 说明 |
|
|
|--------|----------|------|
|
|
| 1 | 草稿 | ❌ **班主任不可见** |
|
|
| 2 | 已提交 | ✅ 班主任可见 |
|
|
| 3 | 班主任审核 | ✅ 班主任可见 |
|
|
| 6 | 已完成 | ✅ 班主任可见 |
|
|
|
|
### 可用考核计划查询
|
|
|
|
#### 接口信息
|
|
- **URL**: `GET /assessment/approval/available`
|
|
- **权限**: `assessment:approval:available`
|
|
|
|
#### 查询条件
|
|
```sql
|
|
-- 只查询进行中和已结束的计划
|
|
WHERE deleted = 0
|
|
AND status IN ('2', '3')
|
|
ORDER BY start_time DESC
|
|
```
|
|
|
|
#### 计划状态说明
|
|
| 状态码 | 状态名称 | 说明 |
|
|
|--------|----------|------|
|
|
| 1 | 未开始 | ❌ 不可用 |
|
|
| 2 | 进行中 | ✅ 可用 |
|
|
| 3 | 已结束 | ✅ 可用 |
|
|
|
|
## 🔍 业务逻辑
|
|
|
|
### 班主任查看流程
|
|
1. **身份验证**: 获取当前登录用户ID
|
|
2. **班级查询**: 查询该用户作为班主任的班级列表
|
|
3. **申请过滤**: 只查询这些班级下状态为已提交、班主任审核、已完成的申请
|
|
4. **数据返回**: 返回过滤后的申请列表
|
|
|
|
### 数据安全保证
|
|
- **权限隔离**: 班主任只能查看自己班级的数据
|
|
- **状态过滤**: 自动排除草稿状态的申请
|
|
- **数据完整性**: 包含完整的申请信息、状态名称、审核人信息等
|
|
|
|
## 📝 使用示例
|
|
|
|
### 基本查询
|
|
```bash
|
|
GET /assessment/approval/teacherClass
|
|
```
|
|
|
|
### 按状态筛选
|
|
```bash
|
|
GET /assessment/approval/teacherClass?status=2
|
|
```
|
|
|
|
### 按学生姓名搜索
|
|
```bash
|
|
GET /assessment/approval/teacherClass?studentName=张三
|
|
```
|
|
|
|
### 分页查询
|
|
```bash
|
|
GET /assessment/approval/teacherClass?pageNum=1&pageSize=10
|
|
```
|
|
|
|
## 🧪 测试验证
|
|
|
|
### 测试脚本
|
|
使用 `test/学生考核审核API测试脚本.py` 进行功能验证:
|
|
|
|
```bash
|
|
cd test
|
|
python 学生考核审核API测试脚本.py
|
|
```
|
|
|
|
### 测试要点
|
|
1. ✅ 验证班主任只能查看已提交、班主任审核、已完成状态的申请
|
|
2. ✅ 验证草稿状态的申请不会被班主任看到
|
|
3. ✅ 验证分页查询功能正常
|
|
4. ✅ 验证筛选条件功能正常
|
|
5. ✅ 验证只返回班主任自己班级的数据
|
|
|
|
## ⚠️ 注意事项
|
|
|
|
1. **草稿状态保护**: 班主任无法查看学生草稿状态的申请,保护学生隐私
|
|
2. **权限验证**: 所有接口都需要相应的权限标识
|
|
3. **数据一致性**: 确保返回的数据状态与业务规则一致
|
|
4. **性能优化**: 使用索引优化查询性能,避免全表扫描
|
|
|
|
## 📚 相关文档
|
|
|
|
- [学生考核管理系统API文档](./API/学生考核管理系统API.md)
|
|
- [API文档基础规范](./API/API文档基础规范.md)
|
|
- [后端开发规范](../.cursor/cursorrules-backend.md)
|
|
|
|
---
|
|
|
|
**文档版本**: v1.0.0
|
|
**创建时间**: 2025-01-03
|
|
**最后更新**: 2025-01-03
|
|
**维护人员**: Cursor AI |