cqpCow 1 年之前
父节点
当前提交
8b69a72069

+ 13 - 1
app/Http/Controllers/Api/EmployeeController.php

@@ -63,7 +63,19 @@ class EmployeeController extends BaseController
             return $this->json_return(201,$data);
         }
     }
-    
+
+    public function employeeManagerDepart(Request $request){
+        $service = new EmployeeService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->employeeManagerDepart($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
     public function roleEdit(Request $request)
     {
         $service = new EmployeeService();

+ 11 - 0
app/Http/Controllers/Api/SysMenuController.php

@@ -60,4 +60,15 @@ class SysMenuController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function menuMove(Request $request){
+        $service = new SysMenuService();
+        list($status,$data) = $service->menuMove($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 46 - 16
app/Service/SysMenuService.php

@@ -2,7 +2,6 @@
 
 namespace App\Service;
 
-
 use App\Model\SysMenu;
 
 /**
@@ -11,7 +10,6 @@ use App\Model\SysMenu;
  */
 class SysMenuService extends Service
 {
-
     public function edit($data){
         list($status,$msg) = $this->menuRule($data);
         if(!$status) return [$status,$msg];
@@ -28,32 +26,26 @@ class SysMenuService extends Service
         $model->sort = $data['sort'] ?? 0;
         $model->save();
 
-        return [true,'保存成功!'];
-
+        return [true,''];
     }
 
     public function add($data,$user){
-
-
-//        if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
         list($status,$msg) = $this->menuRule($data);
         if(!$status) return [$status,$msg];
         $first = SysMenu::where('title',$data['title'])->where('del_time',0)->first();
         if(!empty($first))return [false,'名称已存在!'];
 
         $model = new SysMenu();
-
+        $sort = $model->where('parent_id',$data['parent_id'])->max('sort');
         $model->title = $data['title'];
         $model->icon = $data['icon'] ??  '';
         $model->uri = $data['uri'];
         $model->parent_id = $data['parent_id'];
-        $model->sort = $data['sort'] ?? 0;
-//        $model->crt_id = $user->id;
-        $model->crt_id = 1;
+        $model->sort = $sort ? $sort + 1 : 1;
+        $model->crt_id = $user['id'];
         $model->save();
 
-        return [true,'保存成功!'];
-
+        return [true,''];
     }
 
     public function del($data){
@@ -77,18 +69,56 @@ class SysMenuService extends Service
             $return = $this->set_sort_circle($return);
         }
 
-
         return [200,$return];
     }
 
     public function menuRule($data){
         if($this->isEmpty($data,'title')) return [false,'名称不存在!'];
-//        if($this->isEmpty($data,'icon')) return [201,'d不存在!'];
-//        if($this->isEmpty($data,'uri')) return [false,'路由不存在!'];
         if($this->isEmpty($data,'parent_id')) return [false,'父级不存在!'];
 
         return [true,''];
     }
 
+    public function menuMove($data){
+        if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
+        if($this->isEmpty($data,'move')) return [false,'移动不能能为空!'];
+
+        //移动项
+        $model = new SysMenu();
+        $res = $model->where('id', $data['id'])->first();
+
+        if($data['move'] == 1 || $data['move'] == -1){
+            //替项目
+            $moveModel = $model->where('del_time',0)->where('parent_id',$res->parent_id);
+
+            //下移-1 上移1
+            $data['move'] == 1 ? $moveModel->orderby('sort','desc')->where('sort','<', $res['sort']) : $moveModel->orderby('sort','asc')->where('sort','>', $res['sort']);
+
+            $moveRes = $moveModel->first();
+            if(! $moveRes) return [false, '移动失败'];
+
+            $weightOne = $res->sort;
+            $weightTwo = $moveRes->sort;
+
+            $res->sort = $weightTwo;
+            $res->save();
+            $moveRes->sort = $weightOne;
+            $moveRes->save();
+        }elseif($data['move'] == 'top' || $data['move'] == 'bottom'){
+            if($data['move'] == 'top'){
+                $sort = $model->where('del_time',0)->where('parent_id',$res->parent_id)->max('sort');
+                if($sort == $res->sort) return [false,'已经置顶,移动失败!'];
+                $res->sort = $sort + 1;
+            }elseif($data['move'] == 'bottom'){
+                $sort = $model->where('del_time',0)->where('parent_id',$res->parent_id)->min('sort');
+                if($sort == $res->sort) return [false,'已经置底部,移动失败!'];
+                $res->sort = $sort - 1;
+            }
+            $res->save();
+        }else{
+            return [false, '移动失败'];
+        }
 
+        return [true,'移动成功'];
+    }
 }

+ 27 - 0
routes/api.php

@@ -20,4 +20,31 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
 Route::any('login', 'Api\LoginController@login');
 
 Route::group(['middleware'=> []],function ($route){
+    //菜单
+    $route->any('menuAdd', 'Api\SysMenuController@add');
+    $route->any('menuEdit', 'Api\SysMenuController@edit');
+    $route->any('menuDel', 'Api\SysMenuController@del');
+    $route->any('menuList', 'Api\SysMenuController@menuList');
+    $route->any('menuMove', 'Api\SysMenuController@menuMove');
+
+    //人员
+    $route->any('employeeAdd', 'Api\EmployeeController@employeeAdd');
+    $route->any('employeeEdit', 'Api\EmployeeController@employeeEdit');
+    $route->any('employeeDel', 'Api\EmployeeController@employeeDel');
+    $route->any('employeeList', 'Api\EmployeeController@employeeList');
+    $route->any('employeeManagerDepart', 'Api\EmployeeController@employeeManagerDepart');
+
+    //部门
+    $route->any('departAdd', 'Api\EmployeeController@departAdd');
+    $route->any('departEdit', 'Api\EmployeeController@departEdit');
+    $route->any('departDel', 'Api\EmployeeController@departDel');
+    $route->any('departList', 'Api\EmployeeController@departList');
+
+    //角色
+    $route->any('roleAdd', 'Api\EmployeeController@roleAdd');
+    $route->any('roleEdit', 'Api\EmployeeController@roleEdit');
+    $route->any('roleDel', 'Api\EmployeeController@roleDel');
+    $route->any('roleList', 'Api\EmployeeController@roleList');
+
+    $route->any('employeeDepart', 'Api\EmployeeController@employeeDepart');
 });