cqp hai 11 meses
pai
achega
ad5188eca9

+ 16 - 1
app/Http/Middleware/CheckLogin.php

@@ -39,7 +39,22 @@ class CheckLogin
         //角色里所有菜单权限
         $data['role_authority'] = EmployeeService::getPersonRoleQx($data['role']);
         //角色里特殊的按钮
-        $data['special_button'] = EmployeeService::getSpecialButton($data['role'],$result);
+//        $data['special_button'] = EmployeeService::getSpecialButton($data['role'],$result);
+        //我的部门
+        $data['depart_range'] = EmployeeService::getLoginDepart($result);
+        //部门下的人
+        $data['man_range'] = EmployeeService::getLoginDepartOfMan($data['depart_range']);
+
+        $is_authority = $menu_id = 0;
+        $query = config('morequery');
+        $url = $request->path();
+        $menu = $query['menu_auth'] ?? [];
+        if(isset($menu[$url])) {
+            $is_authority = 1;
+            $menu_id = $menu[$url];
+        }
+        //该接口是否需要个人部门所有的权限区分
+        $request->merge(['is_authority' => $is_authority, 'menu_authority_id' => $menu_id]);
 
         //写入user信息
         $request->userData = $data;

+ 18 - 635
app/Model/UseScopeBaseModel.php

@@ -59,654 +59,37 @@ class UseScopeBaseModel extends Model
         return $query;
     }
 
-    //部门和顶级部门(公司)过滤
-    public function scopeClear($query, $user, $search)
+    //
+    public function scopeKqClear($query, $user, $search)
     {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-        //我可见的
-        if(isset($search['is_see'])){
-            if($search['is_see']){
-                $is_see = 1;
-            }else{
-                $is_see = 0;
-            }
-        }else{
-            $is_see = 0;
-        }
-
-        //全部 待审 待我审核
-        if(isset($search['is_check'])){
-            if($search['is_check']){
-                $is_check = $search['is_check'];
-            }else{
-                $is_check = 0;
-            }
-        }else{
-            $is_check = 0;
-        }
-
-        $model = $query->getModel(); // 获取模型的实例
-        $className = get_class($model); // 获取模型类名
-
-        //可见范围方法
-        $range_function = "";
-        if (defined($className . '::range_function')) $range_function = $className::range_function;
-        $function_range_bool = $this->hasMethod(new RangeService(),$range_function);
-
-        //全部 待审 已审
-        $is_check_function = "";
-        if (defined($className . '::is_check_function')) $is_check_function = $className::is_check_function;
-        $is_check_function_bool = $this->hasMethod(new RangeService(),$is_check_function);
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0; //顶级公司
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $user['depart_top'][0] ?? [];
-            $top_depart_id = $top_depart_id['depart_id'] ?? 0;
-        }else{
-            //查询 顶级公司
-            $top_depart_id = $search_depart_id;
-        }
-
-        $id = [];
-        //可见范围 以及单据里面填写人员 (状态类 是全部时检索)
-        if($function_range_bool) $id = RangeService::$range_function($user,$search);
-
-        //全部0 待审1 已审2 (状态类 是全部时检索)
-        $check_search = "";
-        if($is_check_function_bool && $is_check) $check_search = RangeService::$is_check_function($user,$search);
+        //权限范围内的人
+        $man_range = $user['man_range'] ?? [];
+        $man_number = array_unique(array_column($man_range,'number'));
 
         //个人部门所有
         $auth_type = $this->getQx($search,$user);
 
