|
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|
|
use App\Http\Requests\API\Department\CreateOrUpdateRequest;
|
|
|
use App\Http\Resources\API\DepartmentResource;
|
|
|
use App\Models\Department;
|
|
|
+use App\Models\User;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
|
@@ -87,13 +88,51 @@ class DepartmentController extends Controller
|
|
|
}
|
|
|
|
|
|
public function departmentUserIndex(){
|
|
|
- $companyId=Auth::user()->company_id;
|
|
|
- $department=Department::query()->where('company_id',$companyId)->with(['users'=>function($query){
|
|
|
- $query->select('id','name','department_id');
|
|
|
- }])->get(['id','name','parent_id']);
|
|
|
+
|
|
|
+ //封装部门
|
|
|
+ $departments=Department::query()->get(['id','name','parent_id'])->each(function ($departments){
|
|
|
+ $departments->new_id='department'.$departments->id;
|
|
|
+ $departments->new_parent_id='department'.$departments->parent_id;
|
|
|
+ $departments->type='department';
|
|
|
+ })->toArray();
|
|
|
+
|
|
|
+ //封装用户
|
|
|
+ $users=User::query()->where('company_id',Auth::user()->company_id)->get(['id','name','department_id'])->each(function ($users){
|
|
|
+ $users->new_id='user'.$users->id;
|
|
|
+ $users->new_parent_id='department'.$users->department_id;
|
|
|
+ $users->type='user';
|
|
|
+ })->toArray();
|
|
|
+ $departmentTree=$this->makeUserTree(array_merge($departments, $users));
|
|
|
+
|
|
|
+
|
|
|
return $this->success([
|
|
|
- 'data' => make_tree($department->toArray())
|
|
|
+ 'data' => $departmentTree
|
|
|
]);
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ protected function makeUserTree(array $departmentUsers, $parentId = 'department0') {
|
|
|
+
|
|
|
+ $tree = [];
|
|
|
+ if (empty($departmentUsers)) {
|
|
|
+ return $tree;
|
|
|
+ }
|
|
|
+
|
|
|
+ $newList = [];
|
|
|
+ foreach ($departmentUsers as $k => $v) {
|
|
|
+ $newList[$v['new_id']] = $v;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($newList as $value) {
|
|
|
+ if ($parentId == $value['new_parent_id']) {
|
|
|
+ $tree[] = &$newList[$value['new_id']];
|
|
|
+ }elseif (isset($newList[$value['new_parent_id']])) {
|
|
|
+ $newList[$value['new_parent_id']]['children'][] = &$newList[$value['new_id']];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return $tree;
|
|
|
+ }
|
|
|
+
|
|
|
}
|