getQx($search,$user); if($auth_type <= 0){ //不需要分个人部门所有的数据 if($auth_type == 0) $query->whereIn('number', $man_number); }else{ if($auth_type == 1) { //我的 $query->where('number',$user['number']); }elseif ($auth_type == 2){ //自己权限范围内的部门 $query->whereIn('number', $man_number); } } } public function scopeManClear($query, $user, $search) { //权限范围内的人 $man_range = $user['man_range'] ?? []; $man_number = array_unique(array_column($man_range,'number')); //个人部门所有 $auth_type = $this->getQx($search,$user); if($auth_type <= 0){ //不需要分个人部门所有的数据 if($auth_type == 0) $query->where('number', $user['number']); }else{ if($auth_type == 1) { //我的 $query->where('number',$user['number']); }elseif ($auth_type == 2){ //自己权限范围内的部门 $query->whereIn('number', $man_number); } } } public function getQx($data, $user){ if(empty($data['menu_authority_id'])) return 0; if($user['id'] == Employee::SPECIAL_ADMIN) return -1; if(! empty($user['role_authority'][$data['menu_authority_id']])) { //指定菜单 显示对应权限 return $user['role_authority'][$data['menu_authority_id']]; }else{ return 1; } } function hasMethod($class, $methodName) { $reflection = new \ReflectionClass($class); return $reflection->hasMethod($methodName); } }