<?php namespace App\Http\Services; use DB; //部门数据服务 class DepartmentService { public function getDepartmentId($departmentName) { return DB::table('user_department')->where('department_name', $departmentName)->value('department_id'); } public function getSubordinateUserIds($adminId) { $departmentId = DB::table('user_info')->where('userId', $adminId)->value('department_id'); $users = $this->getUserByDepartmentId($departmentId); return array_column($users, 'userId'); } // 获取部门人员 public function getUserByDepartmentId($departmentId, $status = '', $filter = '') { $departmentIds = []; $this->getSubDepartmentId($departmentId, $departmentIds); return DB::table('user_info')->whereIn('department_id', $departmentIds) ->where(function ($query) use ($status) { if ($status !== '') { $query->where('status', '=', $status); } }) ->where(function ($query) use ($filter) { if ($filter) { $query->whereRaw($filter); } }) ->select('userId', 'name', 'status') ->get(); } // 获取下级部门ID public function getSubDepartmentId($departmentId, &$departmentIds) { // 获取下级部门 $sub_department = DB::table('user_department')->where('parent_id', $departmentId)->select('department_id', 'department_name')->get(); if ($sub_department) { foreach ($sub_department as $v) { $this->getSubDepartmentId($v['department_id'], $departmentIds); } } $departmentIds[] = $departmentId; return $departmentIds; } }