418 lines
12 KiB
Markdown
418 lines
12 KiB
Markdown
# 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**
|