company_id)->whereIn('id', $whitelistDepartment)->count(); if ($departmentsCount != count($whitelistDepartment)) { throw_validation_if("The selected department is invalid."); } $departmentUserIds =[]; if(!empty($whitelistDepartment)){ $departmentUserIds=User::query()->whereIn('department_id',$whitelistDepartment)->pluck('id')->toArray(); } $users= User::where("company_id", Auth::user()->company_id)->whereIn('id', $whitelistUser); $userIds=[]; if ($users->count()!= count($whitelistUser)) { throw_validation_if("The selected user is invalid."); } $userIds=$users->pluck('id')->toArray(); // 合并两个数组并去重 $allUserIds = array_merge($departmentUserIds, $userIds); $uniqueUserIds = array_unique($allUserIds); return $uniqueUserIds; } public function decomposeWhitelist(array $whitelist =[]){ $departmentIds=[]; if(!empty($whitelist)){ $departmentIds=User::query()->whereIn('id',$whitelist)->pluck('department_id')->unique()->toArray(); } return [ 'departmentIds' => $departmentIds, 'userIds' => $whitelist, ]; } }