3.5 KiB
3.5 KiB
服务商首页收益数据统一
日期: 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()
修改点
- API参数
// 使用 month 参数,与收益统计标签页一致
params: { type: 'month' }
- 字段映射
// 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. 清除缓存重新编译
# 小程序开发工具
1. 点击"清缓存" → "清除数据缓存"
2. 点击"编译"
2. 测试服务商首页
- 打开小程序
- 切换到"服务商"身份
- 查看首页"本月收益"
- 应该显示 ¥222
3. 对比收益查看页面
- 点击"提取收益"按钮
- 进入收益查看页面
- 点击"收益统计"标签
- 选择"本月"
- 查看"总收益"
- 应该与首页的"本月收益"一致 (¥222)
预期效果
修改后
服务商首页:
本月收益: ¥222
收益查看页面 - 收益统计 - 本月:
课程数: 1节
服务时长: 1小时
总收益: ¥222
结果: 两个页面的"本月收益/总收益"完全一致 ✅
API对比
type=overview (总收益概览)
{
totalEarnings: 222, // 总收益
settledEarnings: 222, // 已结算
pendingEarnings: 0, // 待结算
withdrawableEarnings: 122 // 可提取
}
type=month (本月统计)
{
earnings: 222, // 本月总收益
courseCount: 1, // 课程数
studentCount: 1, // 学生数
duration: 1 // 服务时长(小时)
}
注意事项
- 数据一致性: 服务商首页的"本月收益"现在与收益统计的"本月"标签完全一致
- 字段映射: 使用
earnings字段 (不是totalEarnings) - 类型转换: 使用
Number()确保数据类型一致 - 日志输出: 添加了详细的日志,便于调试
相关文件
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(后端服务)