创建时间: 2025年06月19日 04:43
完成时间: 2025年06月19日 05:00
任务类型: 数据库结构优化
关联模块: URS推广模块
为URS用户推荐关系表(urs_promotion_user_referrals)添加农场用户ID字段,用于存储用户和推荐人的农场用户ID,提高查询效率并支持直接关联。
user_id字段存储农场用户ID(可能为0)referrer_id字段存储推荐人的农场用户ID(可能为0)-- 添加用户农场ID字段
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD COLUMN `user_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '农场用户ID(可能为0)' AFTER `urs_referrer_id`;
-- 添加推荐人农场ID字段
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD COLUMN `referrer_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '推荐人的农场用户ID(可能为0)' AFTER `user_id`;
-- 添加用户农场ID索引
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD INDEX `idx_user_id` (`user_id`);
-- 添加推荐人农场ID索引
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD INDEX `idx_referrer_id` (`referrer_id`);
-- 添加组合索引用于推荐关系查询
ALTER TABLE `kku_urs_promotion_user_referrals`
ADD INDEX `idx_user_referrer` (`user_id`, `referrer_id`);
user_id和referrer_id字段到$fillable数组$casts数组userId和referrerId属性fromModel方法处理新字段batchUpdateFarmUserIds()方法:批量更新所有推荐关系的农场用户IDupdateFarmUserIdForUser()方法:更新特定用户相关的推荐关系记录TestFarmUserIdUpdateCommand:测试农场用户ID更新功能=== 测试结果 ===
✅ 批量更新功能:成功更新 3 条推荐关系记录
✅ 单个用户更新功能:更新成功
✅ 数据完整性:所有推荐关系都正确更新了农场用户ID
$result = UrsReferralService::batchUpdateFarmUserIds();
// 返回: ['success' => true, 'affected_rows' => 3, 'message' => '成功更新 3 条推荐关系记录']
$success = UrsReferralService::updateFarmUserIdForUser(1001, 2001);
// 返回: true
// 现在可以直接通过农场用户ID查询
$referrals = UrsUserReferral::where('user_id', 2001)->get();
$referrers = UrsUserReferral::where('referrer_id', 2001)->get();
app/Module/UrsPromotion/Database/add_farm_user_id_fields.sql - 数据库迁移脚本app/Module/UrsPromotion/Commands/TestFarmUserIdUpdateCommand.php - 测试命令app/Module/UrsPromotion/Models/UrsUserReferral.php - 模型字段和关联关系app/Module/UrsPromotion/Dtos/UrsUserReferralDto.php - DTO字段app/Module/UrsPromotion/Services/UrsReferralService.php - 服务方法app/Module/UrsPromotion/Listeners/UrsUserEnteredFarmListener.php - 事件监听器app/Module/UrsPromotion/Providers/UrsPromotionServiceProvider.php - 服务提供者本次任务成功为URS用户推荐关系表添加了农场用户ID字段,实现了:
user_id和referrer_id字段,提高查询效率该功能为后续的推荐关系查询和处理提供了更高效的数据访问方式。