|
|
@@ -129,28 +129,21 @@ class UserController
|
|
|
* @param int $uid 用户ID
|
|
|
* @return array
|
|
|
*/
|
|
|
- public static function getAllTeamMembers($uid, $isFirstCall = true)
|
|
|
+ public static function getAllTeamMembers($uid, &$teamUids = [])
|
|
|
{
|
|
|
- static $teamUids = [];
|
|
|
-
|
|
|
- if ($isFirstCall) {
|
|
|
- $teamUids = [];
|
|
|
- }
|
|
|
-
|
|
|
// 获取直接下级
|
|
|
$directSubordinates = User::where('spread_uid', $uid)->column('uid');
|
|
|
|
|
|
if (!empty($directSubordinates)) {
|
|
|
- // 在首次调用时过滤掉最开始传入的UID
|
|
|
- if ($isFirstCall) {
|
|
|
- $directSubordinates = array_diff($directSubordinates, [$uid]);
|
|
|
- }
|
|
|
+ // 过滤掉最开始传入的UID
|
|
|
+ $directSubordinates = array_diff($directSubordinates, [$uid]);
|
|
|
|
|
|
+ // 合并当前直接下级UID到团队UID列表
|
|
|
$teamUids = array_merge($teamUids, $directSubordinates);
|
|
|
|
|
|
// 递归获取下级的下级
|
|
|
foreach ($directSubordinates as $subordinateUid) {
|
|
|
- self::getAllTeamMembers($subordinateUid, false);
|
|
|
+ self::getAllTeamMembers($subordinateUid, $teamUids);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -158,6 +151,7 @@ class UserController
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 用户资金统计
|
|
|
* @param Request $request
|