whereIn('top_depart_id', $depart_range); }else{ //查看某个分社 $query->where('top_depart_id', $top_depart_id); } }else{ //某个分社全部 $query->where('top_depart_id', $top_depart_id); } //获取当前门店下 if(! empty($search['get_my_top_depart_data'])){ $depart = ! empty($user['depart_top'][0]) ? $user['depart_top'][0]: []; $depart_id = $depart['depart_id'] ?? 0; $query->where('top_depart_id', $depart_id); } return $query; } // public function scopeKqClear($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->whereIn('number', $man_number); }else{ if($auth_type == 1) { //我的 $query->where('number',$user['number']); }elseif ($auth_type == 2 || $auth_type == 3){ //自己权限范围内的部门 或 所有 $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); } }