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

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()

修改点

  1. API参数
// 使用 month 参数,与收益统计标签页一致
params: { type: 'month' }
  1. 字段映射
// 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. 测试服务商首页

  1. 打开小程序
  2. 切换到"服务商"身份
  3. 查看首页"本月收益"
  4. 应该显示 ¥222

3. 对比收益查看页面

  1. 点击"提取收益"按钮
  2. 进入收益查看页面
  3. 点击"收益统计"标签
  4. 选择"本月"
  5. 查看"总收益"
  6. 应该与首页的"本月收益"一致 (¥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         // 服务时长(小时)
}

注意事项

  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 (后端服务)