peixue-dev/Archive/[一次性]服务商首页收益统一-2026-01-31.md

171 lines
3.5 KiB
Markdown
Raw Normal View History

2026-02-28 17:26:03 +08:00
# 服务商首页收益数据统一
**日期:** 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` (后端服务)