AI Assistant 6 tháng trước cách đây
mục cha
commit
cea63124cb

+ 1 - 2
app/Module/UrsPromotion/Listeners/UrsReferralCreatedListener.php

@@ -190,8 +190,7 @@ class UrsReferralCreatedListener extends ShouldQueue
             $runParam = [
                 'referrer_id' => $upstreamReferrerId,
                 'original_user_id' => $originalReferrerId,
-                'level' => $level,
-                'trigger_time' => time()
+                'level' => $level
             ];
 
             Log::info('添加DelayQueue推荐关系创建的延时更新任务', [

+ 17 - 19
app/Module/UrsPromotion/Services/UrsTalentUpstreamUpdateService.php

@@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Log;
 
 /**
  * URS达人等级上级更新服务
- * 
+ *
  * 专门处理DelayQueue延时队列的回调更新逻辑
  * 当用户达人等级发生变化时,通过DelayQueue异步更新其上级用户的达人等级
  */
@@ -15,10 +15,10 @@ class UrsTalentUpstreamUpdateService
 {
     /**
      * DelayQueue回调方法:更新达人等级
-     * 
+     *
      * 此方法被DelayQueue模块调用,用于延时更新上级用户的达人等级
      * 由于URS达人等级更新操作是幂等的,无需额外的防重复检查
-     * 
+     *
      * @param array $runParam 运行参数
      * @return bool 更新结果
      */
@@ -29,8 +29,8 @@ class UrsTalentUpstreamUpdateService
             $referrerId = $runParam['referrer_id'] ?? null;
             $originalUserId = $runParam['original_user_id'] ?? null;
             $level = $runParam['level'] ?? null;
-            $triggerTime = $runParam['trigger_time'] ?? null;
-            
+
+
             // 参数验证
             if (!$referrerId || !$originalUserId || !$level) {
                 Log::error('DelayQueue回调参数不完整', [
@@ -38,20 +38,18 @@ class UrsTalentUpstreamUpdateService
                 ]);
                 return false;
             }
-            
+
             Log::info('DelayQueue开始更新上级达人等级', [
                 'referrer_id' => $referrerId,
                 'original_user_id' => $originalUserId,
-                'level' => $level,
-                'trigger_time' => $triggerTime,
-                'delay_duration' => $triggerTime ? (time() - $triggerTime) : null
+                'level' => $level
             ]);
-            
+
             // 执行达人等级更新(无需防重复检查,因为操作是幂等的)
             $startTime = microtime(true);
             $result = UrsTalentService::updateTalentLevel($referrerId);
             $endTime = microtime(true);
-            
+
             Log::info('DelayQueue更新上级达人等级成功', [
                 'referrer_id' => $referrerId,
                 'original_user_id' => $originalUserId,
@@ -61,9 +59,9 @@ class UrsTalentUpstreamUpdateService
                 'promotion_count' => $result->promotionCount,
                 'execution_time_ms' => round(($endTime - $startTime) * 1000, 2)
             ]);
-            
+
             return true;
-            
+
         } catch (\Exception $e) {
             Log::error('DelayQueue更新上级达人等级失败', [
                 'referrer_id' => $referrerId ?? null,
@@ -72,22 +70,22 @@ class UrsTalentUpstreamUpdateService
                 'error' => $e->getMessage(),
                 'trace' => $e->getTraceAsString()
             ]);
-            
+
             // 返回false,让DelayQueue知道任务失败
             return false;
         }
     }
-    
+
     /**
      * 批量更新多个用户的达人等级
-     * 
+     *
      * @param array $userIds 用户ID数组
      * @return array 更新结果
      */
     public static function batchUpdateTalentLevels(array $userIds): array
     {
         $results = [];
-        
+
         foreach ($userIds as $userId) {
             try {
                 $result = UrsTalentService::updateTalentLevel($userId);
@@ -104,13 +102,13 @@ class UrsTalentUpstreamUpdateService
                 ];
             }
         }
-        
+
         Log::info('批量更新达人等级完成', [
             'total_users' => count($userIds),
             'success_count' => count(array_filter($results, fn($r) => $r['success'])),
             'failed_count' => count(array_filter($results, fn($r) => !$r['success']))
         ]);
-        
+
         return $results;
     }
 }