# 服务商首页收益数据统一 **日期:** 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` (后端服务)