171 lines
3.5 KiB
Markdown
171 lines
3.5 KiB
Markdown
# 服务商首页收益数据统一
|
|
|
|
**日期:** 2026-01-31
|
|
**问题:** 服务商首页的"本月收益"与收益查看页面的"收益统计-本月"数据不一致
|
|
|
|
---
|
|
|
|
## 问题描述
|
|
|
|
### 修改前
|
|
|
|
**收益查看页面 - 收益统计标签页 (本月)**:
|
|
- API: `/api/provider/earnings/stats?type=month`
|
|
- 返回: `{ earnings: 222, courseCount: 1, studentCount: 1, duration: 1 }`
|
|
- 显示: 总收益 ¥222
|
|
|
|
**服务商首页**:
|
|
- 显示: 本月收益 ¥0
|
|
|
|
**问题:** 服务商首页没有正确调用API,导致本月收益显示为0。
|
|
|
|
---
|
|
|
|
## 解决方案
|
|
|
|
### 修改内容
|
|
|
|
**文件:** `peidu/uniapp/pages/index/components/ServiceProviderHome.vue`
|
|
|
|
**方法:** `loadMonthEarnings()`
|
|
|
|
### 修改点
|
|
|
|
1. **API参数**
|
|
```javascript
|
|
// 使用 month 参数,与收益统计标签页一致
|
|
params: { type: 'month' }
|
|
```
|
|
|
|
2. **字段映射**
|
|
```javascript
|
|
// API返回数据结构
|
|
{
|
|
earnings: 222, // 本月总收益
|
|
courseCount: 1, // 课程数
|
|
studentCount: 1, // 学生数
|
|
duration: 1 // 服务时长(小时)
|
|
}
|
|
|
|
// 前端映射
|
|
this.monthEarnings = {
|
|
total: Number(res.data.earnings) || 0, // 本月总收益
|
|
settled: 0, // 本月统计不区分已结算/待结算
|
|
pending: 0,
|
|
withdrawable: 0
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 数据流
|
|
|
|
```
|
|
前端请求
|
|
↓
|
|
/api/provider/earnings/stats?type=month
|
|
↓
|
|
ProviderController.getEarningsStats()
|
|
↓
|
|
ProviderServiceImpl.getEarningsStats()
|
|
↓
|
|
返回数据:
|
|
{
|
|
earnings: 222, // 本月总收益
|
|
courseCount: 1, // 课程数
|
|
studentCount: 1, // 学生数
|
|
duration: 1 // 服务时长
|
|
}
|
|
↓
|
|
前端显示:
|
|
- 服务商首页: 本月收益 ¥222 ✅
|
|
- 收益查看页面(本月标签): 总收益 ¥222 ✅
|
|
```
|
|
|
|
---
|
|
|
|
## 测试步骤
|
|
|
|
### 1. 清除缓存重新编译
|
|
```bash
|
|
# 小程序开发工具
|
|
1. 点击"清缓存" → "清除数据缓存"
|
|
2. 点击"编译"
|
|
```
|
|
|
|
### 2. 测试服务商首页
|
|
1. 打开小程序
|
|
2. 切换到"服务商"身份
|
|
3. 查看首页"本月收益"
|
|
4. 应该显示 ¥222
|
|
|
|
### 3. 对比收益查看页面
|
|
1. 点击"提取收益"按钮
|
|
2. 进入收益查看页面
|
|
3. 点击"收益统计"标签
|
|
4. 选择"本月"
|
|
5. 查看"总收益"
|
|
6. 应该与首页的"本月收益"一致 (¥222)
|
|
|
|
---
|
|
|
|
## 预期效果
|
|
|
|
### 修改后
|
|
|
|
**服务商首页:**
|
|
```
|
|
本月收益: ¥222
|
|
```
|
|
|
|
**收益查看页面 - 收益统计 - 本月:**
|
|
```
|
|
课程数: 1节
|
|
服务时长: 1小时
|
|
总收益: ¥222
|
|
```
|
|
|
|
**结果:** 两个页面的"本月收益/总收益"完全一致 ✅
|
|
|
|
---
|
|
|
|
## API对比
|
|
|
|
### type=overview (总收益概览)
|
|
```javascript
|
|
{
|
|
totalEarnings: 222, // 总收益
|
|
settledEarnings: 222, // 已结算
|
|
pendingEarnings: 0, // 待结算
|
|
withdrawableEarnings: 122 // 可提取
|
|
}
|
|
```
|
|
|
|
### type=month (本月统计)
|
|
```javascript
|
|
{
|
|
earnings: 222, // 本月总收益
|
|
courseCount: 1, // 课程数
|
|
studentCount: 1, // 学生数
|
|
duration: 1 // 服务时长(小时)
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 注意事项
|
|
|
|
1. **数据一致性**: 服务商首页的"本月收益"现在与收益统计的"本月"标签完全一致
|
|
2. **字段映射**: 使用 `earnings` 字段 (不是 `totalEarnings`)
|
|
3. **类型转换**: 使用 `Number()` 确保数据类型一致
|
|
4. **日志输出**: 添加了详细的日志,便于调试
|
|
|
|
---
|
|
|
|
## 相关文件
|
|
|
|
- `peidu/uniapp/pages/index/components/ServiceProviderHome.vue` (服务商首页)
|
|
- `peidu/uniapp/src/provider-package/pages/provider/earnings.vue` (收益查看页面)
|
|
- `peidu/backend/src/main/java/com/peidu/controller/ProviderController.java` (后端API)
|
|
- `peidu/backend/src/main/java/com/peidu/service/impl/ProviderServiceImpl.java` (后端服务)
|