-        if($is_all_depart){
-            //所有权限
-            if(empty($search_depart_id)){
-                if($is_see){
-                    //可见
-                    $query->whereIn('id', $id);
-                }elseif ($is_check){
-                    if(! $auth_type){
-                        //全部
-                        $query->whereIn('depart_id', $depart_range)
-                            ->when(! empty($check_search), function ($query) use ($check_search) {
-                                return $query->whereRaw($check_search);
-                            });
-                    }else{
-                        if($auth_type == 1) { //我创建的 且加上可见
-                            $query->where('crt_id',$user['id'])
-                                ->when(! empty($check_search), function ($query) use ($check_search) {
-                                    return $query->whereRaw($check_search);
-                                })
-                                ->when(! empty($id), function ($query) use ($id) {
-                                    return $query->orWhereIn('id', $id);
-                                });
-                        }elseif ($auth_type == 2 || $auth_type == 3){
-                            //自己权限范围内的部门 或 所有
-                            $query->whereIn('depart_id', $depart_range)
-                            ->when(! empty($check_search), function ($query) use ($check_search) {
-                                return $query->whereRaw($check_search);
-                            });
-                        }
-                    }
-                }else{
-                    if(! $auth_type){
-                        //全部
-                        $query->whereIn('depart_id', $depart_range);
-                    }else{
-                        if($auth_type == 1) { //我创建的 且加上可见
-                            $query->where('crt_id',$user['id'])
-                                ->when(! empty($id), function ($query) use ($id) {
-                                    return $query->orWhereIn('id', $id);
-                                });
-                        }elseif ($auth_type == 2 || $auth_type == 3){
-                            //自己权限范围内的部门 或 所有
-                            $query->whereIn('depart_id', $depart_range);
-                        }
-                    }
-                }
-            }else{
-                if($is_see){
-                    //查看指定公司 且 我可见
-                    $query->whereIn('id', $id);
-                }elseif ($is_check){
-                    if(! $auth_type){
-                        //查看指定公司
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->when(! empty($check_search), function ($query) use ($check_search) {
-                                return $query->whereRaw($check_search);
-                            });
-                    }else{
-                        if($auth_type == 1) { //指定公司下 且 我创建的  且加上可见
-                            $query->where('top_depart_id', $top_depart_id)
-                                ->where('crt_id',$user['id'])
-                                ->when(! empty($check_search), function ($query) use ($check_search) {
-                                    return $query->whereRaw($check_search);
-                                })
-                                ->when(! empty($id), function ($query) use ($id) {
-                                    return $query->orWhereIn('id', $id);
-                                });
-                        }elseif ($auth_type == 2 || $auth_type == 3){
-                            // (指定公司下的 且 自己权限范围内的部门 或 所有) 且加上可见
-                            $query->where('top_depart_id', $top_depart_id)
-                                ->whereIn('depart_id', $depart_range)
-                                ->when(! empty($check_search), function ($query) use ($check_search) {
-                                    return $query->whereRaw($check_search);
-                                })
-                                ->when(! empty($id), function ($query) use ($id) {
-                                    return $query->orWhereIn('id', $id);
-                                });
-                        }
-                    }
-                }else{
-                    if(! $auth_type){
-                        //查看指定公司
-                        $query->where('top_depart_id', $top_depart_id);
-                    }else{
-                        if($auth_type == 1) { //指定公司下 且 我创建的  且加上可见
-                            $query->where('top_depart_id', $top_depart_id)
-                                ->where('crt_id',$user['id'])
-                                ->when(! empty($id), function ($query) use ($id) {
-                                    return $query->orWhereIn('id', $id);
-                                });
-                        }elseif ($auth_type == 2 || $auth_type == 3){
-                            // (指定公司下的 且 自己权限范围内的部门 或 所有) 且加上可见
-                            $query->where('top_depart_id', $top_depart_id)
-                                ->whereIn('depart_id', $depart_range)
-                                ->when(! empty($id), function ($query) use ($id) {
-                                    return $query->orWhereIn('id', $id);
-                                });
-                        }
-                    }
-                }
-            }
-        }else{
-            //非所有权限
-            if($is_see){
-                //某个分社可见
-                $query->whereIn('id', $id);
-            }elseif ($is_check){
-                if(! $auth_type){
-                    //指定公司下全部  且加上可见
-                    $query->where('top_depart_id', $top_depart_id)
-                        ->whereIn('depart_id', $depart_range)
-                        ->when(! empty($check_search), function ($query) use ($check_search) {
-                            return $query->whereRaw($check_search);
-                        })
-                        ->when(! empty($id), function ($query) use ($id) {
-                            return $query->orWhereIn('id', $id);
-                        });
-                }else{
-                    if($auth_type == 1) {
-                        //指定公司下 且 我创建的 且加上可见
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->where('crt_id',$user['id'])
-                            ->when(! empty($check_search), function ($query) use ($check_search) {
-                                return $query->whereRaw($check_search);
-                            })
-                            ->when(! empty($id), function ($query) use ($id) {
-                                return $query->orWhereIn('id', $id);
-                            });
-                    }elseif ($auth_type == 2) {
-                        //指定公司下 且 自己权限范围内的部门 且加上可见
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->whereIn('depart_id', $depart_range)
-                            ->when(! empty($check_search), function ($query) use ($check_search) {
-                                return $query->whereRaw($check_search);
-                            })
-                            ->when(! empty($id), function ($query) use ($id) {
-                                return $query->orWhereIn('id', $id);
-                            });
-                    }elseif ($auth_type == 3) {
-                        // 指定公司下所有 且加上可见
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->when(! empty($check_search), function ($query) use ($check_search) {
-                                return $query->whereRaw($check_search);
-                            })
-                            ->when(! empty($id), function ($query) use ($id) {
-                                return $query->orWhereIn('id', $id);
-                            });
-                    }
-                }
-            }else{
-                if(! $auth_type){
-                    //指定公司下全部  且加上可见
-                    $query->where('top_depart_id', $top_depart_id)
-                        ->whereIn('depart_id', $depart_range)
-                        ->when(! empty($id), function ($query) use ($id) {
-                            return $query->orWhereIn('id', $id);
-                        });
-                }else{
-                    if($auth_type == 1) {
-                        //指定公司下 且 我创建的 且加上可见
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->where('crt_id',$user['id'])
-                            ->when(! empty($id), function ($query) use ($id) {
-                                return $query->orWhereIn('id', $id);
-                            });
-                    }elseif ($auth_type == 2) {
-                        //指定公司下 且 自己权限范围内的部门 且加上可见
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->whereIn('depart_id', $depart_range)
-                            ->when(! empty($id), function ($query) use ($id) {
-                                return $query->orWhereIn('id', $id);
-                            });
-                    }elseif ($auth_type == 3) {
-                        // 指定公司下所有 且加上可见
-                        $query->where('top_depart_id', $top_depart_id)
-                            ->when(! empty($id), function ($query) use ($id) {
-                                return $query->orWhereIn('id', $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);
-        }
-    }
-
-    //部门和顶级部门(公司)过滤 取别名a
-    public function scopeAClear($query, $user, $search)
-    {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-        //我可见的
-        $is_see = $search['is_see'] ?? 0;
-
-        //可见范围方法
-        $model = $query->getModel(); // 获取模型的实例
-        $range_function = $model::range_function ?? ""; // 访问静态属性
-        $is_function_range = $this->hasMethod(new RangeService(),$range_function);
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0; //顶级公司
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $user['depart_top'][0] ?? [];
-            $top_depart_id = $top_depart_id['depart_id'] ?? 0;
-        }else{
-            //查询 顶级公司
-            $top_depart_id = $search_depart_id;
-        }
-
-        $id = [];
-        //可见范围 以及单据里面填写人员
-        if($is_function_range) $id = RangeService::$range_function($user,$search);
-
-        //个人部门所有
-        $auth_type = $this->getQx($search,$user);
-
-        if($is_all_depart){
-            //所有权限
-            if(empty($search_depart_id)){
-                if(! $is_see){
-                    if(! $auth_type){
-                        //全部
-                        $query->whereIn('a.depart_id', $depart_range);
-                    }else{
-                        if($auth_type == 1) { //我创建的 且加上可见
-                            $query->where('a.crt_id',$user['id'])
-                                ->orWhereIn('a.id', $id);
-                        }elseif ($auth_type == 2 || $auth_type == 3){
-                            //自己权限范围内的部门 或 所有
-                            $query->whereIn('a.depart_id', $depart_range);
-                        }
-                    }
-                }else{
-                    //可见
-                    $query->whereIn('a.id', $id);
-                }
-            }else{
-                if(! $is_see){
-                    if(! $auth_type){
-                        //查看指定公司
-                        $query->where('a.top_depart_id', $top_depart_id);
-                    }else{
-                        if($auth_type == 1) { //指定公司下 且 我创建的  且加上可见
-                            $query->where('a.top_depart_id', $top_depart_id)
-                                ->where('a.crt_id',$user['id'])
-                                ->orWhereIn('a.id', $id);
-                        }elseif ($auth_type == 2 || $auth_type == 3){
-                            // (指定公司下的 且 自己权限范围内的部门 或 所有) 且加上可见
-                            $query->where('a.top_depart_id', $top_depart_id)
-                                ->whereIn('a.depart_id', $depart_range)
-                                ->orWhereIn('a.id', $id);
-                        }
-                    }
-                }else{
-                    //查看指定公司 且 我可见
-                    $query->whereIn('a.id', $id);
-                }
-            }
-        }else{
-            //非所有权限
-            if(! $is_see){
-                if(! $auth_type){
-                    //指定公司下全部  且加上可见
-                    $query->where('a.top_depart_id', $top_depart_id)
-                        ->whereIn('a.depart_id', $depart_range)
-                        ->orWhereIn('a.id', $id);
-                }else{
-                    if($auth_type == 1) {
-                        //指定公司下 且 我创建的 且加上可见
-                        $query->where('a.top_depart_id', $top_depart_id)
-                            ->where('a.crt_id',$user['id'])
-                            ->orWhereIn('a.id', $id);
-                    }elseif ($auth_type == 2) {
-                        //指定公司下 且 自己权限范围内的部门 且加上可见
-                        $query->where('a.top_depart_id', $top_depart_id)
-                            ->whereIn('a.depart_id', $depart_range)
-                            ->orWhereIn('a.id', $id);
-                    }elseif ($auth_type == 3) {
-                        // 指定公司下所有 且加上可见
-                        $query->where('a.top_depart_id', $top_depart_id)
-                            ->orWhereIn('a.id', $id);
-                    }
-                }
-            }else{
-                //某个分社可见
-                $query->whereIn('a.id', $id);
-            }
-        }
-    }
-
-    //部门和顶级部门(公司)过滤 Old
-    public function scopeClear1($query, $user, $search)
-    {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-        //我可见的
-        $is_see = $search['is_see'] ?? 0;
-
-        //可见范围方法
-        $model = $query->getModel(); // 获取模型的实例
-        $range_function = $model::range_function ?? ""; // 访问静态属性
-        $is_function_range = $this->hasMethod(new RangeService(),$range_function);
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0; //顶级公司
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $user['depart_top'][0] ?? [];
-            $top_depart_id = $top_depart_id['depart_id'] ?? 0;
-        }else{
-            //查询 顶级公司
-            $top_depart_id = $search_depart_id;
-        }
-
-        $id = [];
-        //可见范围 以及单据里面填写人员
-        if($is_function_range) $id = RangeService::$range_function($user,$search);
-
-        if($is_all_depart){
-            //所有部门
-            if(empty($search_depart_id)){
-                if(! $is_see){
-                    //全部
-                    $query->whereIn('depart_id', $depart_range);
-                }else{
-                    //可见
-                    $query->whereIn('id', $id);
-                }
-            }else{
-                if(! $is_see){
-                    //查看某个分社
-                    $query->where('top_depart_id', $top_depart_id);
-                }else{
-                    //查看某个分社可见
-                    $query->whereIn('id', $id);
-                }
-            }
-        }else{
-            //某个分社
-            if(! $is_see){
-                //某个分社全部
-                $query->where('top_depart_id', $top_depart_id)
-                    ->whereIn('depart_id', $depart_range)
-                    ->orWhereIn('id', $id);
-            }else{
-                //某个分社可见
-                $query->whereIn('id', $id);
-            }
-        }
-    }
-
-    //顶级部门过滤 取别名a
-    public function scopeATopClear($query, $user, $search)
-    {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0;
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $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)){
-                //全部
-                $query->whereIn('a.top_depart_id', $depart_range);
-            }else{
-                //查看某个分社
-                $query->where('a.top_depart_id', $top_depart_id);
-            }
+        if($auth_type <= 0){
+            //不需要分个人部门所有的数据
+            if($auth_type == 0) $query->whereIn('number', $man_number);
         }else{
-            //某个分社全部
-            $query->where('a.top_depart_id', $top_depart_id);
-        }
-
-        return $query;
-    }
-
-    //产品不可见 部门和顶级部门(公司)过滤
-    public function scopeProductClear($query, $user, $search)
-    {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-        //总社id
-        $top_depart_id = $user['head'] ?? [];
-        $top_depart = $top_depart_id['id'] ?? 0;
-
-        //可见范围方法
-        $model = $query->getModel(); // 获取模型的实例
-        $range_function = $model::range_function ?? ""; // 访问静态属性
-        $is_function_range = $this->hasMethod(new RangeService(),$range_function);
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0; //顶级公司
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $user['depart_top'][0] ?? [];
-            $top_depart_id = $top_depart_id['depart_id'] ?? 0;
-        }else{
-            //查询 顶级公司
-            $top_depart_id = $search_depart_id;
-        }
-
-        $id = [];
-        //产品 不可见范围
-        if($is_function_range) $id = RangeService::$range_function($user,$search);
-
-        if($is_all_depart){
-            //所有部门
-            if(empty($search_depart_id)){
-                //全部
-                $query->whereIn('depart_id', $depart_range);
-            }else{
-                //查看某个分社
-                $query->where('top_depart_id', $top_depart_id);
+            if($auth_type == 1) { //我的
+                $query->where('number',$user['number']);
+            }elseif ($auth_type == 2 || $auth_type == 3){
+                //自己权限范围内的部门 或 所有
+                $query->whereIn('number', $man_number);
             }
-        }else{
-            //某个分社全部 去掉不可见数
-            $query->where('top_depart_id', $top_depart_id)
-                ->whereIn('depart_id', $depart_range)
-                ->orWhere('top_depart_id',$top_depart)
-                ->whereNotIn('id', $id);
-        }
-    }
-
-    //产品不可见 部门和顶级部门(公司)过滤
-    public function scopeProductClear2($query, $user, $search)
-    {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-        //总社id
-        $top_depart_id = $user['head'] ?? [];
-        $top_depart = $top_depart_id['id'] ?? 0;
-
-        //可见范围方法
-        $model = $query->getModel(); // 获取模型的实例
-        $range_function = $model::range_function ?? ""; // 访问静态属性
-        $is_function_range = $this->hasMethod(new RangeService(),$range_function);
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0; //顶级公司
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $user['depart_top'][0] ?? [];
-            $top_depart_id = $top_depart_id['depart_id'] ?? 0;
-        }else{
-            //查询 顶级公司
-            $top_depart_id = $search_depart_id;
-        }
-
-        $id = [];
-        //产品 不可见范围
-        if($is_function_range) $id = RangeService::$range_function($user,$search);
-
-        if($is_all_depart){
-            //所有部门
-            if(empty($search_depart_id)){
-                //全部
-                $query->whereIn('depart_id', $depart_range);
-            }else{
-                //查看某个分社
-                $query->where('top_depart_id', $top_depart_id)
-                    ->orWhere('top_depart_id',$top_depart);
-            }
-        }else{
-            //某个分社全部 去掉不可见数
-            $query->where('top_depart_id', $top_depart_id)
-                ->whereIn('depart_id', $depart_range)
-                ->orWhere('top_depart_id',$top_depart)
-                ->whereNotIn('id', $id);
-        }
-    }
-
-    //活动包 部门和顶级部门(公司)过滤
-    public function scopeSportsBagClear($query, $user, $search)
-    {
-        //是否所有部门
-        $is_all_depart = $user['is_all_depart'] ?? 0;
-        //权限范围内的部门
-        $depart_range = $user['depart_range'] ?? [];
-        //总社id
-        $top_depart_id = $user['head'] ?? [];
-        $top_depart = $top_depart_id['id'] ?? 0;
-
-        //可见范围方法
-        $model = $query->getModel(); // 获取模型的实例
-        $range_function = $model::range_function ?? ""; // 访问静态属性
-        $is_function_range = $this->hasMethod(new RangeService(),$range_function);
-
-        $model = $query->getModel(); // 获取模型的实例
-        $className = get_class($model); // 获取模型类名
-
-        //全部 待审 待我审核
-        if(isset($search['is_check'])){
-            if($search['is_check']){
-                $is_check = $search['is_check'];
-            }else{
-                $is_check = 0;
-            }
-        }else{
-            $is_check = 0;
-        }
-
-        //全部 待审 已审
-        $is_check_function = "";
-        if (defined($className . '::is_check_function')) $is_check_function = $className::is_check_function;
-        $is_check_function_bool = $this->hasMethod(new RangeService(),$is_check_function);
-
-        //全部0 待审1 已审2 (状态类 是全部时检索)
-        $check_search = "";
-        if($is_check_function_bool && $is_check) $check_search = RangeService::$is_check_function($user,$search);
-
-        //顶级部门
-        $search_depart_id = $search['top_depart_id'] ?? 0; //顶级公司
-        if(empty($search_depart_id)){
-            //默认进来 自身顶级公司
-            $top_depart_id = $user['depart_top'][0] ?? [];
-            $top_depart_id = $top_depart_id['depart_id'] ?? 0;
-        }else{
-            //查询 顶级公司
-            $top_depart_id = $search_depart_id;
-        }
-
-        $id = [];
-        //不可见范围
-        if($is_function_range) $id = RangeService::$range_function($user,$search);
-
-        if($is_all_depart){
-            //所有部门
-            if(empty($search_depart_id)){
-                //全部
-                $query->whereIn('depart_id', $depart_range)
-                    ->when(! empty($check_search), function ($query) use ($check_search) {
-                        return $query->whereRaw($check_search);
-                    });
-            }else{
-                //查看某个分社
-                $query->where('top_depart_id', $top_depart_id)
-                    ->when(! empty($check_search), function ($query) use ($check_search) {
-                        return $query->whereRaw($check_search);
-                    });
-            }
-        }else{
-            //某个分社全部 去掉不可见数
-            $query->where('top_depart_id', $top_depart_id)
-                ->when(! empty($check_search), function ($query) use ($check_search) {
-                    return $query->whereRaw($check_search);
-                })
-                ->whereIn('depart_id', $depart_range)
-                ->orWhere('top_depart_id',$top_depart)
-                ->whereNotIn('id', $id);
         }
     }
 
     public function getQx($data, $user){
-        if(empty($data['menu_id'])) return 0;
-        if($user['id'] == Employee::SPECIAL_ADMIN) return 0;
-        if(! empty($user['role_authority'][$data['menu_id']])) {
+        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_id']];
+            return $user['role_authority'][$data['menu_authority_id']];
         }else{
-            return 0;
+            return 1;
         }
     }
 

