AI Assistant hace 6 meses
padre
commit
d4fd382be4

+ 2 - 0
app/Console/Kernel.php

@@ -22,6 +22,8 @@ class Kernel extends ConsoleKernel
         Commands\DisabledBaseMigrateCommand::class,
         Commands\AskAndEchoCommand::class,
         Commands\TestUrsReferralCreatedEventCommand::class,
+        Commands\TestUrsRelationCacheDepthCommand::class,
+        Commands\TestUrsReferralChainFixCommand::class,
     ];
 
     /**

+ 37 - 0
app/Module/UrsPromotion/Docs/URS推荐关系同步机制.md

@@ -0,0 +1,37 @@
+# URS推荐关系同步机制
+
+## 核心流程
+
+```
+用户登录 → 创建用户映射 → 请求URS获取上级关系 → 验证和创建推荐关系 → 生成关系缓存 → 更新团队统计 → 触发事件
+```
+
+### 1. 创建用户映射
+- 建立URS用户ID与农场用户ID的映射关系
+- 为后续推荐关系提供农场用户ID
+
+### 2. 请求URS获取上级关系
+- 调用 `UrsService::getUserTeam($ursUserId)`
+- URS返回20级上级关系:level1、level2、level3.....
+
+### 3. 验证和创建推荐关系
+- **创建记录**: 补充缺失的推荐关系记录(20代关系)
+- **数据表**: `urs_promotion_user_referrals`
+
+### 4. 生成关系缓存
+- 创建直接关系缓存(depth=1)
+- 继承推荐人的上级关系缓存(depth=2,3,4...最多20级)
+- 存储到 `urs_promotion_user_relation_cache` 表
+
+### 5. 更新团队统计
+- 更新推荐人的团队统计数据
+- 包含直推、间推、三推和20代总人数
+- 存储到 `urs_promotion_user_talents` 表
+
+### 6. 触发事件
+- 条件触发 `UrsReferralCreatedEvent` 事件(双方都进入农场时)
+- 用于达人等级向上传播更新
+
+---
+
+## 详细流程