Преглед на файлове

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	app/Service/SalesOrderService.php
gogs преди 1 година
родител
ревизия
65891f5653

+ 7 - 0
app/Http/Middleware/CheckLogin.php

@@ -39,6 +39,13 @@ class CheckLogin
         list($depart, $is_main) = EmployeeService::getLoginDepart($result);
         $data['rule_depart'] = $depart;
         $data['is_main'] = $is_main;
+        $depart_b = [];
+        if(is_array($depart)){
+            foreach ($depart as $value){
+                $depart_b[] = $value['depart_id'];
+            }
+        }
+        $data['depart_has'] = $depart_b;
 
         //写入user信息
         $request->userData = $data;

+ 23 - 0
app/Model/Construction.php

@@ -2,6 +2,7 @@
 
 namespace App\Model;
 
+use App\Scopes\DepartmentScope;
 use Illuminate\Database\Eloquent\Model;
 
 class Construction extends Model
@@ -21,4 +22,26 @@ class Construction extends Model
         self::Model_type_one => 'WO0.',
         self::Model_type_two => 'T9SH.',
     ];
+
+    public static $user = [];
+    public static $is_search = false;
+
+    public function __construct(array $attributes = [])
+    {
+        if(! empty($attributes['userData'])) {
+            self::$user = $attributes['userData'];
+            self::$is_search = true;
+        }
+        parent::__construct($attributes);
+    }
+
+    protected static function boot(){
+        parent::boot();
+        if(self::$is_search){
+            $depart = self::$user['depart_has'] ?? [];
+            $is_main = self::$user['is_main'] ?? 0;
+            $user_id = self::$user['id'] ?? 0;
+            static::addGlobalScope(new DepartmentScope($depart,$is_main,$user_id));
+        }
+    }
 }

+ 25 - 2
app/Model/SalesOrder.php

@@ -2,17 +2,19 @@
 
 namespace App\Model;
 
+use App\Scopes\DepartmentScope;
 use Illuminate\Database\Eloquent\Model;
 
 class SalesOrder extends Model
 {
+    protected $fillable = ['userData'];
     protected $table = "sales_order"; //指定表
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
     const Model_type_one = 1; // 线下订单合同
     const Model_type_two = 2; // 分社订货合同
-    const Model_type_three = 3; // 二手车精品家装
+    const Model_type_three = 3; // 二手车精品加装合同
     public static $model_type = [
         self::Model_type_one,
         self::Model_type_two,
@@ -20,8 +22,29 @@ class SalesOrder extends Model
     ];
 
     public static $prefix = [
-        self::Model_type_one => 'T9xS.',
+        self::Model_type_one => 'T9XS.',
         self::Model_type_two => 'T9SO.',
         self::Model_type_three => 'T9XS.'
     ];
+    public static $user = [];
+    public static $is_search = false;
+
+    public function __construct(array $attributes = [])
+    {
+        if(! empty($attributes['userData'])) {
+            self::$user = $attributes['userData'];
+            self::$is_search = true;
+        }
+        parent::__construct($attributes);
+    }
+
+    protected static function boot(){
+        parent::boot();
+        if(self::$is_search){
+            $depart = self::$user['depart_has'] ?? [];
+            $is_main = self::$user['is_main'] ?? 0;
+            $user_id = self::$user['id'] ?? 0;
+            static::addGlobalScope(new DepartmentScope($depart,$is_main,$user_id));
+        }
+    }
 }

+ 33 - 0
app/Scopes/DepartmentScope.php

@@ -0,0 +1,33 @@
+<?php
+namespace App\Scopes;
+
+use Illuminate\Database\Eloquent\Builder;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Database\Eloquent\Scope;
+
+class DepartmentScope implements Scope
+{
+    public $depart_id = [];
+    public $is_main = 0;
+    public $user_id = 0;
+
+    public function __construct($depart_id = [], $is_main = 0, $user_id = 0)
+    {
+        if(! is_array($depart_id)) $depart_id = [$depart_id];
+        $this->depart_id = $depart_id;
+        $this->is_main = $is_main;
+        $this->user_id = $user_id;
+    }
+
+    public function apply(Builder $builder, Model $model)
+    {
+        if(! $this->is_main) {
+            $depart_id = $this->depart_id;
+            $user_id = $this->user_id;
+            $builder->where(function ($query) use ($depart_id,$user_id){
+                $query->whereIn('depart_id', $depart_id)
+                    ->orWhere('crt_id', $user_id);
+            });
+        }
+    }
+}