+ 2 - 1
app/Service/EmployeeService.php

@@ -1223,6 +1223,7 @@ class EmployeeService extends Service
             foreach ($depart as $value){
                 if(in_array($value['depart_id'], $depart_range)) continue;
                 $tmp = self::getAllIds($list, $value['depart_id']);
+                $tmp = array_merge([$value['depart_id']],$tmp);
                 $depart_range = array_merge_recursive($depart_range, $tmp);
             }
             $depart_range = array_unique($depart_range);
@@ -1238,7 +1239,7 @@ class EmployeeService extends Service
             ->select('employee_id')
             ->get()->toArray();
 
-        return Employee::whereIn('id',array_unique($employee_id))
+        return Employee::whereIn('id',array_unique(array_column($employee_id,'employee_id')))
             ->select('id','number')
             ->get()->toArray();
     }

+ 39 - 1139
app/Service/KqService.php

@@ -2,75 +2,57 @@
 
 namespace App\Service;
 
-
-use App\Model\BasicRollFilm;
-use App\Model\Construction;
-use App\Model\Depart;
-use App\Model\Employee;
-use App\Model\EmployeeDepartPermission;
-use App\Model\EmployeeTeamPermission;
 use App\Model\KqList;
-use App\Model\Oa;
-use App\Model\OaOrder;
-use App\Model\OaOrderSub;
-use App\Model\OaOrderSubEmployee;
-use App\Model\OaReportOrder;
-use App\Model\OaReportOrderEmployee;
-use App\Model\OaSub;
-use App\Model\OaSubEmployee;
-use App\Model\OaSubReportEmployee;
-use App\Model\OaSubRule;
-use App\Model\RollFilm;
-use App\Model\RollFilmCombine;
-use App\Model\RollFilmCompany;
-use App\Model\SysMenu;
-use App\Model\Team;
-use App\Service\Weixin\WxSendMessageService;
-use App\Service\Wx\WxService;
-use Illuminate\Support\Facades\App;
 use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Log;
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Route;
 
