|
|
@@ -4924,9 +4924,10 @@ class UserRepository extends BaseRepository
|
|
4924
|
4924
|
/**
|
|
4925
|
4925
|
* 获取用户层级的树状图
|
|
4926
|
4926
|
* @param string $field 关系字段名,如 'spread_uid'
|
|
4927
|
|
- * @return array 树状结构,格式:[{name: '张三', parent: null, children: [...]}]
|
|
|
4927
|
+ * @param int $parentId 父ID,默认为0表示根节点
|
|
|
4928
|
+ * @return array 树状结构,格式:[{name: '张三', parent: null, parentId: null, children: [...]}]
|
|
4928
|
4929
|
*/
|
|
4929
|
|
- public function getUserForTree($field)
|
|
|
4930
|
+ public function getUserForTree($field,$parentId = 0)
|
|
4930
|
4931
|
{
|
|
4931
|
4932
|
// 获取所有用户数据
|
|
4932
|
4933
|
$users = $this->dao->selectWhere(['is_del'=>0], 'uid,' . $field . ',nickname,account');
|
|
|
@@ -4942,7 +4943,38 @@ class UserRepository extends BaseRepository
|
|
4942
|
4943
|
}
|
|
4943
|
4944
|
|
|
4944
|
4945
|
// 构建树
|
|
4945
|
|
- $tree = $this->buildTree($users, 0, $field, $idToName);
|
|
|
4946
|
+ $tree = $this->buildTree($users, $parentId, $field, $idToName);
|
|
|
4947
|
+
|
|
|
4948
|
+ // 如果parentId大于0,需要返回以该用户为根节点的树
|
|
|
4949
|
+ if ($parentId > 0) {
|
|
|
4950
|
+ // 查找parentId对应的用户
|
|
|
4951
|
+ $parentUser = null;
|
|
|
4952
|
+ foreach ($users as $user) {
|
|
|
4953
|
+ if ($user['uid'] == $parentId) {
|
|
|
4954
|
+ $parentUser = $user;
|
|
|
4955
|
+ break;
|
|
|
4956
|
+ }
|
|
|
4957
|
+ }
|
|
|
4958
|
+
|
|
|
4959
|
+ if ($parentUser) {
|
|
|
4960
|
+ // 获取该用户的父节点信息
|
|
|
4961
|
+ $userParentId = $parentUser[$field] ?? 0;
|
|
|
4962
|
+ $userParentName = $userParentId > 0 ? ($idToName[$userParentId] ?? null) : null;
|
|
|
4963
|
+
|
|
|
4964
|
+ // 构建以该用户为根节点的树
|
|
|
4965
|
+ $parentNode = [
|
|
|
4966
|
+ 'name' => $parentUser['nickname']. '(' . $parentUser['account'] .')' ?? ('用户' . $parentUser['uid']),
|
|
|
4967
|
+ 'parent' => $userParentName,
|
|
|
4968
|
+ 'parentId' => $userParentId > 0 ? $userParentId : null,
|
|
|
4969
|
+ 'children' => $tree // 子节点就是之前构建的树
|
|
|
4970
|
+ ];
|
|
|
4971
|
+ return [$parentNode];
|
|
|
4972
|
+ } else {
|
|
|
4973
|
+ // 如果找不到对应的用户,返回空数组
|
|
|
4974
|
+ return [];
|
|
|
4975
|
+ }
|
|
|
4976
|
+ }
|
|
|
4977
|
+
|
|
4946
|
4978
|
return $tree;
|
|
4947
|
4979
|
}
|
|
4948
|
4980
|
|
|
|
@@ -4963,6 +4995,7 @@ class UserRepository extends BaseRepository
|
|
4963
|
4995
|
$node = [
|
|
4964
|
4996
|
'name' => $user['nickname']. '(' . $user['account'] .')' ?? ('用户' . $user['uid']),
|
|
4965
|
4997
|
'parent' => $parentId == 0 ? null : ($idToName[$parentId] ?? null),
|
|
|
4998
|
+ 'parentId' => $parentId == 0 ? null : $parentId,
|
|
4966
|
4999
|
'children' => $children
|
|
4967
|
5000
|
];
|
|
4968
|
5001
|
$branch[] = $node;
|