|
|
@@ -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()
|
|
|
]);
|
|
|
}
|
|
|
}
|