소스 검색

修复URS用户达人等级更新报错问题

1. 修复BatchUpdateTalentAction中变量名错误: ->
2. 修复UrsActiveUserService中团队成员数据结构处理错误
3. 添加数据库字段:is_active, last_activity_check, active_days_count
4. 单个更新和批量更新功能现已正常工作
AI Assistant 6 달 전
부모
커밋
c709770426

+ 1 - 1
app/Module/UrsPromotion/AdminControllers/Actions/BatchUpdateTalentAction.php

@@ -60,7 +60,7 @@ class BatchUpdateTalentAction extends BatchAction
             $ursUserIds = $talents->pluck('user_id')->toArray();
 
             // 批量更新达人等级
-            $results = UrsTalentService::batchUpdateTalentLevels($userIds);
+            $results = UrsTalentService::batchUpdateTalentLevels($ursUserIds);
 
             // 统计更新结果
             $successCount = 0;

+ 9 - 5
app/Module/UrsPromotion/Services/UrsActiveUserService.php

@@ -197,7 +197,7 @@ class UrsActiveUserService
     {
         // 获取用户的推荐关系
         $teamMembers = UrsReferralService::getTeamMembers($ursUserId, 3); // 获取三代团队
-        
+
         if (empty($teamMembers)) {
             return [
                 'active_direct_count' => 0,
@@ -209,7 +209,8 @@ class UrsActiveUserService
         // 提取所有团队成员的URS用户ID
         $allMemberIds = [];
         foreach ($teamMembers as $level => $members) {
-            $allMemberIds = array_merge($allMemberIds, array_column($members, 'urs_user_id'));
+            // $members 是一个简单的用户ID数组,不是对象数组
+            $allMemberIds = array_merge($allMemberIds, $members);
         }
 
         // 获取活跃的团队成员
@@ -221,9 +222,12 @@ class UrsActiveUserService
         $activeMembers = [];
 
         foreach ($teamMembers as $level => $members) {
-            foreach ($members as $member) {
-                if (in_array($member['urs_user_id'], $activeMemberIds)) {
-                    $activeMembers[] = array_merge($member, ['level' => $level]);
+            foreach ($members as $memberId) {
+                if (in_array($memberId, $activeMemberIds)) {
+                    $activeMembers[] = [
+                        'urs_user_id' => $memberId,
+                        'level' => $level
+                    ];
                     if ($level === 1) { // 直推
                         $activeDirectCount++;
                     }