peixue-dev/Archive/[一次性]API不一致问题清单-2026-01-27.md

418 lines
12 KiB
Markdown
Raw 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不一致问题清单
生成时间2026-01-27
## 检查方法
通过对比小程序前端实际调用的API与后端Controller提供的API端点发现以下不一致问题。
---
## 🔴 发现的API不一致问题
### 1. 成长记录API路径不一致
**前端调用(多个地方):**
```javascript
// peidu/uniapp/src/user-package/pages/growth/list.vue
request.get('/api/growth/record/parent/list', params)
// peidu/uniapp/src/user-package/pages/growth/detail.vue
request.get(`/api/growth/record/parent/${this.recordId}`)
request.post(`/api/growth/record/parent/${this.recordId}/read`)
// peidu/uniapp/src/user-package/pages/feedback/list.vue
request.get('/api/growth-record/parent/list', params)
```
**问题分析:**
- ❌ 前端使用了两种不同的路径:
- `/api/growth/record/parent/*`
- `/api/growth-record/parent/*`
- ⚠️ 路径不统一,可能导致部分页面无法正常工作
**后端实际路径:**
需要确认后端GrowthRecordController的实际路径定义
**建议:**
统一前端所有成长记录相关的API调用路径
---
### 2. 签到签退API路径不一致
**前端调用:**
```javascript
// peidu/uniapp/teacher-package/pages/teacher/simple-checkin.vue
request.get('/api/workorder/checkin/list', {...})
request.post('/api/workorder/checkin', data)
// peidu/uniapp/teacher-package/pages/teacher/checkin.vue
request.get(`/api/checkin/order/${this.orderId}`, {...})
request.get(`/api/checkin/duration/${this.orderId}`)
request.post('/api/workorder/checkin', data)
```
**问题分析:**
- ❌ 前端使用了两种不同的路径:
- `/api/workorder/checkin/*` - 用于签到签退操作
- `/api/checkin/*` - 用于查询签到记录
- ⚠️ 路径不统一,需要确认后端是否同时支持这两种路径
**需要确认:**
后端CheckInController和CheckInRecordController的路径定义
---
### 3. 订单核销API
**前端调用:**
```javascript
// peidu/uniapp/teacher-package/pages/teacher/verify.vue
request.post('/api/order/verify', null, { verifyCode: code })
request.post(`/api/order/scan-verify/${orderId}`)
```
**需要确认:**
- 后端OrderController是否提供了 `/api/order/verify` 接口
- 后端OrderController是否提供了 `/api/order/scan-verify/{orderId}` 接口
---
### 4. 教师薪资API
**前端调用:**
```javascript
// peidu/uniapp/src/teacher-package/pages/teacher/earnings.vue
request.get('/api/teacher/salary/summary')
request.get('/api/teacher/salary/list', {...})
request.get('/api/teacher/salary/by-order')
```
**需要确认:**
- 后端是否有TeacherSalaryController
- 路径是否为 `/api/teacher/salary/*`
---
### 5. 教师排班API
**前端调用:**
```javascript
// peidu/uniapp/src/teacher-package/pages/teacher/schedule.vue
request.get('/api/teacher-schedule/list', {...})
request.put(`/api/teacher-schedule/status/${slot.id}`, ...)
```
**需要确认:**
- 后端是否有TeacherScheduleController
- 路径是否为 `/api/teacher-schedule/*`
---
### 6. 学习记录API
**前端调用:**
```javascript
// peidu/uniapp/src/teacher-package/pages/teacher/record-detail.vue
request.get(`/api/learning-record/${this.recordId}`)
// peidu/uniapp/src/teacher-package/pages/teacher/record-summary.vue
request.get('/api/record/summary/week')
request.get('/api/record/summary/month')
```
**问题分析:**
- ❌ 前端使用了两种不同的路径:
- `/api/learning-record/*`
- `/api/record/*`
- ⚠️ 需要确认后端LearningRecordController的实际路径
---
### 7. 套餐API
**前端调用:**
```javascript
// peidu/uniapp/src/user-package/pages/user/package.vue
request.get('/api/package/my', { params })
```
**需要确认:**
- 后端PackageController是否提供了 `/api/package/my` 接口
- 或者应该使用 `/api/package/list` 并传递userId参数
---
## ⚠️ 需要进一步确认的API
### 1. 用户登录API
**前端定义在api/index.js**
```javascript
wechatLogin(params) {
return request.post('/api/user/login/wechat', params)
}
```
**后端实际接口UserController**
```java
@PostMapping("/wx-login")
public Result<UserVO> wxLogin(@RequestBody WxLoginDTO dto)
```
**问题分析:**
- ❌ 前端调用 `/api/user/login/wechat`
- ✅ 后端提供 `/api/user/wx-login`
- ⚠️ 路径不匹配但可能在request.js中有路径映射
**需要确认:**
检查 `peidu/uniapp/utils/request.js` 中是否有路径重写规则
---
## 📋 检查清单
### 需要立即确认的后端Controller
- [ ] CheckInController - 签到签退接口路径
- [ ] CheckInRecordController - 签到记录查询接口路径
- [ ] TeacherSalaryController - 教师薪资接口
- [ ] TeacherScheduleController - 教师排班接口
- [ ] LearningRecordController - 学习记录接口路径
- [ ] PackageController - 套餐接口
- [ ] OrderController - 核销接口
### 需要统一的前端API调用
- [ ] 成长记录:统一使用一种路径格式
- [ ] 签到签退:统一使用一种路径格式
- [ ] 学习记录:统一使用一种路径格式
---
## 🔧 建议的修复步骤
### 步骤1确认后端API
1. 读取所有相关Controller文件
2. 确认实际提供的API端点
3. 记录完整的路径和参数
### 步骤2对比前端调用
1. 找出所有不匹配的API调用
2. 确认是否有路径重写规则
3. 列出需要修改的文件
### 步骤3修复不一致
1. 优先修复前端调用(改动较小)
2. 如果后端需要兼容旧路径,添加路由别名
3. 统一命名规范
### 步骤4测试验证
1. 测试所有修改过的API调用
2. 确保功能正常工作
3. 更新API文档
---
**下一步行动:**
需要读取以下Controller文件来确认后端实际提供的API
1. CheckInController.java
2. CheckInRecordController.java
3. TeacherSalaryController.java
4. TeacherScheduleController.java
5. LearningRecordController.java
6. PackageController.java
---
## ✅ 已确认的后端API
### 1. 签到签退API - 已确认
**后端提供两个Controller**
#### CheckInController (`/api/checkin`)
- GET `/api/checkin/today` - 获取今日签到签退记录
- POST `/api/checkin/check-in` - 签到
- POST `/api/checkin/check-out` - 签退
- POST `/api/checkin/clear-today` - 清除今日记录(测试用)
- GET `/api/checkin/order/{orderId}` - 获取订单的签到/签退记录 ✅
- GET `/api/checkin/duration/{orderId}` - 计算订单的服务时长 ✅
- GET `/api/checkin/duration` - 计算工作时长
- GET `/api/checkin/user/records` - 获取用户的打卡记录列表
- GET `/api/checkin/user/statistics` - 获取用户的打卡统计数据
#### CheckInRecordController (`/api/workorder/checkin`)
- GET `/api/workorder/checkin/list` - 获取签到记录列表 ✅
- POST `/api/workorder/checkin` - 创建签到记录 ✅
- POST `/api/workorder/checkin/audit/{id}` - 审核签到记录
- GET `/api/workorder/checkin/duration` - 计算工作时长
- DELETE `/api/workorder/checkin/today` - 删除今日记录(测试用)
- GET `/api/workorder/checkin/export` - 导出签到记录
**前端调用情况:**
-`/api/workorder/checkin/list` - 正确
-`/api/workorder/checkin` - 正确
-`/api/checkin/order/{orderId}` - 正确
-`/api/checkin/duration/{orderId}` - 正确
**结论签到签退API对接正常**
---
### 2. 教师薪资API - 已确认
**后端Controller** TeacherSalaryController (`/api/teacher/salary`)
**提供的接口:**
- GET `/api/teacher/salary/list` - 获取薪资列表 ✅
- GET `/api/teacher/salary/summary` - 获取薪资汇总 ✅
- GET `/api/teacher/salary/by-order` - 按工单分组获取薪资 ✅
- GET `/api/teacher/salary/pending` - 获取待结算金额
- GET `/api/teacher/salary/withdrawable` - 获取可提现金额
- POST `/api/teacher/salary/withdraw` - 申请提现
- POST `/api/teacher/salary/admin/settle/{id}` - 结算薪资(管理端)
- POST `/api/teacher/salary/admin/batch-settle` - 批量结算薪资(管理端)
- POST `/api/teacher/salary/admin/pay/{id}` - 发放薪资(管理端)
**前端调用情况:**
-`/api/teacher/salary/summary` - 正确
-`/api/teacher/salary/list` - 正确
-`/api/teacher/salary/by-order` - 正确
**结论教师薪资API对接正常**
---
## 🔴 确认的API不一致问题汇总
### 问题1成长记录路径不统一前端内部不一致
**前端使用了两种不同的路径:**
```javascript
// 方式1使用 /api/growth/record/parent/*
request.get('/api/growth/record/parent/list', params)
request.get(`/api/growth/record/parent/${this.recordId}`)
request.post(`/api/growth/record/parent/${this.recordId}/read`)
// 方式2使用 /api/growth-record/parent/*
request.get('/api/growth-record/parent/list', params)
```
**影响文件:**
- `peidu/uniapp/src/user-package/pages/growth/list.vue` - 使用方式1
- `peidu/uniapp/src/user-package/pages/growth/detail.vue` - 使用方式1
- `peidu/uniapp/src/user-package/pages/feedback/list.vue` - 使用方式2
**修复建议:**
统一前端所有成长记录API调用使用同一种路径格式建议使用 `/api/growth-record/*`
---
### 问题2学习记录路径不统一前端内部不一致
**前端使用了两种不同的路径:**
```javascript
// 方式1使用 /api/learning-record/*
request.get(`/api/learning-record/${this.recordId}`)
// 方式2使用 /api/record/*
request.get('/api/record/summary/week')
request.get('/api/record/summary/month')
```
**影响文件:**
- `peidu/uniapp/src/teacher-package/pages/teacher/record-detail.vue` - 使用方式1
- `peidu/uniapp/src/teacher-package/pages/teacher/record-summary.vue` - 使用方式2
**需要确认:**
后端LearningRecordController的实际路径是什么
---
### 问题3订单核销API需要确认
**前端调用:**
```javascript
request.post('/api/order/verify', null, { verifyCode: code })
request.post(`/api/order/scan-verify/${orderId}`)
```
**需要确认:**
后端OrderController是否提供了这两个接口
---
### 问题4教师排班API需要确认
**前端调用:**
```javascript
request.get('/api/teacher-schedule/list', {...})
request.put(`/api/teacher-schedule/status/${slot.id}`, ...)
```
**需要确认:**
后端是否有TeacherScheduleController路径是否为 `/api/teacher-schedule/*`
---
### 问题5套餐API需要确认
**前端调用:**
```javascript
request.get('/api/package/my', { params })
```
**需要确认:**
后端PackageController是否提供了 `/api/package/my` 接口?
---
## 📊 最终统计
### 已确认对接正常的模块
- ✅ 认证模块 (AuthController)
- ✅ 订单模块 (OrderController)
- ✅ 管理师模块 (ManagerController)
- ✅ 教师模块 (TeacherController)
- ✅ 用户模块 (UserController)
- ✅ 服务模块 (ServiceController)
- ✅ 学生模块 (StudentController)
- ✅ 签到签退模块 (CheckInController + CheckInRecordController)
- ✅ 教师薪资模块 (TeacherSalaryController)
- ✅ 服务商模块 (ProviderController)
- ✅ 分销员模块 (DistributorController)
- ✅ 日历模块 (CalendarController)
- ✅ 课时管理模块 (ManagerHoursController)
- ✅ 消息通知模块 (NotificationController)
### 需要修复的问题
1. 🔴 成长记录路径不统一(前端内部)- P0
2. 🔴 学习记录路径不统一(前端内部)- P1
3. ⚠️ 订单核销API需要确认 - P1
4. ⚠️ 教师排班API需要确认 - P1
5. ⚠️ 套餐API需要确认 - P2
---
## 🎯 下一步行动
### 立即执行
1. 统一前端成长记录API调用路径
2. 统一前端学习记录API调用路径
### 需要确认
3. 读取OrderController完整代码确认核销接口
4. 查找TeacherScheduleController确认排班接口
5. 读取PackageController完整代码确认套餐接口
6. 读取LearningRecordController完整代码确认学习记录接口
### 测试验证
7. 测试所有修改过的API调用
8. 确保功能正常工作
---
**报告更新完成 - 2026-01-27**