12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?php
- /**
- * Created by IntelliJ IDEA.
- * User: kelyliang
- * Date: 2024/8/13
- * Time: 上午 10:36
- */
- namespace App\Services\User;
- use App\Models\Department;
- use App\Models\User;
- use Illuminate\Support\Facades\Auth;
- use function Nette\Utils\isEmpty;
- class UserService
- {
- public function getUserList(array $whitelistDepartment = [],array $whitelistUser =[]){
- $departmentsCount = Department::where("company_id", Auth::user()->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,
- ];
- }
- public static function clearCache(): void
- {
- $user = Auth::user();
- $cacheKey = '4s_token_' . $user->username;
- cache()->forget($cacheKey);
- }
- }
|