浏览代码

修复URS推荐关系同步数据解析问题

- 修复Login4uHandler中syncReferralRelations方法的数据解析错误
- URS返回的团队数据格式是 {"team":{"1":10077,"2":10071,"3":10003}}
- 修正从 teamData['level1'] 改为 teamData['team']['1'] 获取直接推荐人
- 增加详细的推荐关系同步日志,包含数据结构和解析过程
- 验证推荐关系创建成功,用户10096的推荐人为10077
notfff 6 月之前
父节点
当前提交
2afb661b46
共有 1 个文件被更改,包括 30 次插入3 次删除
  1. 30 3
      app/Module/AppGame/Handler/Public/Login4uHandler.php

+ 30 - 3
app/Module/AppGame/Handler/Public/Login4uHandler.php

@@ -205,9 +205,18 @@ class Login4uHandler extends BaseHandler
     private function syncReferralRelations(int $ursUserId): void
     {
         try {
+            Log::info('开始同步URS推荐关系', ['urs_user_id' => $ursUserId]);
+
             // 获取用户的上级关系链
             $teamResult = UrsService::getUserTeam($ursUserId);
 
+            Log::info('URS团队关系获取结果', [
+                'urs_user_id' => $ursUserId,
+                'success' => $teamResult['success'] ?? false,
+                'has_data' => !empty($teamResult['data']),
+                'team_data' => $teamResult['data'] ?? null
+            ]);
+
             if (!$teamResult['success'] || empty($teamResult['data'])) {
                 Log::info('URS用户无上级关系', ['urs_user_id' => $ursUserId]);
                 return;
@@ -226,13 +235,30 @@ class Login4uHandler extends BaseHandler
             }
 
             // 获取直接推荐人(一级上级)
-            $directReferrerId = $teamData['level1'] ?? null;
+            // URS返回的数据格式是 {"team":{"1":10077,"2":10071,"3":10003}}
+            $directReferrerId = $teamData['team']['1'] ?? null;
+
+            Log::info('解析直接推荐人', [
+                'urs_user_id' => $ursUserId,
+                'team_data_structure' => array_keys($teamData),
+                'team_levels' => isset($teamData['team']) ? array_keys($teamData['team']) : [],
+                'direct_referrer_id' => $directReferrerId
+            ]);
+
             if (!$directReferrerId) {
-                Log::info('URS用户无直接推荐人', ['urs_user_id' => $ursUserId]);
+                Log::info('URS用户无直接推荐人', [
+                    'urs_user_id' => $ursUserId,
+                    'team_data' => $teamData
+                ]);
                 return;
             }
 
             // 创建推荐关系
+            Log::info('开始创建推荐关系', [
+                'urs_user_id' => $ursUserId,
+                'urs_referrer_id' => $directReferrerId
+            ]);
+
             $referralDto = UrsReferralService::createReferral($ursUserId, $directReferrerId);
 
             Log::info('URS推荐关系同步成功', [
@@ -245,7 +271,8 @@ class Login4uHandler extends BaseHandler
             // 推荐关系同步失败不影响登录流程
             Log::warning('URS推荐关系同步失败', [
                 'urs_user_id' => $ursUserId,
-                'error' => $e->getMessage()
+                'error' => $e->getMessage(),
+                'trace' => $e->getTraceAsString()
             ]);
         }
     }