peixue-dev/peidu/docs/fixes/2026-01-23-家长端成长记录功能实现/📋API接口对照表.md

450 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📋 家长端成长记录功能 - API接口对照表
## 🎯 接口概览
| 序号 | 接口名称 | 请求方式 | 接口路径 | 状态 |
|------|---------|---------|---------|------|
| 1 | 获取成长记录列表 | GET | `/api/growth-record/parent/list` | ✅ 已实现 |
| 2 | 获取成长记录详情 | GET | `/api/growth-record/parent/{id}` | ✅ 已实现 |
| 3 | 标记为已读 | POST | `/api/growth-record/parent/{id}/read` | ✅ 已实现 |
| 4 | 获取周反馈列表 | GET | `/api/growth-record/parent/weekly/list` | ✅ 已实现 |
| 5 | 获取月反馈列表 | GET | `/api/growth-record/parent/monthly/list` | ✅ 已实现 |
---
## 📝 接口详细说明
### 1. 获取成长记录列表
**接口地址:** `GET /api/growth-record/parent/list`
**功能说明:** 家长端获取学生的成长记录列表,支持按类型筛选和分页
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|--------|------|------|------|------|
| studentId | Long | 是 | 学生ID | 1 |
| recordType | String | 否 | 记录类型daily/weekly/monthly | daily |
| startDate | String | 否 | 开始日期 | 2026-01-01 |
| endDate | String | 否 | 结束日期 | 2026-01-31 |
| page | Integer | 否 | 页码默认1 | 1 |
| size | Integer | 否 | 每页数量默认10 | 10 |
**请求示例:**
```bash
GET /api/growth-record/parent/list?studentId=1&recordType=daily&page=1&size=10
```
**响应参数:**
| 参数名 | 类型 | 说明 |
|--------|------|------|
| code | Integer | 状态码200成功 |
| message | String | 提示信息 |
| data | Object | 分页数据 |
| data.records | Array | 记录列表 |
| data.total | Long | 总记录数 |
| data.size | Long | 每页数量 |
| data.current | Long | 当前页码 |
| data.pages | Long | 总页数 |
**记录对象Record**
| 参数名 | 类型 | 说明 |
|--------|------|------|
| id | Long | 记录ID |
| orderId | Long | 订单ID |
| studentId | Long | 学生ID |
| studentName | String | 学生姓名 |
| teacherId | Long | 陪伴员ID |
| teacherName | String | 陪伴员姓名 |
| recordDate | String | 记录日期 |
| recordType | String | 记录类型daily/weekly/monthly |
| recordTypeName | String | 记录类型名称 |
| content | String | 反馈内容 |
| imageList | Array | 图片列表 |
| videoList | Array | 视频列表 |
| duration | Integer | 服务时长(分钟) |
| durationText | String | 服务时长文本 |
| status | Integer | 状态1已提交0草稿 |
| statusName | String | 状态名称 |
| createTime | String | 创建时间 |
**响应示例:**
```json
{
"code": 200,
"message": "success",
"data": {
"records": [
{
"id": 1,
"orderId": 101,
"studentId": 1,
"studentName": "小明",
"teacherId": 1,
"teacherName": "张老师",
"recordDate": "2026-01-23",
"recordType": "daily",
"recordTypeName": "每日反馈",
"content": "今天学习状态很好,完成了所有作业。数学题目理解能力有所提升。",
"imageList": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
],
"videoList": [
"https://example.com/video1.mp4"
],
"duration": 120,
"durationText": "120分钟",
"status": 1,
"statusName": "已提交",
"createTime": "2026-01-23 18:00:00"
}
],
"total": 10,
"size": 10,
"current": 1,
"pages": 1
}
}
```
---
### 2. 获取成长记录详情
**接口地址:** `GET /api/growth-record/parent/{id}`
**功能说明:** 家长端获取成长记录的详细信息
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|--------|------|------|------|------|
| id | Long | 是 | 记录ID路径参数 | 1 |
**请求示例:**
```bash
GET /api/growth-record/parent/1
```
**响应参数:**
与"获取成长记录列表"中的记录对象相同
**响应示例:**
```json
{
"code": 200,
"message": "success",
"data": {
"id": 1,
"orderId": 101,
"studentId": 1,
"studentName": "小明",
"teacherId": 1,
"teacherName": "张老师",
"recordDate": "2026-01-23",
"recordType": "daily",
"recordTypeName": "每日反馈",
"content": "今天学习状态很好,完成了所有作业。数学题目理解能力有所提升。在学习过程中表现出很强的专注力,能够独立完成大部分题目。",
"imageList": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg",
"https://example.com/image3.jpg"
],
"videoList": [
"https://example.com/video1.mp4"
],
"duration": 120,
"durationText": "120分钟",
"status": 1,
"statusName": "已提交",
"createTime": "2026-01-23 18:00:00"
}
}
```
---
### 3. 标记为已读
**接口地址:** `POST /api/growth-record/parent/{id}/read`
**功能说明:** 家长端标记成长记录为已读
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|--------|------|------|------|------|
| id | Long | 是 | 记录ID路径参数 | 1 |
**请求示例:**
```bash
POST /api/growth-record/parent/1/read
```
**响应参数:**
| 参数名 | 类型 | 说明 |
|--------|------|------|
| code | Integer | 状态码200成功 |
| message | String | 提示信息 |
| data | Boolean | 操作结果true成功 |
**响应示例:**
```json
{
"code": 200,
"message": "标记成功",
"data": true
}
```
---
### 4. 获取周反馈列表
**接口地址:** `GET /api/growth-record/parent/weekly/list`
**功能说明:** 家长端获取学生的周反馈列表
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|--------|------|------|------|------|
| studentId | Long | 是 | 学生ID | 1 |
| startDate | String | 否 | 开始日期 | 2026-01-01 |
| endDate | String | 否 | 结束日期 | 2026-01-31 |
| page | Integer | 否 | 页码默认1 | 1 |
| size | Integer | 否 | 每页数量默认10 | 10 |
**请求示例:**
```bash
GET /api/growth-record/parent/weekly/list?studentId=1&page=1&size=10
```
**响应参数:**
与"获取成长记录列表"相同但recordType固定为"weekly"
**响应示例:**
```json
{
"code": 200,
"message": "success",
"data": {
"records": [
{
"id": 2,
"studentId": 1,
"studentName": "小明",
"teacherId": 1,
"teacherName": "张老师",
"recordDate": "2026-01-19",
"recordType": "weekly",
"recordTypeName": "周反馈",
"content": "本周学习状态良好,完成了所有作业...",
"imageList": [],
"videoList": [],
"duration": 600,
"durationText": "600分钟",
"status": 1,
"statusName": "已提交",
"createTime": "2026-01-19 18:00:00"
}
],
"total": 5,
"size": 10,
"current": 1,
"pages": 1
}
}
```
---
### 5. 获取月反馈列表
**接口地址:** `GET /api/growth-record/parent/monthly/list`
**功能说明:** 家长端获取学生的月反馈列表
**请求参数:**
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|--------|------|------|------|------|
| studentId | Long | 是 | 学生ID | 1 |
| startDate | String | 否 | 开始日期 | 2026-01-01 |
| endDate | String | 否 | 结束日期 | 2026-01-31 |
| page | Integer | 否 | 页码默认1 | 1 |
| size | Integer | 否 | 每页数量默认10 | 10 |
**请求示例:**
```bash
GET /api/growth-record/parent/monthly/list?studentId=1&page=1&size=10
```
**响应参数:**
与"获取成长记录列表"相同但recordType固定为"monthly"
**响应示例:**
```json
{
"code": 200,
"message": "success",
"data": {
"records": [
{
"id": 3,
"studentId": 1,
"studentName": "小明",
"teacherId": 1,
"teacherName": "张老师",
"recordDate": "2026-01-31",
"recordType": "monthly",
"recordTypeName": "月反馈",
"content": "本月学习进步明显,各科成绩都有提升...",
"imageList": [],
"videoList": [],
"duration": 2400,
"durationText": "2400分钟",
"status": 1,
"statusName": "已提交",
"createTime": "2026-01-31 18:00:00"
}
],
"total": 2,
"size": 10,
"current": 1,
"pages": 1
}
}
```
---
## 🔐 权限说明
### 认证方式
- 使用JWT Token认证
- Token放在请求头`Authorization: Bearer {token}`
### 权限验证
- 家长只能查看自己孩子的成长记录
- 需要验证studentId与当前登录家长的关联关系
---
## 📊 状态码说明
| 状态码 | 说明 |
|--------|------|
| 200 | 请求成功 |
| 400 | 请求参数错误 |
| 401 | 未登录或token过期 |
| 403 | 无权限访问 |
| 404 | 记录不存在 |
| 500 | 服务器内部错误 |
---
## 🧪 测试用例
### 测试用例 1获取每日反馈列表
```bash
curl -X GET "http://localhost:8080/api/growth-record/parent/list?studentId=1&recordType=daily&page=1&size=10" \
-H "Authorization: Bearer YOUR_TOKEN"
```
### 测试用例 2获取周反馈列表
```bash
curl -X GET "http://localhost:8080/api/growth-record/parent/weekly/list?studentId=1&page=1&size=10" \
-H "Authorization: Bearer YOUR_TOKEN"
```
### 测试用例 3获取月反馈列表
```bash
curl -X GET "http://localhost:8080/api/growth-record/parent/monthly/list?studentId=1&page=1&size=10" \
-H "Authorization: Bearer YOUR_TOKEN"
```
### 测试用例 4获取记录详情
```bash
curl -X GET "http://localhost:8080/api/growth-record/parent/1" \
-H "Authorization: Bearer YOUR_TOKEN"
```
### 测试用例 5标记为已读
```bash
curl -X POST "http://localhost:8080/api/growth-record/parent/1/read" \
-H "Authorization: Bearer YOUR_TOKEN"
```
---
## 📝 前端调用示例
### 使用request工具
```javascript
import request from '@/utils/request'
// 1. 获取成长记录列表
async function getGrowthRecordList(params) {
const res = await request.get('/api/growth-record/parent/list', { params })
return res.data
}
// 2. 获取成长记录详情
async function getGrowthRecordDetail(id) {
const res = await request.get(`/api/growth-record/parent/${id}`)
return res.data
}
// 3. 标记为已读
async function markAsRead(id) {
const res = await request.post(`/api/growth-record/parent/${id}/read`)
return res.data
}
// 4. 获取周反馈列表
async function getWeeklyList(params) {
const res = await request.get('/api/growth-record/parent/weekly/list', { params })
return res.data
}
// 5. 获取月反馈列表
async function getMonthlyList(params) {
const res = await request.get('/api/growth-record/parent/monthly/list', { params })
return res.data
}
```
---
## 🔄 与陪伴员端接口对比
| 功能 | 家长端接口 | 陪伴员端接口 | 区别 |
|------|-----------|-------------|------|
| 获取列表 | `/api/growth-record/parent/list` | `/api/growth-record/daily/list` | 家长端按studentId筛选陪伴员端按teacherId筛选 |
| 获取详情 | `/api/growth-record/parent/{id}` | `/api/growth-record/daily/{id}` | 家长端只读,陪伴员端可编辑 |
| 创建记录 | ❌ 无 | `/api/growth-record/daily` | 只有陪伴员可以创建 |
| 更新记录 | ❌ 无 | `/api/growth-record/daily/{id}` | 只有陪伴员可以更新 |
| 删除记录 | ❌ 无 | `/api/growth-record/daily/{id}` | 只有陪伴员可以删除 |
| 标记已读 | `/api/growth-record/parent/{id}/read` | ❌ 无 | 只有家长需要标记已读 |
---
**编写日期:** 2026-01-23
**编写人员:** Kiro AI Assistant
**版本:** v1.0