+ 13 - 12
app/Service/ConstructionService.php

@@ -8,15 +8,12 @@ use App\Model\ConstructionInfo;
 use App\Model\ConstructionProductInfo;
 use App\Model\Customer;
 use App\Model\Employee;
-use App\Model\SalesOrder;
-use App\Model\SalesOrderInfo;
-use App\Model\SalesOrderProductInfo;
 use Illuminate\Support\Facades\DB;
 
 class ConstructionService extends Service
 {
     public function constructionEdit($data,$user){
-        list($status,$msg) = $this->constructionRule($data,false);
+        list($status,$msg) = $this->constructionRule($data, $user, false);
         if(!$status) return [$status,$msg];
 
         try {
@@ -38,6 +35,7 @@ class ConstructionService extends Service
             $model->address1 = $data['address1'] ?? '';
             $model->address2 = $data['address2'] ?? '';
             $model->introduction = $data['introduction'] ?? '';
+            $model->depart_id = $data['depart_id'] ?? 0;
             $model->save();
             $time = time();
 
@@ -59,7 +57,7 @@ class ConstructionService extends Service
                         'crt_time' => $time,
                     ];
                 }
-                SalesOrderInfo::insert($insert);
+                ConstructionInfo::insert($insert);
             }
 
             if(! empty($data['employee_one'])){
@@ -100,13 +98,13 @@ class ConstructionService extends Service
     }
 
     public function constructionAdd($data,$user){
-        list($status,$msg) = $this->constructionRule($data);
+        list($status,$msg) = $this->constructionRule($data,$user);
         if(!$status) return [$status,$msg];
 
         try {
             DB::beginTransaction();
 
-            $model = new SalesOrder();
+            $model = new Construction();
             $model->model_type = $data['model_type'];
             $model->order_number = $data['order_number'];
             $model->title = $data['title'] ?? '';
@@ -123,6 +121,7 @@ class ConstructionService extends Service
             $model->address2 = $data['address2'] ?? '';
             $model->introduction = $data['introduction'] ?? '';
             $model->crt_id = $user['id'];
+            $model->depart_id = $data['depart_id'] ?? 0;
             $model->save();
             $time = time();
 
@@ -137,7 +136,7 @@ class ConstructionService extends Service
                         'crt_time' => $time,
                     ];
                 }
-                SalesOrderInfo::insert($insert);
+                ConstructionInfo::insert($insert);
             }
 
             if(! empty($data['employee_one'])){
@@ -271,7 +270,8 @@ class ConstructionService extends Service
     }
 
     public function constructionList($data,$user){
-        $model = Construction::where('del_time',0)
+        $model = new Construction(['userData' => $user]);
+        $model = $model->where('del_time',0)
             ->select('title','id','model_type','order_number','customer_id','install_method','install_position','sales_order_id','construction_fee','construction_time','handover_time','urgency','crt_id','crt_time','mark','state','address1','address2','introduction')
             ->orderby('id', 'desc')
             ->where('model_type',$data['model_type']);
@@ -284,7 +284,7 @@ class ConstructionService extends Service
         return [true, $list];
     }
 