-/**
- * bom相关
- * @package App\Models
- */
 class KqService extends Service
 {
-    public $user;
-
-    public function __construct($user = '')
-    {
-        parent::__construct();
-        $this->user = $user;
-    }
-
     public function kqList($data,$user)
     {
-       $list = KqList::orderBy('id','desc');
-       $list = $this->limit($list,'*',$data);
+        $model = KqList::KqClear($user, $data);
+        $model->select("number","emp_fname as name","crt_time")
+            ->orderBy('id','desc');
+
+        if(! empty($data['number'])) $model->where('number',$data['number']);
+        if(! empty($data['name'])) $model->where('emp_fname', 'LIKE', '%'.$data['name'].'%');
+
+        $list = $this->limit($model,'',$data);
+        $list = $this->fillData($list);
 
         return [true, $list];
     }
 
-    public function kqCollect($data,$usser) {
-        $start_time = $data['start_time'] ?? strtotime(date('Y-m').'-01');
+    public function fillData($data){
+        if(empty($data['data'])) return $data;
+
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['crt_time'] = date("Y-m-d H:i:s", $value['crt_time']);
+        }
+
+        return $data;
+    }
+
+    public function kqCollect($data,$user) {
+        if(empty($data['crt_time'][0]) || empty($data['crt_time'][1])) return [false,'时间必须选择'];
+        $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
 
-        $end_time   = $data['end_time'] ?? strtotime(date('Y-m', strtotime('first day of next month')).'-01');
-        $list = KqList::select(
-            'number',
-            'emp_fname',
-            DB::raw('FROM_UNIXTIME(crt_time, "%Y-%m-%d") as date'),
-            DB::raw('MAX(crt_time) as max_crt_time'),
-            DB::raw('MIN(crt_time) as min_crt_time')
-        )
-            ->where('crt_time', '>=', $start_time)
-            ->where('crt_time', '<', $end_time)
+        $model = KqList::KqClear($user,$data);
+        if(! empty($data['number'])) $model->where('number',$data['number']);
+        if(! empty($data['name'])) $model->where('emp_fname', 'LIKE', '%'.$data['name'].'%');
+
+        $list = $model->whereBetween('crt_time',[$return[0], $return[1]])
+            ->select('number',"emp_fname as name", DB::raw('FROM_UNIXTIME(crt_time, "%Y-%m-%d") as date'), DB::raw('MAX(crt_time) as max_crt_time'), DB::raw('MIN(crt_time) as min_crt_time'))
             ->groupBy('number', DB::raw('FROM_UNIXTIME(crt_time, "%Y-%m-%d")'))
             ->get()
             ->toArray();
+        $return = $this->fillKqCollectData($list);
+
+        return [true, $return];
+    }
+
+    public function fillKqCollectData($data){
+        if(empty($data)) return $data;
+
         //这边需要把数据处理成每人的总统计
         //['考勤天数','总工时','迟到次数','迟到总工时','早退次数','早退总工时','加班次数','加班总工时']
         $total_key = [];
@@ -80,12 +62,11 @@ class KqService extends Service
         $overtime_hour = 1;
         $overtime = '2';
 
-
-        foreach ($list as $v){
+        foreach ($data as $v){
             if(!isset($total_key[$v['number']])){
                 $total_key[$v['number']] = [
                     'number' => $v['number'],
-                    'emp_fname' => $v['emp_fname'],
+                    'name' => $v['name'],
                     'kq_day' => 0,
                     'kq_time' => 0,
                     'later_day' => 0,
@@ -122,1089 +103,8 @@ class KqService extends Service
             }
 
             $total_key[$v['number']] = $total;
-
-        }
-        sort($total_key);
-        return [true,$total_key];
-    }
-
-    public function oaDetail($data)
-    {
-
-        $id = $data['id'];
-        $oa = Oa::where('id', $id)->first();
-        $list = OaSub::where('oa_id', $id)->where('del_time', 0)->get()->toArray();
-        $oa_sub_ids = [];
-        foreach ($list as $v) {
-            $oa_sub_ids[] = $v['id'];
-        }
-        $oaRule = OaSubRule::wherein('oa_sub_id', $oa_sub_ids)->get()->toArray();
-        $oaEmployee = OaSubEmployee::wherein('oa_sub_id', $oa_sub_ids)->get()->toArray();
-        $oaReportEmployee = OaSubReportEmployee::wherein('oa_sub_id', $oa_sub_ids)->get()->toArray();
-        $oaRuleKey = [];
-        $oaEmployeeKey = [];
-        $oaReportEmployeeKey = [];
-        foreach ($oaRule as $v) {
-            $oaRuleKey[$v['oa_sub_id']][] = [
-                'value' => $v['value'],
-                'key' => $v['key'],
-                'opera' => $v['formula'] == '==' ? '==' : $v['formula'],
-            ];
-        }
-        $employee_key_list = Employee::pluck('emp_name', 'id')->toArray();
-        foreach ($oaEmployee as $v) {
-            $oaEmployeeKey[$v['oa_sub_id']][] = [
-                'id' => $v['employee_id'],
-                'emp_name' => $employee_key_list[$v['employee_id']],
-            ];
-        }
-        foreach ($oaReportEmployee as $v) {
-            $oaReportEmployeeKey[$v['oa_sub_id']][] = [
-                'id' => $v['employee_id'],
-                'emp_name' => $employee_key_list[$v['employee_id']],
-            ];
-        }
-        $return = [];
-        foreach ($list as $v) {
-            $return[$v['sort']][] = [
-                'emp_id' => $oaEmployeeKey[$v['id']],
-                'copy_id' => $oaReportEmployeeKey[$v['id']] ?? [],
-                'is_copy' => isset($oaReportEmployeeKey[$v['id']]) && !empty($oaReportEmployeeKey[$v['id']]),
-                'index' => $v['h5_key'],
-                'set' => isset($oaRuleKey[$v['id']]) ? $oaRuleKey[$v['id']] : [],
-            ];
-        }
-        $detail = [];
-        foreach ($return as $k => $v) {
-            $children = [];
-            foreach ($v as $vv) {
-                $children[] = [
-                    'set' => $vv['set'],
-                    'emp_id' => $vv['emp_id'],
-                    'copy_id' => $vv['copy_id'],
-                    'is_copy' => $vv['is_copy'],
-                    'index' => $vv['index'],
-                ];
-            }
-            $detail[] = ['children' => $children];
-        }
-        return [true, ['data' => $detail, 'menu_id' => $oa->menu_id, 'title' => $oa->title]];
-
-    }
-
-    public function oaUserDetail($data)
-    {
-
-        $detail = [
-            'detail' => [
-                [
-                    'key' => 'area',
-                    'value' => '南区',
-                    'formula' => 'dengyu',
-                ], [
-                    'key' => 'num',
-                    'value' => '40',
-                    'formula' => 'dayu',
-                ], [
-                    'key' => 'brand',
-                    'value' => 'A,B,C',
-                    'formula' => 'baohan',
-                ],
-            ],
-            'click' => [
-                'area',
-                'num',
-                'brand',
-            ],
-            'string' => '(area 并且 num) 或者 num'
-        ];
-        return [true, $detail];
-    }
-
-    public function oaParam($data)
-    {
-        $detail = [
-            [
-                'key' => 'area',
-                'value' => '地区',
-            ], [
-                'key' => 'num',
-                'value' => '数量',
-            ], [
-                'key' => 'brand',
-                'value' => '品牌',
-            ],
-        ];
-        return [true, $detail];
-    }
-
-    public function oaFormula($data)
-    {
-        $detail = [
-            [
-                'key' => 'dengyu',
-                'value' => '等于',
-            ], [
-                'key' => 'dayu',
-                'value' => '大于',
-            ], [
-                'key' => 'baohan',
-                'value' => '包含',
-            ],
-        ];
-        return [true, $detail];
-    }
-
-    public function oaAdd($data)
-    {
-        $oa = new Oa();
-
-
-        try {
-            DB::beginTransaction();
-            $oa->menu_id = $data['menu_id'];
-            $oa->type = $data['type'];
-            $oa->title = $data['title'] ?? '';
-            $oa->channel = $this->user['depart_top'][0]['depart_id'];
-            $oa->save();
-            $id = $oa->id;
-            $insert = [];
-            foreach ($data['detail'] as $v) {
-                foreach ($v['employee_list'] as $vv) {
-                    $insert[] = [
-                        'oa_id' => $id,
-                        'remark' => $v['remark'],
-                        'employee_id' => $vv['employee_id'],
-                        'sort' => $v['sort'],
-                        'type' => $v['type'],
-                        'crt_time' => time(),
-                        'upd_time' => time(),
-                        'area_id' => $vv['area_id'],
-                    ];
-                }
-
-            }
-            OaSub::insert($insert);
-            DB::commit();
-        } catch (\Exception $e) {
-            DB::rollBack();
-            return [false, $e->getLine() . ':' . $e->getMessage()];
-        }
-
-        return [true, '保存成功!'];
-
-    }
-
-    public function oaEdit($data, $user)
-    {
-
-
-        $first = Oa::where('del_time', 0)->where('channel',$this->user['depart_top'][0]['depart_id'])->where('menu_id', $data['menu_id']);
-        if (isset($data['id'])) $first = $first->where('id', '<>', $data['id']);
-        if (isset($data['type'])) $first = $first->where('type', $data['type']);
-        $first = $first->first();
-
-        if ($first) return [false, '该菜单oa已存在!'];
-
-
-        try {
-            DB::beginTransaction();
-            if (isset($data['id'])) $oa = Oa::where('id', $data['id'])->first();
-            else $oa = new Oa();
-            $oa->menu_id = $data['menu_id'];
-            $oa->crt_employee_id = $user['id'];
-            $oa->type = $data['type'] ?? 0;
-            $oa->title = $data['title'] ?? '';
-            $oa->channel = $this->user['depart_top'][0]['depart_id'];
-            $oa->save();
-            $id = $oa->id;
-            $insert = [];
-
-            $oa_sub_id = OaSub::where('oa_id', $id)->where('del_time',0)->pluck('id')->toArray();
-            OaSub::where('oa_id', $id)->update([
-                'del_time' => time()
-            ]);
-            //处理前端数据
-            $this->dealOaData($data, $id, $oa_sub_id);
-            DB::commit();
-        } catch (\Exception $e) {
-            DB::rollBack();
-            return [false, $e->getLine() . $e->getMessage()];
-        }
-
-        return [true, '更新成功'];
-    }
-
-    public function dealOaData($data, $id, $oa_sub_id)
-    {
-        $data = $data['approval'];
-        $detail = [];
-        $sort = 0;
-        foreach ($data as $v) {
-            $sort++;
-            foreach ($v['children'] as $vv) {
-                $detail[] = [
-                    'h5_key' => $vv['index'],
-                    'emp_id' => $vv['emp_id'],
-                    'copy_id' => $vv['copy_id'] ?? [],
-                    'set' => $vv['set'],
-                    'sort' => $sort,
-                ];
-            }
-        }
-        $oa_subs = [];
-        foreach ($detail as $v) {
-            $oa_subs[] = [
-                'crt_time' => time(),
-                'upd_time' => time(),
-                'sort' => $v['sort'],
-                'sub_id' => -1,
-                'remark' => '',
-                'oa_id' => $id,
-                'type' => 1,
-                'parent_id' => 0,
-                'h5_key' => $v['h5_key'],
-            ];
-        }
-        OaSub::insert($oa_subs);
-        $oa_sub = OaSub::where('oa_id', $id)->get()->toArray();
-        $list_key = [];
-        foreach ($oa_sub as $v) {
-            $list_key[$v['h5_key']] = $v;
-        }
-        foreach ($list_key as $k => $v) {
-            if ($v['sort'] == 1) continue;
-            $len = strlen($k);
-            foreach ($list_key as $kk => $vv) {
-                if (strlen($kk) == ($len - 2) && substr($k, 0, $len - 2) == $kk) {
-                    $list_key[$k]['parent_id'] = $vv['id'];
-                }
-            }
-        }
-        $employee_list = [];
-        $set_list = [];
-        $report_list = [];
-        foreach ($detail as $v) {
-            if (isset($v['copy_id'])) {
-                foreach ($v['copy_id'] as $vv) {
-                    $report_list[] = [
-                        'employee_id' => $vv,
-                        'oa_sub_id' => $list_key[$v['h5_key']]['id'],
-                    ];
-                }
-            }
-
-            foreach ($v['emp_id'] as $vv) {
-                $employee_list[] = [
-                    'employee_id' => $vv,
-                    'oa_sub_id' => $list_key[$v['h5_key']]['id'],
-                ];
-            }
-            $n = 1;
-            foreach ($v['set'] as $vv) {
-                if ($vv['opera'] == '=') $v['opera'] = '==';
-                if ($n > 1) $right_formula = '&&';
-                else $right_formula = '';
-                $set_list[] = [
-                    'oa_sub_id' => $list_key[$v['h5_key']]['id'],
-                    'key' => $vv['key'],
-                    'value' => $vv['value'],
-                    'sort' => $n,
-                    'formula' => $vv['opera'],
-                    'right_formula' => $right_formula,
-                ];
-                $n++;
-            }
-        }
-        OaSubRule::wherein('oa_sub_id', $oa_sub_id)->delete();
-        OaSubEmployee::wherein('oa_sub_id', $oa_sub_id)->delete();
-        OaSubRule::insert($set_list);
-        OaSubEmployee::insert($employee_list);
-        if (!empty($report_list)) OaSubReportEmployee::insert($report_list);
-        foreach ($list_key as $v) {
-            if ($v['parent_id'] > 0) OaSub::where('id', $v['id'])->update([
-                'parent_id' => $v['parent_id']
-            ]);
-        }
-    }
-
-    public function oaDel($data)
-    {
-        $id = $data['id'];
-        Oa::where('id', $id)->update([
-            'del_time' => time(),
-        ]);
-
-        OaSub::where('oa_id', $id)->update([
-            'del_time' => time(),
-        ]);
-
-        return [true, '删除成功'];
-    }
-
-    public function oaSubType($data)
-    {
-        $service = new CheckService();
-        $list = $service->map;
-
-        $return = [];
-        foreach ($list as $k => $v) {
-            $return[] = [
-                'id' => $k,
-                'title' => $v,
-            ];
-        }
-
-        return [true, $return];
-    }
-
-    public function createOaOrder($data)
-    {
-        Log::channel('request')->info('request', ['param' => $data]);
-        if (!isset($data['order_number'])) $data['order_number'] = $data['order_no'];
-        $orderObject = $data['order_number'];
-        $menu_id = $data['menu_id'];
-        $order_no = $data['order_number'];
-        $type = isset($data['opt_case']) ? $data['opt_case'] : 0;
-
-        //特殊的审批
-        $list = Oa::from('oa as o')
-            ->leftJoin('oa_sub as os', 'os.oa_id', 'o.id')
-            ->select('os.sort', 'os.type', 'os.sub_id')
-            ->where('o.del_time', 0)
-            ->where('o.sub_type', 2)
-            ->where('os.del_time', 0)
-            ->where('o.menu_id', $menu_id);
-        if (!empty($type)) $list = $list->where('os.sort', 1);
-        $list = $list->orderBy('os.sort')->get()->toArray();
-        if(empty($list)){
-            $list = Oa::from('oa as o')
-                ->leftJoin('oa_sub as os', 'os.oa_id', 'o.id')
-                ->select('os.sort', 'os.type', 'os.sub_id')
-                ->where('o.del_time', 0)
-                ->where('os.del_time', 0)
-                ->where('o.channel', $this->user['depart_top'][0]['depart_id'])
-                ->where('o.menu_id', $menu_id);
-            if (!empty($type)) $list = $list->where('os.sort', 1);
-            $list = $list->orderBy('os.sort')->get()->toArray();
-        }
-
-        if (empty($list)) {
-            list($parent_status,$parent_msg) = $this->returnOa($order_no, 1, $type);
-            if(!$parent_status) return [false, $parent_msg];
-            return [true, ''];
-        }
-
-        try {
-            DB::beginTransaction();
-
-            list($employee_ids, $oa_sub_id,$order_detail) = $this->oaCommon($menu_id, ['order_number' => $orderObject], 1,0,$this->user);
-            if (empty($employee_ids)) {
-                list($parent_status,$parent_msg) = $this->returnOa($order_no, 1, $type);
-                if(!$parent_status) {
-                    DB::rollBack();
-                    return [false, $parent_msg];
-                }
-                else{
-                    DB::commit();
-                    return [true, '审核成功'];
-                }
-            }
-
-            $order = new OaOrder();
-            $order->menu_id = $menu_id;
-            $order->order_no = $order_no;
-            $order->opt_case = $type;
-            $order->channel = $this->user['depart_top'][0]['depart_id'];
-            $order->save();
-            $id = $order->id;
-
-            $oa_order_sub = new OaOrderSub();
-            $oa_order_sub->oa_order_id = $id;
-            $oa_order_sub->sort = 1;
-            $oa_order_sub->remark = '';
-            $oa_order_sub->type = 1;
-            $oa_order_sub->oa_sub_id = $oa_sub_id;
-            $oa_order_sub->save();
-            $oa_order_sub_id = $oa_order_sub->id;
-
-            //组织数据
-            $insert = $send_data = [];
-            $emp_map = Employee::whereIn('id',$employee_ids)->pluck('emp_name','id')->toArray();
-            $sys_menu = SysMenu::where('id', $menu_id)->value('title') ?? "";
-            foreach ($employee_ids as $employee_id) {
-                $emp_tmp = $emp_map[$employee_id] ?? "";
-                $send_data[] = [
-                    'employee_id' => $employee_id,
-                    'type' => 1,
-                    'state' => 0,
-                    'menu_id' => $menu_id,
-                    'order_number' => $order_detail['order_number'],
-                    'tmp_data' => [
-                        $order_detail['order_number'],
-                        $order_detail['crt_name'].'('.$sys_menu.')',
-                        $emp_tmp,
-                        date('Y-m-d H:i:s'),
-                    ],
-                ];
-                $insert[] = [
-                    'oa_order_id' => $id,
-                    'oa_order_sub_id' => $oa_order_sub_id,
-                    'employee_id' => $employee_id,
-                ];
-            }
-            OaOrderSubEmployee::insert($insert);
-            DB::commit();
-
-            //发送消息
-            $this->sendWxOaCheckMessage($send_data);
-
-            return [true, '']; //success
-        } catch (\Exception $e) {
-            DB::rollBack();
-            $this->returnOa($order_no, 2, $type);
-            return [false, $e->getLine() . ':' . $e->getMessage()];
-        }
-    }
-
-    public function oaCommon($menu_id, $param, $sort = 1, $parent_id = 0,$user='')
-    {
-        $request = request();
-        foreach ($param as $k => $v) {
-            $request->$k = $v;
-        }
-        $all = $request->all();
-        if (!isset($all['order_number'])) $request->merge($param);
-        $detail = $this->oaGetData($menu_id, $request,$user);
-        //特殊的审批
-        $oa_id = Oa::where('menu_id',$menu_id)->where('del_time', 0)->where('sub_type',2)->value('id');
-        if(empty($oa_id)) $oa_id = Oa::where('menu_id', $menu_id)->where('channel',$this->user['depart_top'][0]['depart_id'])->where('del_time', 0)->value('id');
-        $parent_ids = [$parent_id, 0];
-//        var_dump($parent_ids);
-        if ($sort > 2) {
-            $sorts = $sort - 1;
-            $oa_sub_ids = OaSub::where('sort', '<', $sorts)->where('del_time', 0)->wherein('parent_id', $parent_ids)->pluck('id')->toArray();
-//            var_dump($oa_sub_ids);die;
-            $parent_ids = array_merge($parent_ids, $oa_sub_ids);
-        }
-        $list = OaSub::where('oa_id', $oa_id)->where('del_time', 0)->where('sort', $sort)->wherein('parent_id', $parent_ids);
-        $list = $list->select('*')->get()->toArray();
-        if (empty($list)) return [[], '',$detail];
-        $oa_sub_ids = [];
-        $oa_sub_key = [];
-        foreach ($list as $v) {
-            $oa_sub_ids[] = $v['id'];
-            $oa_sub_key[$v['id']] = $v;
-            $rule_key_list[$v['id']] = [];
-        }
-
-        $rule_list = OaSubRule::wherein('oa_sub_id', $oa_sub_ids)->select('*')->get()->toArray();
-
-        foreach ($rule_list as $v) {
-            $rule_key_list[$v['oa_sub_id']][] = $v;
-        }
-
-        //规则开始判断
-        $employee_ids = [];
-        $oa_sub_id = 0;
-
-        foreach ($rule_key_list as $k => $v) {
-            $status = $this->formulaRule($v, $detail);
-            if ($status) {
-                if ($oa_sub_key[$k]['type'] == 2 && $oa_sub_key[$k]['sub_id'] > 0) {
-                    $employee_ids = EmployeeTeamPermission::where('team_id', $oa_sub_key[$k]['sub_id'])->pluck('employee_id')->toArray();
-                } elseif ($oa_sub_key[$k]['sub_id'] == -1) {
-                    $employee_ids = OaSubEmployee::where('oa_sub_id', $oa_sub_key[$k]['id'])->pluck('employee_id')->toArray();
-                } else {
-                    $employee_ids[] = [$oa_sub_key[$k]['sub_id']];
-                }
-                $oa_sub_id = $k;
-                continue;
-            }
-        }
-
-        return [$employee_ids, $oa_sub_id,$detail];
-    }
-
-    public function formulaRule($params, $detail)
-    {
-        $rule = '';
-//        dd($params);
-        if (empty($params)) return true;
-        foreach ($params as $param) {
-            if (!$param['key']) continue;
-            if (!empty($param['right_formula'])) $rule .= ' ' . $param['right_formula'] . ' ';
-            $rule .= '"' . $detail[$param['key']] . '"' . ' ' . $param['formula'] . ' ' . '"' . $param['value'] . '"';
-
-        }
-//        dd($rule);
-        if (empty($rule)) return true;
-//        var_dump($rule);
-        if (eval("return  $rule;")) {
-//            var_dump($rule);die;
-            return true;
-        } else return false;
-    }
-
-    public function oaCheck($data, $user)
-    {
-        $user_id = $user['id'];
-        $id = $data['id'];
-        $state = $data['state'];
-        if ($state == 0) $state = 2;
-        $remark = $data['remark'];
-        $detail = OaOrderSub::from('oa_order_sub as s')
-            ->leftJoin('oa_order_sub_employee as e', 'e.oa_order_sub_id', 's.id')
-            ->where('e.employee_id', $user_id)->where('s.state', 0)
-            ->where('s.id', $id)
-            ->select('s.oa_order_id', 'sort', 'oa_sub_id', 's.id')->first();
-        if (empty($detail)) return [false, '没有审核权限'];
-        $detail = $detail->toArray();
-        $oaOrder = OaOrder::where('id', $detail['oa_order_id'])->first();
-        try {
-            DB::beginTransaction();
-
-            $sys_menu = SysMenu::where('id', $oaOrder->menu_id)->value('title') ?? "";
-            $send_data = [];
-            switch ($state) {
-                //审核通过
-                case 1:
-                    $sort = $detail['sort'] + 1;
-                    list($employee_ids, $oa_sub_id,$order_detail) = $this->oaCommon($oaOrder->menu_id, ['order_number' => $oaOrder->order_no], $sort, $detail['oa_sub_id'],$user);
-                    if (empty($employee_ids)) {
-                        $oaOrder->state = 2;
-                        $oaOrder->save();
-
-                        list($parent_status,$parent_msg) = $this->returnOa($oaOrder->order_no, 1, $oaOrder->opt_case);
-                        if(!$parent_status){
-                            DB::rollBack();
-                            return [false,$parent_msg];
-                        }
-
-                        //审核通过 发送消息
-                        $send_data[] = [
-                            'employee_id' => $order_detail['crt_id'],
-                            'type' => 2,
-                            'state' => 0,
-                            'menu_id' => $oaOrder->menu_id,
-                            'order_number' => $order_detail['order_number'],
-                            'tmp_data' => [
-                                $order_detail['order_number'],
-                                $sys_menu,
-                                '通过',
-                                Employee::where('id',$user_id)->value('emp_name'),
-                                date('Y-m-d H:i:s'),
-                            ],
-                        ];
-                        $this->sendWxOaCheckMessage($send_data);
-                    } else {
-                        $oaOrder->state = 1;
-                        $oaOrder->save();
-                        $oa_order_sub = new OaOrderSub();
-                        $oa_order_sub->oa_order_id = $oaOrder->id;
-                        $oa_order_sub->sort = $sort;
-                        $oa_order_sub->remark = '';
-                        $oa_order_sub->type = 1;
-                        $oa_order_sub->oa_sub_id = $oa_sub_id;
-                        $oa_order_sub->save();
-                        $oa_order_sub_id = $oa_order_sub->id;
-
-                        $insert = [];
-                        $emp_map = Employee::whereIn('id',$employee_ids)->pluck('emp_name','id')->toArray();
-                        foreach ($employee_ids as $employee_id) {
-                            $emp_tmp = $emp_map[$employee_id] ?? "";
-                            $insert[] = [
-                                'oa_order_id' => $oaOrder->id,
-                                'oa_order_sub_id' => $oa_order_sub_id,
-                                'employee_id' => $employee_id,
-                            ];
-                            $send_data[] = [
-                                'employee_id' => $employee_id,
-                                'type' => 1,
-                                'state' => 0,
-                                'menu_id' => $oaOrder->menu_id,
-                                'order_number' => $order_detail['order_number'],
-                                'tmp_data' =>  [
-                                    $order_detail['order_number'],
-                                    $order_detail['crt_name'].'('.$sys_menu.')',
-                                    $emp_tmp,
-                                    date('Y-m-d H:i:s'),
-                                ],
-                            ];
-                        }
-                        OaOrderSubEmployee::insert($insert);
-
-                        //发送消息
-                        $this->sendWxOaCheckMessage($send_data);
-                    }
-                    break;
-
-                //审核驳回
-                case 2:
-                    list($employee_ids, $oa_sub_id,$order_detail) = $this->oaCommon($oaOrder->menu_id, ['order_number' => $oaOrder->order_no], 1, $detail['oa_sub_id'],$user);
-                    $tmp_data = [
-                        $oaOrder['order_no'],
-                        '拒绝',
-                        $order_detail['crt_time'],
-                        $remark ?? "(未填写原因)",
-                    ];
-                    if ($detail['sort'] == 1 || true) {
-                        $oaOrder->state = 3;
-                        $oaOrder->save();
-                        list($parent_status,$parent_msg) = $this->returnOa($oaOrder->order_no, 2, $oaOrder->opt_case);
-                        if(!$parent_status){
-                            DB::rollBack();
-                            return [false,$parent_msg];
-                        }
-                        $send_data[] = [
-                            'employee_id' => $order_detail['crt_id'],
-                            'type' => 3,
-                            'state' => 2,
-                            'menu_id' => $oaOrder->menu_id,
-                            'order_number' => $oaOrder['order_no'],
-                            'tmp_data' => $tmp_data,
-                        ];
-                    }else{
-                        $id = OaOrderSub::where('sort', ($detail['sort'] - 1))->where('oa_order_id', $oaOrder->id)->value('id');
-                        $employee_ids = OaOrderSubEmployee::where('oa_order_sub_id',$id)->pluck('employee_id')->toArray();
-                        foreach ($employee_ids as $v){
-                            $send_data[] = [
-                                'employee_id' => $v,
-                                'type' => 3,
-                                'state' => 2,
-                                'menu_id' => $oaOrder->menu_id,
-                                'order_number' => $oaOrder['order_no'],
-                                'tmp_data' => $tmp_data,
-                            ];
-                        }
-                    }
-                    OaOrderSub::where('sort', ($detail['sort'] - 1))->where('oa_order_id', $oaOrder->id)->update([
-                        'state' => 0,
-                        'remark' => $remark ?? "",
-                    ]);
-
-                    //发送消息
-                    $this->sendWxOaCheckMessage($send_data);
-                    break;
-            }
-
-            //更新状态
-            OaOrderSub::where('id', $id)->update([
-                'state' => $state,
-                'remark' => $remark,
-            ]);
-
-            //抄送 以及 组织发送数据
-            $send_data = $this->report($oaOrder, $detail['oa_sub_id'],$user_id,$sys_menu);
-            //发送数据
-            $this->sendWxOaCheckMessage($send_data);
-            DB::commit();
-            return [true, '操作成功!'];
-        } catch (\Exception $e) {
-            DB::rollBack();
-            return [false, $e->getLine() . ':' . $e->getMessage()];
-        }
-    }
-
-    //发送公众号消息
-    public function sendWxOaCheckMessage($send_data){
-        if(empty($send_data)) return ;
-        $config = config('morequery');
-        $path = $config['detail_message'] ?? [];
-
-        foreach ($send_data as $value) {
-            //小程序详情页路径
-            $tmp_path = $path[$value['menu_id']] ?? "";
-            if(! empty($tmp_path)) $tmp_path .= $value['order_number'];
-            //发送
-            $this->sendWxMsg($value['employee_id'],$value['type'],$value['state'],$value['menu_id'],$value['tmp_data'],$tmp_path);
-        }
-    }
-
-    public function report($oaOrder, $oa_sub_id,$user_id,$sys_menu)
-    {
-        $return = [];
-        $oa_sub_report_employee = OaSubReportEmployee::where('oa_sub_id', $oa_sub_id)->select('*')->get()->toArray();
-        if (! empty($oa_sub_report_employee)) {
-            $list = [];
-            $report = new OaReportOrder();
-            $report->menu_id = $oaOrder->menu_id;
-            $report->order_no = $oaOrder->order_no;
-            $report->opt_case = $oaOrder->opt_case;
-            $report->user_id = $user_id;
-            $report->channel = $this->user['depart_top'][0]['depart_id'];
-            $report->save();
-
-            //公共发送参数
-            $tmp_data = [
-                $oaOrder->order_no,
-                $sys_menu,
-                '审核通过',
-                Employee::where('id',$user_id)->value('emp_name'),
-                date('Y-m-d H:i:s'),
-            ];
-            foreach ($oa_sub_report_employee as $v) {
-                $list[] = [
-                    'employee_id' => $v['employee_id'],
-                    'oa_report_order_id' => $report->id,
-                ];
-                $return[] = [
-                    'employee_id' => $v['employee_id'],
-                    'type' => 2,
-                    'state' => 0,
-                    'menu_id' => $oaOrder->menu_id,
-                    'order_number' => $oaOrder->order_no,
-                    'tmp_data' => $tmp_data,
-                ];
-//                $this->sendWxMsg($v['employee_id'],2,0,$oaOrder->menu_id,$tmp_data);
-            }
-            OaReportOrderEmployee::insert($list);
-        }
-
-        return $return;
-    }
-
-    public function returnOa($order_no, $type, $opt_case)
-    {
-        $service = new CheckService();
-        list($bool, $msg) = $service->createRecordAndInventory([
-            'order_number' => $order_no,
-            'type' => $type,
-            'opt_case' => $opt_case,
-            'user_data' => $this->user,
-        ]);
-        return [$bool, $msg];
-    }
-
-    public function oaGetData($menu_id, $request,$user='')
-    {
-        $api = SysMenu::where('id', $menu_id)->value('api');
-        $param =  SysMenu::where('id', $menu_id)->value('api_params');
-        $param =  json_decode($param,true);
-        $param['state'] = null;
-        $param['menu_id'] = $menu_id;
-        $param['id'] = null;
-        $request->merge($param);
-
-        $path = $this->getMenu();
-        $control = '\\' . $path[$api]["controller"];
-        $act = $path[$api]["act"];
-        $new = new $control();
-        $detail = $new->$act($request);
-//        if(!isset($detail['data']['data'][0])) $detail['data']['data'][0] = $detail['data'];
-        return $detail['data']['data'][0];
-    }
-
-    public function getMenu()
-    {
-        $app = App();
-        $routes = $app->routes->getRoutes();
-        $path = [];
-        foreach ($routes as $k => $value) {
-            if (!isset($value->action['controller'])) continue;
-            $act = explode('@', $value->action['controller']);
-            if (!isset($act[1])) continue;
-            $path[$value->uri]['act'] = $act[1];
-            $path[$value->uri]['controller'] = $act[0];
-        }
-
-        return $path;
-    }
-
-    public function oaOrderList($data)
-    {
-        $order_no = $data['order_no'];
-        $menu_id = $data['menu_id'];
-        $oa = OaOrder::where('order_no', $order_no)->first();
-        if (empty($oa)) return [false, '审核不存在'];
-        $list = OaOrderSub::where('oa_order_id', $oa->id)->orderBy('sort', 'asc')->select('*')->get()->toArray();
-        return [true, $list];
-    }
-
-    public function oaOrderState($data, $user)
-    {
-        $user_id = $user['id'];
-        $order_no = $data['order_no'];
-        $menu_id = $data['menu_id'];
-        //特殊的审批
-        $oa_id = Oa::where('menu_id',$menu_id)->where('del_time', 0)->where('sub_type',2)->exists();
-        if($oa_id){
-            $detail = OaOrder::where('order_no', $order_no)
-                ->orderBy('id', 'desc')
-                ->where('menu_id', $menu_id)
-                ->first();
-        }else{
-            $detail = OaOrder::where('order_no', $order_no)
-                ->where('channel',$this->user['depart_top'][0]['depart_id'])
-                ->orderBy('id', 'desc')
-                ->where('menu_id', $menu_id)
-                ->first();
-        }
-
-        if (empty($detail))  return [true, ['state' => 0]];
-        if ($detail->state == 2) return [true, ['state' => 0]];
-        $oa_detail = OaOrderSubEmployee::where('employee_id', $user_id)->where('oa_order_id', $detail->id)->pluck('oa_order_sub_id')->toArray();
-        if (empty($oa_detail)) return [true, ['state' => 0]];
-        $state = OaOrderSub::wherein('id', $oa_detail)->where('state', '<>', 2)->orderBy('sort', 'desc')->first();
-        if (in_array($state->state, [0, 2])) return [true, ['state' => 1, 'id' => $state->id]];
-
-        return [true, ['state' => 0]];
-
-
-    }
-
-    public function checkAllOver($data)
-    {
-        $order_no = $data['order_number'];
-        $menu_id = $data['menu_id'];
-        $op_case = $data['opt_case'];
-//        $oaOrder = OaOrder::where('order_no',$order_no)->first();
-//        $id = OaOrderSub::where('oa_order_id',$oaOrder->id)->orderBy('id','desc')->value('id');
-//        OaOrderSub::where('id',$id)->update([
-//            'state' => 1
-//        ]);
-//        $oaOrder->state = 1;
-//        $oaOrder->save();
-        list($parent_status,$parent_msg) = $this->returnOa($order_no, 3, $op_case);
-        if(!$parent_status) return [false,$parent_msg];
-
-        return [true, ''];
-    }
-
-    public function oaCheckMove($data, $user_id)
-    {
-        $id = $data['id'];
-        $employee_id = $data['employee_id'];
-        if (empty($employee_id)) return [false, '用户不存在'];
-        $oaOrderSub = OaOrderSub::where('id', $id)->first();
-        OaOrderSubEmployee::where('oa_order_sub_id', $oaOrderSub->id)->delete();
-        $add = [
-            'oa_order_id' => $oaOrderSub->oa_order_id,
-            'oa_order_sub_id' => $oaOrderSub->id,
-            'employee_id' => $employee_id
-        ];
-        $oaOrder = OaOrder::where('id', $oaOrderSub->oa_order_id)->first();
-        OaOrderSubEmployee::insert($add);
-        Construction::where('order_number', $oaOrder->order_no)->update([
-            'is_transfer' => 1
-        ]);
-//        $this->returnOa($order_no,3,$op_case);
-        return [true, '转签成功'];
-
-    }
-
-    public function oaSubUserDetail($data)
-    {
-        $order_no = $data['order_no'];
-        $first = OaOrder::where('order_no', $order_no)->first();
-        if (empty($first)) return [true, []];
-        $oa_order_id = $first->id;
-        $oa_order_sub_id = OaOrderSub::where('oa_order_id', $oa_order_id)->orderBy('sort', 'desc')->value('id');
-        $employee_list = Employee::pluck('emp_name', 'id')->toArray();
-        $oa_order_sub_employee_ids = OaOrderSubEmployee::where('oa_order_sub_id', $oa_order_sub_id)->pluck('employee_id')->toArray();
-        $list = [];
-        foreach ($oa_order_sub_employee_ids as $v) {
-            $list[] = $employee_list[$v];
-        }
-        return [true, $list];
-
-    }
-
-    public function oaGetTeamDetail($data)
-    {
-        $order_no = $data['order_no'];
-        $oa_order_id = OaOrder::where('order_no', $order_no)->pluck('id')->toArray();
-        if (empty($oa_order_id)) return [true, []];
-//        $oa_order_id = $first->id;
-        $list = OaOrderSub::wherein('oa_order_id', $oa_order_id)->select('*')->orderBy('id', 'asc')->get()->toArray();
-
-        $subEmployeeList = OaOrderSubEmployee::wherein('oa_order_id', $oa_order_id)->select('*')->get()->toArray();
-        $emp_id_key_list = [];
-        $employee_key_list = Employee::pluck('emp_name', 'id')->toArray();
-        foreach ($subEmployeeList as $v) {
-            $emp_id_key_list[$v['oa_order_sub_id']][] = [
-                'id' => $v['employee_id'],
-                'emp_name' => $employee_key_list[$v['employee_id']] ?? '',
-            ];
-        }
-        $return = [];
-        foreach ($list as $v) {
-            $return[] = [
-                'sort' => $v['sort'],
-                'team' => $emp_id_key_list[$v['id']],
-                'remark' => $v['remark'] ?? '',
-                'state' => $v['state'],
-            ];
-        }
-//        $this->returnOa($order_no,3,$op_case);
-        return [true, $return];
-
-    }
-
-    public function oaSubRemark($data)
-    {
-        $order_no = $data['order_no'];
-        $first = OaOrder::where('del_time', 0)->where('channel',$this->user['depart_top'][0]['depart_id'])->where('order_no', $order_no)->orderBy('id', 'desc')->first();
-        if (empty($first)) return [true, []];
-        $oa_order_id = $first->id;
-        $remark = OaOrderSub::where('oa_order_id', $oa_order_id)->orderBy('sort', 'desc')->value('remark');
-
-//        $this->returnOa($order_no,3,$op_case);
-        return [true, $remark];
-
-    }
-
-    public function reportList($data, $user)
-    {
-        $id = $user['id'];
-        $list = OaReportOrder::from('oa_report_order_employee as e')
-            ->leftJoin('oa_report_order as o','o.id','e.oa_report_order_id')
-            ->leftJoin('oa_order as oo','oo.order_no','o.order_no')
-            ->leftJoin('employee as ee','ee.id','o.user_id')
-            ->where('e.employee_id',$id)
-            ->where('o.channel',$this->user['depart_top'][0]['depart_id'])
-            ->groupBy('oo.id')->orderBy('oo.id','desc')
-            ->select('oo.*','o.id as sid','o.check','o.user_id','ee.emp_name');
-        $list = $this->limit($list,'',$data);
-
-        return [true,$list];
-
-    }
-
-    public function reportCheck($data){
-        $id = $data['sid'];
-        OaReportOrder::wherein('id',$id)->where('channel',$this->user['depart_top'][0]['depart_id'])->update([
-            'check' => 1
-        ]);
-        return [true,''];
-    }
-
-    public function reportCount($data,$user){
-        $id = $user['id'];
-        $list = OaReportOrder::from('oa_report_order_employee as e')
-            ->leftJoin('oa_report_order as o','o.id','e.oa_report_order_id')
-            ->leftJoin('oa_order as oo','oo.order_no','o.order_no')
-            ->where('e.employee_id',$id)
-            ->where('o.check',0)
-            ->groupBy('oo.id')->orderBy('oo.id','desc')
-            ->select('oo.*','o.id as sid','o.check')->get()->toArray();
-        return [true,['total'=>count($list),'list'=>$list]];
-    }
-
-    public function reportTime($data){
-        return [true,['time'=>'20小时10分钟']];
-    }
-
-    public function sendWxMsg($user_id,$type,$state,$menu_id,$order_data,$pagepath = ""){
-        $service = new WxSendMessageService();
-        file_put_contents('msg_result.txt',date('Y-m-d H:i:s') . "入参:" . json_encode([$user_id,$type,$state,$menu_id,$order_data,$pagepath]). PHP_EOL,8);
-        list($status, $msg) = $service->wx_sendMsg($user_id,$type,$state,$menu_id,$order_data,$pagepath);
-        file_put_contents('msg_result.txt',date('Y-m-d H:i:s') . "结果:" .  $msg . PHP_EOL,8);
-    }
-
-    public function getConstructionOaOrderState($order_no, $user, $menu_id)
-    {
-        $user_id = $user['id'];
-        $return = [];
-        foreach ($order_no as $value){
-            $return[$value] = ['oa_state' => 0];
-        }
-        $detail = OaOrder::whereIn('order_no', $order_no)
-            ->where('channel',$user['depart_top'][0]['depart_id'])
-            ->where('menu_id', $menu_id)
-            ->where('del_time', 0)
-            ->orderBy('id', 'desc')
-            ->get()->toArray();
-        if (empty($detail)) $return;
-        $final_detail = $oa_order = $oa_order2 = $map = [];
-        foreach ($detail as $value){
-            if(! isset($final_detail[$value['order_no']])){
-                $map[$value['id']] = $value['order_no'];
-                if($value['state'] == 2) {
-                    $oa_order[] = $value['id'];
-                }else{
-                    $oa_order2[] = $value['id'];
-                }
-                $final_detail[$value['order_no']] = $value['id'];
-            }
-        }
-        if (count($oa_order) == count($final_detail)) return $return;
-
-        $oa_detail = OaOrderSubEmployee::where('employee_id', $user_id)
-            ->whereIn('oa_order_id', $oa_order2)
-            ->pluck('oa_order_sub_id','oa_order_id')
-            ->toArray();
-        if(empty($oa_detail)) return $return;
-
-        $oa_detail_map = array_flip($oa_detail);
-        $oa_detail_value = array_values($oa_detail);
-        $state = OaOrderSub::whereIn('id', $oa_detail_value)
-            ->where('state', '<>', 2)
-            ->orderBy('sort', 'desc')
-            ->get()->toArray();
-        foreach ($state as $value){
-            $oa_order_id_tmp = $oa_detail_map[$value['id']];
-            $order_no_tmp = $map[$oa_order_id_tmp];
-            if (in_array($value['state'], [0, 2])) {
-                $return[$order_no_tmp] = ['oa_state' => 1, 'oa_id' => $value['id']];
-            }else{
-                $return[$order_no_tmp] = ['oa_state' => 0];
-            }
-        }
-
-        return $return;
-    }
-
-    //获取订单审核人员名称
-    public function getOaTeamDetailList($order_no)
-    {
-        if(empty($order_no)) return [];
-        $orderNoGroups = OaOrder::whereIn('order_no', $order_no)
-            ->get()
-            ->groupBy('order_no');
-        $maxIds = $orderNoGroups->map(function ($group) {
-            return $group->max('id');
-        });
-        $map = $maxIds->toArray();
-        if(empty($map)) return [];
-        $map2 = array_flip($map);
-
-        $oa_order_id = array_values($map);
-        $list = OaOrderSub::whereIn('oa_order_id', $oa_order_id)
-            ->where('state',0)
-            ->select('id','state','oa_order_id')
-            ->orderBy('id', 'asc')
-            ->get()->toArray();
-        $subEmployeeList = OaOrderSubEmployee::whereIn('oa_order_id', $oa_order_id)
-            ->select('*')
-            ->get()->toArray();
-        $emp_id_key_list = [];
-        $employee_key_list = Employee::whereIn('id',array_unique(array_column($subEmployeeList,'employee_id')))
-            ->pluck('emp_name', 'id')
-            ->toArray();
-        foreach ($subEmployeeList as $v) {
-            $emp_id_key_list[$v['oa_order_sub_id']][] = [
-                'id' => $v['employee_id'],
-                'emp_name' => $employee_key_list[$v['employee_id']] ?? '',
-            ];
-        }
-
-        $return = [];
-        foreach ($list as $v) {
-            $order_no_tmp = $map2[$v['oa_order_id']] ?? "";
-            if($v['state'] == 0 && ! isset($return[$order_no_tmp])){
-                $emp_tmp = $emp_id_key_list[$v['id']] ?? [];
-                $emp_tmp_str = implode('|',array_column($emp_tmp,'emp_name'));
-                $return[$order_no_tmp] = $emp_tmp_str;
-                //                $return[$order_no_tmp][] = [
-//                    'oa_order_id' => $v['oa_order_id'],
-//                    'sort' => $v['sort'],
-//                    'team' => $emp_id_key_list[$v['id']],
-//                    'state' => $v['state'],
-//                ];
-            }
         }
 
-        return $return;
+        return sort($total_key);
     }
 }

+ 10 - 0
app/Service/RangeService.php

@@ -0,0 +1,10 @@
+<?php
+
+namespace App\Service;
+
+use Illuminate\Support\Facades\DB;
+
+class RangeService extends Service
+{
+
+}

+ 3 - 69
config/morequery.php

@@ -1,75 +1,9 @@
 <?php
 
 return [
-    "menu" => [
-        "api/customerList" => 16,
-        "api/customerAdd" => 16,
-        "api/customerEdit" => 16,
-        "api/paymentReceiptList" => 48,
-        "api/salesOrderList" => [
-            'key' => 'order_list',
-            'array' => [
-                1 => 37,
-                2 => 43,
-            ],
-        ],
-        "api/invoiceOrderList" => 36,
-        "api/ReturnExchangeOrderList" => 35,
-        "api/ReturnExchangeOrderAdd" => 35,
-        "api/ReturnExchangeOrderEdit" => 35,
-        "api/constructionList" => 34,
-        "api/getSettingGetDetail2" => 34,
-        "api/purchaseOrderList" => [
-            'key' => 'order_type',
-            'array' => [
-                1 => 38,
-                5 => 45,
-            ],
-        ],
-
-        "wx/customerList" => 16,
-        "wx/customerAdd" => 16,
-        "wx/customerEdit" => 16,
-        "wx/paymentReceiptList" => 48,
-        "wx/salesOrderList" => [
-            'key' => 'order_list',
-            'array' => [
-                1 => 37,
-                2 => 43,
-            ],
-        ],
-        "wx/invoiceOrderList" => 36,
-        "wx/ReturnExchangeOrderList" => 35,
-        "wx/ReturnExchangeOrderAdd" => 35,
-        "wx/ReturnExchangeOrderEdit" => 35,
-        "wx/constructionList" => 34,
-        "wx/getSettingGetDetail2" => 34,
-        "wx/purchaseOrderList" => [
-            'key' => 'order_type',
-            'array' => [
-                1 => 38,
-                5 => 45,
-            ],
-        ]
-    ],
-
-    "is_list_search" => [
-        "api/basicTypeList",
-        "wx/basicTypeList",
-//        "api/customerList",
-//        "wx/customerList",
-        "api/roleList",
-        "wx/roleList",
-    ],
-
-    //34 施工单 35 退换货单 37 订单合同  38 T9采购单  45 分社采购单 48 收付款单
-    "detail_message" => [
-        34 => '/pages/ConstructionOrder/add/detail/detail?order_number=',
-        35 => '/pages/ReturnExchangeOrder/detail/detail?order_number=',
-        37 => '/pageA/pages/SalesOrder/detail/detail?order_number=',
-        38 => '',
-        45 => '/pages/ProcureOrder/ProcureDetail/ProcureDetail?order_number=',
-        48 => '/pages/PayOrder/detail/detail?order_number=',
+    "menu_auth" => [
+        "api/kqList" => 10,
+        "api/kqCollect" => 11,
     ],
 ];
 

+ 1 - 1
routes/api.php

@@ -55,7 +55,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('employeeDel', 'Api\EmployeeController@employeeDel');
     $route->any('employeeList', 'Api\EmployeeController@employeeList');
 
-    $route->any('kqList', 'Api\KqController@kqCollect');
+    $route->any('kqList', 'Api\KqController@kqList');
     $route->any('kqCollect', 'Api\KqController@kqCollect');
 
     //获取考勤的图片