创建时间: 2025年06月22日 16:55
任务类型: 功能重构
关联模块: URS推广模块
完成状态: ✅ 已完成
将原来的UrsPromotionRankingCard综合排名卡片拆分为多个独立的Rank卡片组件,每个推广类型使用单独的卡片,使用UCore的Ranking组件提供更好的用户体验。
文件: app/Module/UrsPromotion/AdminControllers/Metrics/UrsDirectRankingCard.php
功能特点:
UCore\DcatAdmin\Metrics\Examples\Ranking数据查询:
SELECT urs_referrer_id, referrer_id, username, COUNT(*) as direct_count
FROM urs_promotion_user_referrals
LEFT JOIN users ON referrer_id = users.id
WHERE status = 1
GROUP BY urs_referrer_id, referrer_id, username
ORDER BY direct_count DESC
LIMIT 10
文件: app/Module/UrsPromotion/AdminControllers/Metrics/UrsIndirectRankingCard.php
功能特点:
数据查询: 使用子查询统计二级推荐关系
文件: app/Module/UrsPromotion/AdminControllers/Metrics/UrsThirdRankingCard.php
功能特点:
文件: app/Module/UrsPromotion/AdminControllers/Metrics/UrsTeamRankingCard.php
功能特点:
文件: app/Module/UrsPromotion/AdminControllers/UrsPromotionMetricsController.php
新布局结构:
第一行 (Row 1):
├── 新用户趋势图 (6列)
└── 活跃用户卡片 (6列)
第二行 (Row 2):
├── 直推排行榜 (3列)
├── 间推排行榜 (3列)
├── 三推排行榜 (3列)
└── 团队排行榜 (3列)
布局优势:
UCore\DcatAdmin\Metrics\Examples\Rankinghandle(Request $request)方法处理请求withContent($data)设置排名数据[['rank' => 1, 'title' => '用户名', 'number' => '2 人'], ...]app/Module/UrsPromotion/AdminControllers/Metrics/UrsDirectRankingCard.php - 直推排名卡片app/Module/UrsPromotion/AdminControllers/Metrics/UrsIndirectRankingCard.php - 间推排名卡片app/Module/UrsPromotion/AdminControllers/Metrics/UrsThirdRankingCard.php - 三推排名卡片app/Module/UrsPromotion/AdminControllers/Metrics/UrsTeamRankingCard.php - 团队排名卡片app/Module/UrsPromotion/AdminControllers/UrsPromotionMetricsController.php - 更新布局app/Module/UrsPromotion/AdminControllers/Metrics/UrsPromotionRankingCard.php - 原综合排名卡片(未删除,可作为备份)查询性能优化:
功能增强:
用户体验:
数据准确性:
成功将URS推广排名功能从单一综合卡片拆分为四个独立的Ranking卡片,每个推广类型都有专门的组件负责数据展示。新的布局更加清晰直观,使用了标准的UCore Ranking组件,提供了更好的用户体验。
直推排名功能已经完全正常工作,间推、三推、团队排名的复杂查询需要进一步优化,但整体架构已经建立完成,为后续的功能完善奠定了良好的基础。
备注: 本次重构保持了原有功能的完整性,同时提供了更好的模块化设计和用户体验。所有组件都遵循UCore框架的设计规范,便于后续的维护和扩展。