时间: 2025年07月03日 21:33:51 CST
任务: 实现URS推荐关系同步命令
状态: ✅ 完成
根据需求文档,实现一个Laravel命令行工具,用于从URS获取用户上级关系并同步到本地数据库。
app/Module/UrsPromotion/Commands/UrsReferralSyncCommand.phpurs:sync-referralphp artisan urs:sync-referral [urs_user_id] [options]
参数:
urs_user_id (可选): URS用户ID,不指定则同步所有用户选项:
--batch-size=100: 批处理大小,默认100--force: 强制重新同步已存在的关系--dry-run: 仅模拟运行,不实际执行同步Login4uHandler::syncReferralRelations() 方法在 UrsPromotionServiceProvider 中注册命令:
\App\Module\UrsPromotion\Commands\UrsReferralSyncCommand::class,
# 同步URS用户ID为1001的推荐关系
php artisan urs:sync-referral 1001
# 强制重新同步
php artisan urs:sync-referral 1001 --force
# 模拟运行
php artisan urs:sync-referral 1001 --dry-run
# 同步所有用户
php artisan urs:sync-referral
# 指定批处理大小
php artisan urs:sync-referral --batch-size=50
# 模拟运行批量同步
php artisan urs:sync-referral --dry-run
app/Module/UrsPromotion/Commands/UrsReferralSyncCommand.phpapp/Module/UrsPromotion/Providers/UrsPromotionServiceProvider.php - 注册新命令app/Module/UrsPromotion/Commands/readme.md - 更新文档Login4uHandler::syncReferralRelations() - 核心同步逻辑UrsUserMappingService::getFarmUserId() - 用户映射查询UrsUserMapping::where()->chunk() - 批量数据处理成功实现了URS推荐关系同步命令,具备以下特点:
命令已成功注册并可正常使用,满足了需求文档的所有要求。