-    public function constructionRule(&$data, $is_add = true){
+    public function constructionRule(&$data, $user, $is_add = true){
         if(empty($data['model_type'])) return [false,'工单模板类型不能为空'];
         if(! in_array($data['model_type'],Construction::$model_type)) return [false,'工单模板类型错误'];
         if(empty($data['order_number'])) return [false,'工单编号不能为空'];
@@ -298,12 +298,12 @@ class ConstructionService extends Service
 
             if(empty($value['price'])) return [false,'产品单价不能为空'];
             $res = $this->checkNumber($value['price']);
-            if(! $res) return [false,'产品单价请输入不超过两位小数的数值'];
+            if(! $res) return [false,'产品单价请输入不超过两位小数并且大于0的数值'];
         }
         if(empty($data['construction_contact'])) return [false,'联系方式不能为空'];
         if(! empty($data['construction_fee'])){
             $res = $this->checkNumber($data['construction_fee']);
-            if(! $res) return [false,'施工费用请输入不超过两位小数的数值'];
+            if(! $res) return [false,'施工费用请输入不超过两位小数并且大于0的数值'];
         }
         if($data['model_type'] == Construction::Model_type_one){
             if(empty($data['install_method'])) return [false,'安装方式不能为空'];
@@ -311,6 +311,7 @@ class ConstructionService extends Service
         }else{
             if(empty($data['address1']) || empty($data['address2'])) return [false,'地址不能为空'];
         }
+        if(empty($data['depart_id'])) $data['depart_id'] = $this->getDepart($user);
 
         if($is_add){
             $bool = Construction::where('del_time',0)->where('order_number',$data['order_number'])->exists();

+ 3 - 2
app/Service/CustomerService.php

@@ -385,8 +385,7 @@ class CustomerService extends Service
     public function customerList($data,$user){
         $model = Customer::where('del_time',0)
             ->select('title','id','model_type','customer_intention','customer_from','customer_type','car_type','consulting_product','intention_product','progress_stage','address1','address2','crt_id','crt_time','mark','importance','company','company_short_name','depart_id','state_type','customer_state','customer_grade')
-            ->orderby('id', 'desc')
-            ->where('model_type',$data['model_type']);
+            ->orderby('id', 'desc');
 
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
         if(! empty($data['time_type'])) {
@@ -402,6 +401,8 @@ class CustomerService extends Service
                 $model->where('crt_time','<=',$end);
             }
         }
+        if(! empty($data['model_type'])) $model->where('model_type',$data['model_type']);
+
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list);
 

+ 2 - 1
app/Service/EmployeeService.php

@@ -41,7 +41,7 @@ class EmployeeService extends Service
             $model->is_admin = $data['is_admin'];
             if($model->is_admin == 1){
                 $model->account = $data['number'];
-                if($data['password'] !== '********'){
+                if($data['password'] !== '******'){
                     $model->password   = Hash::make($data['password']);
                 }
             }
@@ -831,6 +831,7 @@ class EmployeeService extends Service
             ->where('a.employee_id',$employee_id)
             ->where('b.is_use',Depart::IS_UES)
             ->select('a.depart_id','b.is_main')
+            ->orderBy('a.depart_id','asc')
             ->get()->toArray();
         if(! empty($depart)){
             foreach ($depart as $value){

+ 3 - 3
app/Service/ProductService.php

@@ -453,13 +453,13 @@ class ProductService extends Service
         if(empty($data['code'])) return [false,'产品编码不能为空'];
         if(empty($data['cost'])) return [false,'成本不能为空'];
         $res = $this->checkNumber($data['cost']);
-        if(! $res) return [false,'成本请输入不超过两位小数的数值'];
+        if(! $res) return [false,'成本请输入不超过两位小数并且大于0的数值'];
         if(empty($data['depart_price'])) return [false,'分社价格不能为空'];
         $res = $this->checkNumber($data['depart_price']);
-        if(! $res) return [false,'分社价格请输入不超过两位小数的数值'];
+        if(! $res) return [false,'分社价格请输入不超过两位小数并且大于0的数值'];
         if(empty($data['retail_price'])) return [false,'零售价不能为空'];
         $res = $this->checkNumber($data['retail_price']);
-        if(! $res) return [false,'零售价格请输入不超过两位小数的数值'];
+        if(! $res) return [false,'零售价格请输入不超过两位小数并且大于0的数值'];
 
         if($is_add){
             $bool = Product::whereRaw("(binary code = '{$data['code']}' OR title = '{$data['title']}')")

+ 51 - 23
app/Service/SalesOrderService.php

@@ -5,6 +5,7 @@ namespace App\Service;
 use App\Model\BasicType;
 use App\Model\Customer;
 use App\Model\Employee;
+use App\Model\Product;
 use App\Model\SalesOrder;
 use App\Model\SalesOrderInfo;
 use App\Model\SalesOrderProductInfo;
@@ -13,7 +14,7 @@ use Illuminate\Support\Facades\DB;
 class SalesOrderService extends Service
 {
     public function salesOrderEdit($data,$user){
-        list($status,$msg) = $this->salesOrderRule($data,false);
+        list($status,$msg) = $this->salesOrderRule($data, $user, false);
         if(!$status) return [$status,$msg];
 
         try {
@@ -50,6 +51,7 @@ class SalesOrderService extends Service
             $model->color = $data['color'] ?? '';
             $model->original_set = $data['original_set'] ?? '';
             $model->processing = $data['processing'] ?? '';
+            $model->depart_id = $data['depart_id'] ?? 0;
             $model->save();
             $time = time();
 
@@ -105,9 +107,9 @@ class SalesOrderService extends Service
                     $insert[] = [
                         'sales_order_id' => $model->id,
                         'product_id' => $value['product_id'],
-                        'price' => $value['price'],
+                        'price' => $value['retail_price'],
                         'number' => $value['number'],
-                        'mark' => $value['mark'],
+                        'mark' => $value['mark'] ?? '',
                         'crt_time' => $time,
                     ];
                 }
@@ -124,7 +126,7 @@ class SalesOrderService extends Service
     }
 
     public function salesOrderAdd($data,$user){
-        list($status,$msg) = $this->salesOrderRule($data);
+        list($status,$msg) = $this->salesOrderRule($data,$user);
         if(!$status) return [$status,$msg];
 
         try {
@@ -161,9 +163,11 @@ class SalesOrderService extends Service
             $model->color = $data['color'] ?? '';
             $model->original_set = $data['original_set'] ?? '';
             $model->processing = $data['processing'] ?? '';
+            $model->depart_id = $data['depart_id'] ?? 0;
             $model->crt_id = $user['id'];
             $model->save();
             $time = time();
+
             if(! empty($data['employee_one'])){
                 $insert = [];
                 foreach ($data['employee_one'] as $value){
@@ -189,6 +193,7 @@ class SalesOrderService extends Service
                 }
                 SalesOrderInfo::insert($insert);
             }
+
             if(! empty($data['employee_three'])){
                 $insert = [];
                 foreach ($data['employee_three'] as $value){
@@ -210,7 +215,7 @@ class SalesOrderService extends Service
                         'product_id' => $value['product_id'],
                         'price' => $value['retail_price'],
                         'number' => $value['number'],
-                        'mark' => $value['mark']??'',
+                        'mark' => $value['mark'] ?? '',
                         'crt_time' => $time,
                     ];
                 }
@@ -268,7 +273,6 @@ class SalesOrderService extends Service
             $sales['pay_way'],
             $sales['send_state'],
             $sales['logistics_company'],
-            $sales['state_type'],
         ];
         $basic_map = BasicType::whereIn('id',$array)
             ->pluck('title','id')
@@ -282,7 +286,6 @@ class SalesOrderService extends Service
             $sales[$key]['pay_way_title'] = $basic_map[$value['pay_way']] ?? '';
             $sales[$key]['send_state_title'] = $basic_map[$value['send_state']] ?? '';
             $sales[$key]['logistics_company_title'] = $basic_map[$value['logistics_company']] ?? '';
-            $sales[$key]['state_type_title'] = $basic_map[$value['state_type']] ?? '';
         }
         $sales = $sales[0];
 
@@ -311,12 +314,23 @@ class SalesOrderService extends Service
             ->where('sales_order_id',$sales['id'])
             ->select('id','sales_order_id','product_id','mark','price','number')
             ->get()->toArray();
+        $pro = Product::whereIn('id',array_column($sales_p_info,'product_id'))
+            ->select('bar_code','code','cost','depart_price','size','title','id')
+            ->get()->toArray();
+        $pro = array_column($pro,null,'id');
         foreach ($sales_p_info as $value){
+            $p = $pro[$value['product_id']] ?? [];
             $sales['product'][] = [
                 'product_id' => $value['product_id'],
                 'mark' => $value['mark'],
-                'price' => $value['price'],
+                'retail_price' => $value['price'],
                 'number' => $value['number'],
+                'bar_code' => $p['bar_code'] ?? '',
+                'code' => $p['code'] ?? '',
+                'cost' => $p['cost'] ?? 0,
+                'depart_price' => $p['depart_price'] ?? 0,
+                'size' => $p['size'] ?? '',
+                'title' => $p['title'] ?? '',
             ];
         }
         $sales['crt_name'] = $emp_map[$sales['crt_id']] ?? '';
@@ -326,12 +340,26 @@ class SalesOrderService extends Service
     }
 
     public function salesOrderList($data,$user){
-        $model = SalesOrder::where('del_time',0)
+        $model = new SalesOrder(['userData' => $user]);
+        $model = $model->where('del_time',0)
             ->select('title','id','model_type','order_number','selling_price','vin_no','car_type','order_type','deal_type','customer_id','sign_time','contract_state','crt_id','crt_time','mark','product_total','rate','construction_time','handover_time','expire_time','other_fee','discount_fee','contract_fee','contract_type','pay_way','send_state','logistics_company','logistics_number','car_type','year','mileage','color','original_set','processing','state')
-            ->orderby('id', 'desc')
-            ->where('model_type',$data['model_type']);
+            ->orderby('id', 'desc');
 
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+        if(! empty($data['model_type'])) $model->where('model_type',$data['model_type']);
+        if(! empty($data['time_type'])) {
+            if($data['time_type'] == 1) {
+                $start = strtotime('today');
+                $end = strtotime('tomorrow') - 1;
+            }elseif ($data['time_type'] == 2){
+                $start = strtotime('this week',strtotime('today'));
+                $end = strtotime('this week +6 days 23:59:59', strtotime('today'));
+            }
+            if(! empty($start) && ! empty($end)) {
+                $model->where('crt_time','>=',$start);
+                $model->where('crt_time','<=',$end);
+            }
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list);
@@ -339,7 +367,7 @@ class SalesOrderService extends Service
         return [true, $list];
     }
 
-    public function salesOrderRule(&$data, $is_add = true){
+    public function salesOrderRule(&$data, $user, $is_add = true){
         if(empty($data['model_type'])) return [false,'订单模板类型不能为空'];
         if(! in_array($data['model_type'],SalesOrder::$model_type)) return [false,'订单模板类型错误'];
         if(empty($data['order_number'])) return [false,'合同编号不能为空'];
@@ -356,26 +384,26 @@ class SalesOrderService extends Service
             $res = $this->checkNumber($value['number']);
             if(! $res) return [false,'请输入正确的产品数量'];
 
-//            if(empty($value['price'])) return [false,'产品单价不能为空'];
-//            $res = $this->checkNumber($value['price']);
-//            if(! $res) return [false,'产品单价请输入不超过两位小数的数值'];
+            if(empty($value['retail_price'])) return [false,'产品零售价不能为空'];
+            $res = $this->checkNumber($value['retail_price']);
+            if(! $res) return [false,'产品零售价请输入不超过两位小数并且大于0的数值'];
         }
         if(empty($data['contract_fee'])) return [false,'合同金额不能为空'];
         $res = $this->checkNumber($data['contract_fee']);
-        if(! $res) return [false, '合同金额请输入不超过两位小数的数值'];
-
+        if(! $res) return [false, '合同金额请输入不超过两位小数并且大于0的数值'];
         if(! empty($data['rate'])){
             $res = $this->checkNumber($data['rate']);
-            if(! $res) return [false, '整单扣除率请输入不超过两位小数的数值'];
+            if(! $res) return [false, '整单扣除率请输入不超过两位小数并且大于0的数值'];
         }
         if(! empty($data['other_fee'])){
             $res = $this->checkNumber($data['other_fee']);
-            if(! $res) return [false, '其它费用请输入不超过两位小数的数值'];
+            if(! $res) return [false, '其它费用请输入不超过两位小数并且大于0的数值'];
         }
         if(! empty($data['discount_fee'])){
             $res = $this->checkNumber($data['discount_fee']);
-            if(! $res) return [false, '优惠金额请输入不超过两位小数的数值'];
+            if(! $res) return [false, '优惠金额请输入不超过两位小数并且大于0的数值'];
         }
+        if(empty($data['depart_id'])) $data['depart_id'] = $this->getDepart($user);
 
         if($data['model_type'] == SalesOrder::Model_type_one){
             if(empty($data['order_type'])) return [false,'订单类型不能为空'];
@@ -420,7 +448,7 @@ class SalesOrderService extends Service
     public function fillData($data){
         if(empty($data['data'])) return $data;
 
-        $array = array_unique(array_merge_recursive(array_column($data['data'],'order_type'),array_column($data['data'],'deal_type'),array_column($data['data'],'contract_state'),array_column($data['data'],'car_type'),array_column($data['data'],'pay_way'),array_column($data['data'],'logistics_company'),array_column($data['data'],'state_type'),array_column($data['data'],'send_state')));
+        $array = array_unique(array_merge_recursive(array_column($data['data'],'order_type'),array_column($data['data'],'deal_type'),array_column($data['data'],'contract_state'),array_column($data['data'],'car_type'),array_column($data['data'],'pay_way'),array_column($data['data'],'logistics_company'),array_column($data['data'],'send_state'),array_column($data['data'],'contract_type')));
         $basic_map = BasicType::whereIn('id',$array)
             ->pluck('title','id')
             ->toArray();
@@ -435,11 +463,11 @@ class SalesOrderService extends Service
             $data['data'][$key]['order_type_title'] = $basic_map[$value['order_type']] ?? '';
             $data['data'][$key]['deal_type_title'] = $basic_map[$value['deal_type']] ?? '';
             $data['data'][$key]['contract_state_title'] = $basic_map[$value['contract_state']] ?? '';
+            $data['data'][$key]['contract_type_title'] = $basic_map[$value['contract_type']] ?? '';
             $data['data'][$key]['car_type_title'] = $basic_map[$value['car_type']] ?? '';
             $data['data'][$key]['pay_way_title'] = $basic_map[$value['pay_way']] ?? '';
             $data['data'][$key]['send_state_title'] = $basic_map[$value['send_state']] ?? '';
             $data['data'][$key]['logistics_company_title'] = $basic_map[$value['logistics_company']] ?? '';
-            $data['data'][$key]['state_type_title'] = $basic_map[$value['state_type']] ?? '';
             $data['data'][$key]['customer_title'] = $customer[$value['customer_id']] ?? '';
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
             $data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
@@ -455,6 +483,6 @@ class SalesOrderService extends Service
         $order_number = OrderNoService::createSalesOrderNumber($prefix);
         if(! $order_number) return [false,'合同编号生成失败!'];
 
-        return [false,$order_number];
+        return [true, ['order_number' => $order_number]];
     }
 }

+ 10 - 3
app/Service/Service.php

@@ -305,8 +305,8 @@ class Service
         $formattedDate1 = $dateTime1->format('Y-m-d');
 
         $return = [];
-        $return[] = $formattedDate;
-        $return[] = $formattedDate1;
+        $return[] = strtotime($formattedDate);
+        $return[] = strtotime($formattedDate1);
 
         return $return;
     }
@@ -325,7 +325,7 @@ class Service
         // 将日期时间格式化为特定格式
         $formattedDate = $dateTime->format('Y-m-d H:i');
 
-        return $formattedDate;
+        return strtotime($formattedDate);
     }
 
     /**
@@ -346,4 +346,11 @@ class Service
 
         return true;
     }
+
+    public function getDepart($user){
+        if(empty($user)) return 0;
+        if(! empty($user['is_main'])) return 0;
+        $depart = array_shift($user['depart_has']);
+        return $depart;
+    }
 }

+ 3 - 2
app/Service/SysMenuService.php

@@ -135,8 +135,9 @@ class SysMenuService extends Service
                 ->select('title','icon','uri','parent_id','sort','crt_time','id')
                 ->orderBy('sort','desc');
             if($user['id'] != Employee::SPECIAL_ADMIN){
-                $role = EmployeeService::getPersonRole($user['id']);
-                $menu = EmployeeService::getMenuByRole($role,$user['id']);
+                $emp = new EmployeeService();
+                $role = $emp->getPersonRole($user['id']);
+                $menu = $emp->getMenuByRole($role,$user['id']);
                 $list->whereIn('id',array_column($menu,'menu_id'));
             }
             $list = $list->get()->toArray();