创建时间: 2025年06月19日 08:42
文档类型: 功能重构
关联任务: 推广信息Handler收益统计重构
根据用户需求,将推广信息Handler中的收益统计功能从读取urs_promotion_profits表改为从物品模块和资金模块的日志表中读取数据,实现更准确的收益统计。
urs_promotion_profits表读取收益数据UrsProfitService::getUserProfitStats()方法game_reward_logs表读取物品奖励记录fund_logs表读取资金收益记录urs_promotion_harvest (推广收获)urs_promotion_backfill (推广补发)urs_promotion_reward (推广奖励)urs_promotion_register (推广注册)urs_promotion_level (推广等级)getRewardStatsFromLogs()$farmUserId: 农场用户ID$startDate: 开始日期(可选)$endDate: 结束日期(可选)calculateItemsValue()$rewardItems - 奖励物品数组inferSourceTypeFromRemark()$remark - 备注内容kku_game_reward_logsuser_id = 农场用户IDsource_type IN URS推广相关类型kku_fund_logsuser_id = 农场用户IDfund_id = 2 (钻石类型)amount > 0 (只统计收入)remark LIKE '%推广%'InfoHandler.phpgetRewardStats()方法AppGameServiceProvider.phpTestPromotionInfoRefactorCommand.php- 总人数: 1
- 直推人数: 1
- 间推人数: 0
- 今日团队新增: 1
- 今日直推新增: 1
- 团队活跃人数: 1
- 直推活跃人数: 1
- 今日收益: 钻石: 1
- 总收益: 钻石: 1
- 总人数: 1
- 直推人数: 1
- 间推人数: 0
- 今日新增: 1
- 今日直推: 1
- 活跃人数: 1
- 直推活跃: 1
- 今日收益: 1 钻石 (类型: 2)
- 总收益: 1 钻石 (类型: 2)
SELECT * FROM kku_game_reward_logs
WHERE user_id = 39068
AND source_type LIKE '%urs_promotion%';
结果: 发现1条urs_promotion_backfill类型的奖励记录,包含1个物品
SELECT * FROM kku_fund_logs
WHERE user_id = 39068
AND remark LIKE '%推广%';
结果: 暂无推广相关的资金记录
app/Module/AppGame/Handler/Promotion/InfoHandler.phpapp/Module/AppGame/Providers/AppGameServiceProvider.phpapp/Module/AppGame/Commands/TestPromotionInfoRefactorCommand.php测试验证: 可使用以下命令进行测试:
php artisan test:promotion-info-refactor {user_id}
总结: 成功完成推广信息Handler收益统计功能的重构,实现了从日志表读取数据的目标,保持了功能的完整性和数据的准确性。重构后的代码更加灵活,能够适应不同的收益来源类型,为后续功能扩展奠定了良好基础。