279 lines
6.8 KiB
Markdown
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 | |