Files
hzdyjs/docs/开发文档/宿舍卫生检查API-根据学生ID查询-使用说明.md
T
2025-08-17 23:05:57 +08:00

279 lines
6.8 KiB
Markdown

# 宿舍卫生检查API - 根据学生ID查询使用说明
## 概述
本文档提供了宿舍卫生检查模块中新增的"根据学生ID查询卫生检查信息"API接口的详细使用说明。
## API接口信息
### 基本信息
- **接口地址**: `GET /dormHygieneCheck/dormHygieneCheck/student/{studentId}`
- **接口描述**: 根据学生ID查询该学生宿舍的所有卫生检查记录
- **请求方式**: GET
- **权限要求**: `dormHygieneCheck:dormHygieneCheck:query`
### 请求参数
| 参数名 | 类型 | 必填 | 位置 | 说明 |
|--------|------|------|------|------|
| studentId | Long | 是 | Path | 学生ID,关联xg_student_msg.id |
## 使用示例
### 1. 前端Vue调用示例
```javascript
// 在Vue组件中调用API
import { getHygieneChecksByStudentId } from '@/api/xg/xgss/dormHygieneCheck/dormHygieneCheck'
export default {
data() {
return {
studentId: 12345,
hygieneChecks: []
}
},
methods: {
async loadStudentHygieneChecks() {
try {
const response = await getHygieneChecksByStudentId(this.studentId)
if (response.code === 200) {
this.hygieneChecks = response.data
console.log('获取到卫生检查记录:', this.hygieneChecks)
} else {
this.$message.error(response.msg || '获取数据失败')
}
} catch (error) {
console.error('API调用失败:', error)
this.$message.error('网络请求失败')
}
}
},
mounted() {
this.loadStudentHygieneChecks()
}
}
```
### 2. 移动端uni-app调用示例
```javascript
// 在uni-app页面中调用API
export default {
data() {
return {
studentId: 12345,
hygieneChecks: []
}
},
methods: {
async getStudentHygieneChecks() {
try {
const response = await uni.request({
url: `${this.baseUrl}/dormHygieneCheck/dormHygieneCheck/student/${this.studentId}`,
method: 'GET',
header: {
'Authorization': `Bearer ${this.token}`,
'Content-Type': 'application/json'
}
})
if (response.data.code === 200) {
this.hygieneChecks = response.data.data
console.log('获取到卫生检查记录:', this.hygieneChecks)
} else {
uni.showToast({
title: response.data.msg || '获取数据失败',
icon: 'none'
})
}
} catch (error) {
console.error('API调用失败:', error)
uni.showToast({
title: '网络请求失败',
icon: 'none'
})
}
}
},
onLoad() {
this.getStudentHygieneChecks()
}
}
```
### 3. 后端Java调用示例
```java
// 在Service层中调用
@Service
public class StudentHygieneService {
@Autowired
private IXgDormHygieneCheckService hygieneCheckService;
/**
* 获取学生的卫生检查记录
*/
public List<XgDormHygieneCheckVo> getStudentHygieneChecks(Long studentId) {
if (studentId == null) {
throw new IllegalArgumentException("学生ID不能为空");
}
List<XgDormHygieneCheckVo> checks = hygieneCheckService.queryByStudentId(studentId);
// 可以在这里添加额外的业务逻辑
// 比如数据转换、权限验证等
return checks;
}
}
```
### 4. Python测试脚本示例
```python
import requests
import json
def test_student_hygiene_checks():
# 配置信息
base_url = "http://localhost:8080"
student_id = 12345
# 登录获取token(简化示例)
login_data = {
"username": "admin",
"password": "admin123",
"code": "1234",
"uuid": "test-uuid"
}
# 登录
login_response = requests.post(f"{base_url}/auth/login", json=login_data)
if login_response.status_code != 200:
print("登录失败")
return
token = login_response.json().get('data', {}).get('access_token')
if not token:
print("未获取到token")
return
# 调用API
headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
response = requests.get(
f"{base_url}/dormHygieneCheck/dormHygieneCheck/student/{student_id}",
headers=headers
)
if response.status_code == 200:
result = response.json()
if result.get('code') == 200:
data = result.get('data', [])
print(f"获取到 {len(data)} 条卫生检查记录")
for check in data:
print(f"- {check.get('checkTitle')} ({check.get('checkDate')})")
else:
print(f"API返回错误: {result.get('msg')}")
else:
print(f"请求失败: {response.status_code}")
if __name__ == "__main__":
test_student_hygiene_checks()
```
## 响应数据处理
### 1. 成功响应示例
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1,
"checkTitle": "2024年春季宿舍卫生检查",
"checkDate": "2024-03-15",
"checkerName": "张老师",
"roomCode": "1-101",
"roomName": "1号楼101室",
"totalScore": 85.5,
"hygieneGrade": "B",
"checkSummary": "整体卫生情况良好",
"createTime": "2024-03-15 10:00:00"
}
]
}
```
### 2. 空数据响应示例
```json
{
"code": 200,
"msg": "操作成功",
"data": []
}
```
### 3. 错误响应示例
```json
{
"code": 400,
"msg": "学生ID不能为空"
}
```
## 业务场景应用
### 1. 学生个人中心
- 学生登录后查看自己宿舍的卫生检查历史
- 展示检查结果、评分、改进建议等信息
### 2. 辅导员管理
- 辅导员查看所管理学生的宿舍卫生情况
- 统计分析学生的卫生检查趋势
### 3. 移动端应用
- 在手机APP中展示学生的卫生检查记录
- 推送卫生检查通知和结果
### 4. 数据统计
- 统计某个学生的卫生检查合格率
- 分析学生的卫生习惯改善情况
## 注意事项
### 1. 权限控制
- 确保调用方具有 `dormHygieneCheck:dormHygieneCheck:query` 权限
- 建议增加学生身份验证,确保只能查询自己的数据
### 2. 性能优化
- 对于大量数据的查询,建议添加分页功能
- 可以考虑添加缓存机制,减少数据库查询
### 3. 数据安全
- 验证学生ID的有效性
- 防止SQL注入等安全问题
### 4. 错误处理
- 妥善处理网络异常、权限不足等错误情况
- 提供友好的错误提示信息
## 相关文档
- [宿舍卫生检查管理API](./宿舍卫生检查管理API.md)
- [宿舍卫生检查学生评分API](./宿舍卫生检查学生评分API.md)
- [API文档基础规范](./API文档基础规范.md)
## 更新记录
| 日期 | 版本 | 更新内容 | 更新人 |
|------|------|----------|--------|
| 2025-01-03 | 1.0 | 创建使用说明文档 | zlwu |