| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?phpnamespace App\Model;use App\Service\RangeService;use Illuminate\Database\Eloquent\Model;class UseScopeBaseModel extends Model{    //可见范围    const range_function = '';    const is_check_function = '';    public function __construct(array $attributes = [])    {        parent::__construct($attributes);    }    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){                //自己权限范围内的部门                $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);    }}
 |