| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | 
							- <?php
 
- namespace App\Scopes;
 
- use Illuminate\Database\Eloquent\Builder;
 
- use Illuminate\Database\Eloquent\Model;
 
- use Illuminate\Database\Eloquent\Scope;
 
- //现存量 库存台账
 
- class ProductInventoryScope implements Scope
 
- {
 
-     public $user = [];
 
-     public $search = [];
 
-     public function __construct($user = [],$search = [])
 
-     {
 
-         $this->user = $user;
 
-         $this->search = $search;
 
-     }
 
-     public function apply(Builder $builder, Model $model)
 
-     {
 
-         //是否所有部门
 
-         $is_all_depart = $this->user['is_all_depart'] ?? 0;
 
-         //权限范围内的部门
 
-         $depart_range = $this->user['depart_range'] ?? [];
 
-         //顶级部门
 
-         $search_depart_id = $this->search['top_depart_id'] ?? 0;
 
-         if(empty($search_depart_id)){
 
-             //默认进来 自身顶级公司
 
-             $top_depart_id = $this->user['depart_top'][0] ?? [];
 
-             $top_depart_id = $top_depart_id['depart_id'] ?? 0;
 
-         }else{
 
-             //查询 顶级公司
 
-             $top_depart_id = $search_depart_id;
 
-         }
 
-         if($is_all_depart){
 
-             //所有部门
 
-             if(empty($search_depart_id)){
 
-                 //全部
 
-                 $builder->whereIn('a.top_depart_id', $depart_range);
 
-             }else{
 
-                 //查看某个分社
 
-                 $builder->where('a.top_depart_id', $top_depart_id);
 
-             }
 
-         }else{
 
-             //某个分社全部
 
-             $builder->where('a.top_depart_id', $top_depart_id);
 
-         }
 
-     }
 
- }
 
 
  |