cqpCow 1 rok temu
rodzic
commit
e7dd74133a
38 zmienionych plików z 1071 dodań i 365 usunięć
  1. 39 0
      app/Http/Controllers/Api/EmployeeController.php
  2. 32 1
      app/Http/Controllers/Api/HeaderWordController.php
  3. 10 25
      app/Http/Controllers/Api/SysMenuController.php
  4. 0 1
      app/Http/Middleware/CheckLogin.php
  5. 19 0
      app/Model/Depart.php
  6. 37 0
      app/Model/Employee.php
  7. 19 0
      app/Model/EmployeeDepartPermission.php
  8. 19 0
      app/Model/EmployeeFoursShop.php
  9. 14 0
      app/Model/EmployeeManagerDepart.php
  10. 19 0
      app/Model/EmployeeMenuPermission.php
  11. 14 0
      app/Model/EmployeeRole.php
  12. 19 0
      app/Model/EmployeeTeamPermission.php
  13. 19 0
      app/Model/Header_ext.php
  14. 19 0
      app/Model/Header_ext_sub.php
  15. 22 0
      app/Model/InOutRecord.php
  16. 19 0
      app/Model/Oa.php
  17. 19 0
      app/Model/OaEmployee.php
  18. 19 0
      app/Model/OaEmployeeSub.php
  19. 19 0
      app/Model/OaOrder.php
  20. 19 0
      app/Model/OaOrderSub.php
  21. 19 0
      app/Model/OaOrderSubEmployee.php
  22. 19 0
      app/Model/OaSub.php
  23. 19 0
      app/Model/OaSubRule.php
  24. 19 0
      app/Model/Role.php
  25. 14 0
      app/Model/RoleMenu.php
  26. 20 0
      app/Model/Setting.php
  27. 19 0
      app/Model/Storehouse.php
  28. 19 0
      app/Model/StorehouseEmployee.php
  29. 19 0
      app/Model/SysMenu.php
  30. 19 0
      app/Model/Team.php
  31. 214 44
      app/Service/EmployeeService.php
  32. 112 3
      app/Service/HeaderWord/HeaderWordHookService.php
  33. 0 91
      app/Service/InventoryService.php
  34. 74 0
      app/Service/Service.php
  35. 78 31
      app/Service/SysMenuService.php
  36. 0 96
      app/Service/TechnologyService.php
  37. 4 4
      app/Service/TokenService.php
  38. 7 69
      routes/api.php

+ 39 - 0
app/Http/Controllers/Api/EmployeeController.php

@@ -114,6 +114,32 @@ class EmployeeController extends BaseController
         }
     }
 
+    public function roleMenu(Request $request)
+    {
+        $service = new EmployeeService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->roleMenu($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function roleDetail(Request $request)
+    {
+        $service = new EmployeeService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->roleDetail($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
     public function departEdit(Request $request)
     {
         $service = new EmployeeService();
@@ -209,6 +235,19 @@ class EmployeeController extends BaseController
         }
     }
 
+    public function teamDetail(Request $request)
+    {
+        $service = new EmployeeService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->teamDetail($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
     public function teamList(Request $request)
     {
         $service = new EmployeeService();

+ 32 - 1
app/Http/Controllers/Api/HeaderWordController.php

@@ -12,19 +12,50 @@ class HeaderWordController extends BaseController
 {
     public function getHeaderWord(Request $request)
     {
+        $service =  HeaderWordHookService::getInstance();
+        $data = $request->all();
+        list($status,$data) = $service->getHeaderWord($data);
 
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 
+    public function getHeaderSettings(Request $request){
         $service =  HeaderWordHookService::getInstance();
         $data = $request->all();
-        list($status,$data) = $service->getHeaderWord($data);
+        list($status,$data) = $service->getHeaderSettings($data);
 
         if($status){
             return $this->json_return(200,'',$data);
         }else{
             return $this->json_return(201,$data);
         }
+    }
+
+    public function add(Request $request){
+        $service =  HeaderWordHookService::getInstance();
+        $data = $request->all();
+        list($status,$data) = $service->add($data);
 
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
     }
 
+    public function detail(Request $request){
+        $service =  HeaderWordHookService::getInstance();
+        $data = $request->all();
+        list($status,$data) = $service->detail($data);
 
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 10 - 25
app/Http/Controllers/Api/SysMenuController.php

@@ -2,22 +2,13 @@
 
 namespace App\Http\Controllers\Api;
 
-
 use App\Service\SysMenuService;
 use Illuminate\Http\Request;
 
-
 class SysMenuController extends BaseController
 {
-
-
-
-
-
     public function add(Request $request)
     {
-
-
         $service = new SysMenuService();
         $user = $request->userData->toArray();
         list($status,$data) = $service->add($request->all(),$request->all());
@@ -27,14 +18,10 @@ class SysMenuController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
     public function edit(Request $request)
     {
-
-
         $service = new SysMenuService();
         $user = $request->userData->toArray();
         list($status,$data) = $service->edit($request->all());
@@ -44,14 +31,10 @@ class SysMenuController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
     public function del(Request $request)
     {
-
-
         $service = new SysMenuService();
         $user = $request->userData->toArray();
         list($status,$data) = $service->del($request->all());
@@ -61,27 +44,29 @@ class SysMenuController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
     public function menuList(Request $request)
     {
-
-
         $service = new SysMenuService();
         $user = $request->userData->toArray();
-        list($status,$data) = $service->menuList($request->all());
+        list($status,$data) = $service->menuList($request->all(),$user);
 
         if($status){
             return $this->json_return(200,'',$data);
         }else{
             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);
+        }
+    }
 }

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

@@ -2,7 +2,6 @@
 
 namespace App\Http\Middleware;
 
-use App\Http\Controllers\Api\LoginController;
 use App\Service\EmployeeService;
 use Closure;
 use App\Service\TokenService;

+ 19 - 0
app/Model/Depart.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 部门管理
+ * Class Unit
+ * @package App\Models
+ */
+class Depart extends Model
+{
+    protected $table = "depart"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+    const RULE_DEPART = "ALL";
+}

+ 37 - 0
app/Model/Employee.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 人员管理
+ * Class Unit
+ * @package App\Models
+ */
+class Employee extends Model
+{
+    protected $table = "employee"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+    const USE = 1;
+    const NOT_USE = 2;
+    const IS_ADMIN = 1;
+    const IS_NOT_ADMIN = 0;
+    const SPECIAL_ADMIN = 1;
+    const IS_TECHNICAL = [
+        0 => '否',
+        1 => '是'
+    ];
+
+    //人员状态
+    const STATUS_ONE = 1;
+    const STATUS_TWO = 2;
+
+    const STATUS = [
+        1 => '正常',
+        2 => '停用'
+    ];
+    const DEFAULT_PASS = '123456';
+}

+ 19 - 0
app/Model/EmployeeDepartPermission.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 菜单管理
+ * Class Unit
+ * @package App\Models
+ */
+class EmployeeDepartPermission extends Model
+{
+    protected $table = "employee_depart_permission"; //指定表
+    const CREATED_AT = null;
+    const UPDATED_AT = null;
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/EmployeeFoursShop.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 人员绑定的四s店
+ * Class Unit
+ * @package App\Models
+ */
+class EmployeeFoursShop extends Model
+{
+    protected $table = "employee_fours_shop"; //指定表
+    const CREATED_AT = null;
+    const UPDATED_AT = null;
+    protected $dateFormat = 'U';
+
+}

+ 14 - 0
app/Model/EmployeeManagerDepart.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class EmployeeManagerDepart extends Model
+{
+    protected $table = "employee_manager_depart"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/EmployeeMenuPermission.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 菜单管理
+ * Class Unit
+ * @package App\Models
+ */
+class EmployeeMenuPermission extends Model
+{
+    protected $table = "employee_menu_permission"; //指定表
+    const CREATED_AT = null;
+    const UPDATED_AT = null;
+    protected $dateFormat = 'U';
+
+}

+ 14 - 0
app/Model/EmployeeRole.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class EmployeeRole extends Model
+{
+    protected $table = "employee_role"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/EmployeeTeamPermission.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 菜单管理
+ * Class Unit
+ * @package App\Models
+ */
+class EmployeeTeamPermission extends Model
+{
+    protected $table = "employee_team_permission"; //指定表
+    const CREATED_AT = null;
+    const UPDATED_AT = null;
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/Header_ext.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class Header_ext extends Model
+{
+    protected $table = "header_ext"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/Header_ext_sub.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class Header_ext_sub extends Model
+{
+    protected $table = "header_ext_sub"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 22 - 0
app/Model/InOutRecord.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class InOutRecord extends Model
+{
+    protected $table = "in_out_record"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+    public static $order_type = [
+        MaterialOrder::prefix => '领料单',
+        Construction::prefix => '施工单',
+        Construction::prefix_reject => '施工单:红冲',
+        MaterialReturn::prefix => '退料单',
+        Transfer::prefix => '调拨单',
+        Inventory::prefix => '盘点单',
+        OpeningReceiptOrder::prefix => '期初单',
+    ];
+}

+ 19 - 0
app/Model/Oa.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class Oa extends Model
+{
+    protected $table = "oa"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaEmployee.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaEmployee extends Model
+{
+    protected $table = "oa_employee"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaEmployeeSub.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaEmployeeSub extends Model
+{
+    protected $table = "oa_employee_sub"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaOrder.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaOrder extends Model
+{
+    protected $table = "oa_order"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaOrderSub.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaOrderSub extends Model
+{
+    protected $table = "oa_order_sub"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaOrderSubEmployee.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaOrderSubEmployee extends Model
+{
+    protected $table = "oa_order_sub_employee"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaSub.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaSub extends Model
+{
+    protected $table = "oa_sub"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/OaSubRule.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class OaSubRule extends Model
+{
+    protected $table = "oa_sub_rule"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/Role.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 角色管理
+ * Class Unit
+ * @package App\Models
+ */
+class Role extends Model
+{
+    protected $table = "role"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 14 - 0
app/Model/RoleMenu.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class RoleMenu extends Model
+{
+    protected $table = "role_menu"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 20 - 0
app/Model/Setting.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 设置
+ * Class Unit
+ * @package App\Models
+ */
+class Setting extends Model
+{
+    protected $table = "setting"; //指定表
+    const CREATED_AT = null;
+    const UPDATED_AT = null;
+    protected $dateFormat = 'U';
+
+    const LOCK_NUMBER = 0; //是否启用锁定库存
+}

+ 19 - 0
app/Model/Storehouse.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 仓库
+ * Class Unit
+ * @package App\Models
+ */
+class Storehouse extends Model
+{
+    protected $table = "storehouse"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/StorehouseEmployee.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 仓库
+ * Class Unit
+ * @package App\Models
+ */
+class StorehouseEmployee extends Model
+{
+    protected $table = "storehouse_employee"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/SysMenu.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 菜单管理
+ * Class Unit
+ * @package App\Models
+ */
+class SysMenu extends Model
+{
+    protected $table = "sys_menu"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 19 - 0
app/Model/Team.php

@@ -0,0 +1,19 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 班组管理
+ * Class Unit
+ * @package App\Models
+ */
+class Team extends Model
+{
+    protected $table = "team"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+}

+ 214 - 44
app/Service/EmployeeService.php

@@ -10,6 +10,7 @@ use App\Model\EmployeeMenuPermission;
 use App\Model\EmployeeRole;
 use App\Model\EmployeeTeamPermission;
 use App\Model\Role;
+use App\Model\RoleMenu;
 use App\Model\SysMenu;
 use App\Model\Team;
 use Illuminate\Support\Facades\DB;
@@ -170,119 +171,243 @@ class EmployeeService extends Service
     }
 
     public function roleEdit($data){
-        list($status,$msg) = $this->roleRule($data);
+        list($status,$msg) = $this->roleRule($data, false);
         if(!$status) return [$status,$msg];
-        $first = Role::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
 
         $model = new Role();
         $model = $model->where('id',$data['id'])->first();
-
         $model->title = $data['title'];
         $model->save();
+
         return [true,'保存成功!'];
     }
 
     public function roleAdd($data,$user){
         list($status,$msg) = $this->roleRule($data);
         if(!$status) return [$status,$msg];
-        $first = SysMenu::where('title',$data['title'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
 
         $model = new Role();
-
         $model->title = $data['title'] ;
-
         $model->save();
 
         return [true,'保存成功!'];
-
     }
 
     public function roleDel($data){
         if($this->isEmpty($data,'id')) return [false,'ID必须!'];
 
+        $bool = EmployeeRole::where('del_time',0)
+            ->whereIn('role_id',$data['id'])
+            ->exists();
+        if($bool) return [false,'角色已绑定人员!'];
+
         Role::where('id',$data['id'])->update([
-            'del_time'=>time()
+            'del_time' => time()
         ]);
 
         return [true,'删除成功'];
     }
 
     public function roleList($data){
-        $list = Role::where('del_time',0)->select('title','title','crt_time','id','upd_time')->orderBy('id','desc');
-
+        $list = Role::where('del_time',0)
+            ->select('title','title','crt_time','id','upd_time')
+            ->orderBy('id','desc');
         $list = $this->limit($list,'',$data);
 
         return [200,$list];
     }
 
-    public function roleRule($data){
-        if($this->isEmpty($data,'title')) return [false,'名称不存在!'];
+    public function roleRule($data,$is_check = true){
+        if($this->isEmpty($data,'title')) return [false,'名称不能为空!'];
+
+        if($is_check){
+            $bool = Role::where('title',$data['title'])
+                ->where('del_time',0)
+                ->exists();
+            if($bool) return [false,'角色名称已存在!'];
+        }else{
+            if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
+            $bool = Role::where('title',$data['title'])
+                ->where('id','<>',$data['id'])
+                ->where('del_time',0)
+                ->exists();
+            if($bool) return [false,'角色名称已存在!'];
+        }
 
         return [true,''];
     }
 
-    public function departEdit($data){
-        list($status,$msg) = $this->departRule($data);
-        if(!$status) return [$status,$msg];
-        $first = Depart::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
+    public function roleMenu($data){
+        if(empty($data['role_id']))  return [false,'角色不能为空!'];
+        if(empty($data['menu'])) return [false,'菜单数据不能为空!'];
 
-        $model = new Depart();
-        $model = $model->where('id',$data['id'])->first();
+        DB::beginTransaction();
+        try {
+            RoleMenu::where('role_id',$data['role_id'])->update(['del_time' => time()]);
 
-        $model->title = $data['title'];
-        $model->code = $data['code']??'';
-        $model->save();
-        return [true,'保存成功!'];
+            $insert = [];
+            foreach ($data['menu'] as $t){
+                $insert[] = [
+                    'role_id' => $data['role_id'],
+                    'menu_id' => $t['menu_id'],
+                    'type' => $t['type'],
+                    'crt_time' => time()
+                ];
+            }
+            RoleMenu::insert($insert);
 
+            DB::commit();
+        }catch (\Throwable $exception){
+            DB::rollBack();
+            return [false,$exception->getMessage()];
+        }
+
+        return [true,'保存成功!'];
     }
 
-    public function departAdd($data,$user){
+    public function roleDetail($data){
+        if(empty($data['role_id'])) return [false,'请选择角色'];
 
+        $role = Role::where('id',$data['role_id'])
+            ->where('del_time',0)
+            ->select('id','code','title')
+            ->first();
+        if(empty($role)) return [false,'角色不存在或已被删除'];
+        $role = $role->toArray();
 
-//        if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
-        list($status,$msg) = $this->departRule($data);
+        $menu = RoleMenu::where('role_id',$data['role_id'])
+            ->where('del_time',0)
+            ->select('menu_id','type')
+            ->get()->toArray();
+        $role['menu'] = $menu;
+
+        return [true, $role];
+    }
+
+    public function departEdit($data){
+        list($status,$msg) = $this->departRule($data,false);
         if(!$status) return [$status,$msg];
-        $first = Depart::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
+
+        $update = $msg['data'][0];
 
         $model = new Depart();
+        $model->where('id',$data['id'])->update($update);
 
-        $model->title = $data['title'] ;
-        $model->code = $data['code'] ?? '' ;
+        return [true,'保存成功!'];
+    }
 
-        $model->save();
+    public function departAdd($data,$user){
+        list($status,$msg) = $this->departRule($data);
+        if(!$status) return [$status,$msg];
 
-        return [true,'保存成功!'];
+        Depart::insert($msg['data']);
 
+        return [true,'保存成功!'];
     }
 
     public function departDel($data){
-        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
+        list($status,$msg) = $this->checkDepartDel($data);
+        if(! $status) return [false, $msg];
 
-        Depart::where('id',$data['id'])->update([
+        Depart::whereIn('id',$data['id'])->update([
             'del_time'=>time()
         ]);
 
         return [true,'删除成功'];
     }
 
-    public function departList($data){
-        $list = Depart::where('del_time',0)->select('title','crt_time','id','upd_time','code')->orderBy('id','desc');
+    public function checkDepartDel($data){
+        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
 
-        $list = $this->limit($list,'',$data);
+        $bool = Depart::whereIn('parent_id',$data['id'])->where('del_time',0)->exists();
+        if($bool) return [false,'部门下有子部门!'];
+
+        if($this->checkDepartHasPerson($data['id'])) return [false,'部门下有人员档案!'];
+
+        return [true, ''];
+    }
+
+    public function departList($data){
+        $model = Depart::where('del_time',0)
+            ->select('title','id','code','parent_id','is_use')
+            ->orderby('code', 'asc');
+        if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+        if(! empty($data['code'])) $model->where('code', 'LIKE', '%'.$data['code'].'%');
+
+        $list = $model->get()->toArray();
+        if(! empty($list)) {
+            $list = $this->makeTree(0,$list);
+            $list = $this->set_sort_circle($list);
+        }
 
         return [200,$list];
     }
 
-    public function departRule($data){
-        if($this->isEmpty($data,'title')) return [false,'名称不存在!'];
+    public function departRule($data, $is_check){
+        if($this->isEmpty($data,'data')) return [false,'数据不能为空!'];
+
+        $code = array_column($data['data'],'code');
+        $title = array_column($data['data'],'title');
+        $code = array_map(function($val) {
+            return $val !== null ? $val : 0;
+        }, $code);
+        $title = array_map(function($val) {
+            return $val !== null ? $val : 0;
+        }, $title);
+        $code_count = array_count_values($code);
+        $title_count = array_count_values($title);
+        foreach ($code as $value){
+            if(empty($value)) return [false,'编码不能为空!'];
+            if($code_count[$value] > 1) return [false,'编码不能重复'];
+        }
+        foreach ($title as $value){
+            if(empty($value)) return [false,'名称不能为空!'];
+            if($title_count[$value] > 1) return [false,'名称不能重复'];
+        }
 
-        return [true,''];
+        $depart_id = array_filter(array_column($data['data'],'parent_id'));
+        $res = $this->checkDepartHasPerson($depart_id);
+        if($res) return [false,'部门下已有人员,不能新建子部门!'];
+
+        foreach ($data['data'] as $key => $value){
+            if(empty($value['parent_id'])) $data['data'][$key]['parent_id'] = 0;
+
+            $data['data'][$key]['upd_time'] = time();
+            if($is_check){
+                $data['data'][$key]['crt_time'] = time();
+                $bool = Depart::whereRaw("(binary code = '{$value['code']}' OR title = '{$value['title']}')")
+                    ->where('del_time',0)
+                    ->exists();
+            }else{
+                if($this->isEmpty($data,'id')) return [false,'id不能为空!'];
+
+                if(! $value['is_use']) {
+                    $bool_is = $this->checkDepartHasPerson([$data['id']]);
+                    if($bool_is) return [false,'部门下已经有人员,停用失败!'];
+                }
+                $bool = Depart::whereRaw("(binary code = '{$value['code']}' OR title = '{$value['title']}')")
+                    ->where('id','<>',$data['id'])
+                    ->where('del_time',0)
+                    ->exists();
+            }
+            if($bool) return [false,'编码或部门名称不能重复'];
+        }
+
+        return [true, $data];
     }
 
+    //检测部门下是否存在人员
+    public function checkDepartHasPerson($depart_id = []){
+        if(empty($depart_id)) return false;
+
+        $bool = EmployeeDepartPermission::from('employee_depart_permission as a')
+            ->leftJoin('employee as b','b.id','a.employee_id')
+            ->where('b.del_time',0)
+            ->whereIn('a.depart_id',$depart_id)
+            ->exists();
+
+        return $bool;
+    }
 
     public function teamEdit($data){
         list($status,$msg) = $this->teamRule($data,false);
@@ -320,8 +445,9 @@ class EmployeeService extends Service
     }
 
     public function teamList($data){
-        $list = Team::where('del_time',0)->select('title','id','crt_time','upd_time','code')->orderBy('id','desc');
-
+        $list = Team::where('del_time',0)
+            ->select('title','id','crt_time','upd_time','code')
+            ->orderBy('id','desc');
         $list = $this->limit($list,'',$data);
 
         return [200,$list];
@@ -344,6 +470,18 @@ class EmployeeService extends Service
         return [true,''];
     }
 
+    public function teamDetail($data){
+        if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
+
+        $result = EmployeeTeamPermission::from('employee_team_permission as a')
+            ->leftJoin('employee as b','b.id','a.employee_id')
+            ->where('team_id',$data['id'])
+            ->select('b.id','b.emp_name','b.number as code')
+            ->get()->toArray();
+
+        return [true,$result];
+    }
+
     public function employeeRole($data){
         $role_ids = [];
         $employee_ids = [];
@@ -477,6 +615,38 @@ class EmployeeService extends Service
         return $role_id;
     }
 
+    //获取登录账号的角色的菜单
+    public static function getMenuByRole($role_id,$user_id){
+        $menu = SysMenu::where('del_time',0)->select('id')->get()->toArray();
+        $object = [];//返回的模型
+        if($user_id == Employee::SPECIAL_ADMIN){
+            //超级管理员
+            foreach ($menu as $value){
+                $object[] = [
+                    'type' => 0,//所有权限
+                    'menu_id' => $value['id'],
+                ];
+            }
+            return $object;
+        }
+
+        //没绑定角色
+        if(empty($role_id)) return [];
+
+        $search = RoleMenu::whereIn('role_id',$role_id)
+            ->where('del_time',0)
+            ->select('menu_id','type')
+            ->get()->toArray();
+        foreach ($search as $value){
+            $object[] = [
+                'menu_id' => $value['menu_id'],
+                'type' => $value['type'],
+            ];
+        }
+
+        return $object;
+    }
+
     //获取登录账号的权限部门
     public static function getPersonDepart($employee_id){
         if(empty($employee_id)) return [];

+ 112 - 3
app/Service/HeaderWord/HeaderWordHookService.php

@@ -2,11 +2,10 @@
 
 namespace App\Service\HeaderWord;
 
-
-
-
 use App\Model\Header_ext;
+use App\Model\Header_ext_sub;
 use App\Service\Service;
+use Illuminate\Support\Facades\DB;
 
 /**
  * 表头相关工厂模式
@@ -40,12 +39,122 @@ class HeaderWordHookService extends Service
 
         return [true,$list];
     }
+    public function getHeaderSettings($data){
+        if($this->isEmpty($data,'menu_id')) return [false,'菜单ID不能为空!'];
+        $type = 1;
+        if(! $this->isEmpty($data,'type')) $type = $data['type'];
+
+        $header = config("header.{$data['menu_id']}")[$type] ?? [];
+
+        return [true,$header];
+    }
+
+    public function edit($data){
+        list($status,$msg) = $this->headerRule($data,false);
+        if(!$status) return [$status,$msg];
 
+        return [true,'保存成功!'];
+    }
 
+    public function add($data){
+        list($status,$msg) = $this->headerRule($data);
+        if(!$status) return [$status,$msg];
+
+        DB::beginTransaction();
+        try{
+            Header_ext::where('menu_id',$data['menu_id'])
+                ->where('type',$data['type'])
+                ->where('del_time',0)
+                ->update(['del_time'=>time()]);
+            Header_ext_sub::where('menu_id',$data['menu_id'])
+                ->where('type',$data['type'])
+                ->where('del_time',0)
+                ->update(['del_time'=>time()]);
+
+            $insert = [];
+            foreach ($data['data'] as $value){
+                $insert[] = [
+                    'key' => $value['key'] ?? '',
+                    'value' => $value['value'],
+                    'type' => $value['type'],
+                    'menu_id' => $value['menu_id'],
+                    'position' => $value['position'],
+                    'x_axis' => $value['x'],
+                    'y_axis' => $value['y'],
+                ];
+            }Header_ext::insert($insert);
+
+            Header_ext_sub::insert([
+                'type' => $data['type'],
+                'menu_id' => $data['menu_id'],
+                'merge_cells' => json_encode($data['mergeCells']),
+                'max_length' => $data['maxLength'],
+            ]);
+
+            DB::commit();
+        }catch (\Exception $e){
+            DB::rollBack();
+            return [false,$e->getMessage()];
+        }
 
+        return [true,'保存成功!'];
+    }
 
+    public function del($data){
+        if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
 
+        return [true,'删除成功'];
+    }
 
+    public function detail($data){
+        if($this->isEmpty($data,'menu_id')) return [false,'菜单ID不能为空!'];
+        if($this->isEmpty($data,'type')) return [false,'TYPE不能为空!'];
+
+        $result = Header_ext::where('del_time',0)
+            ->select('key','value','position','x_axis as x','y_axis as y')
+            ->where('menu_id',$data['menu_id'])
+            ->where('type',$data['type'])
+            ->get()->toArray();
+        $result_sub = Header_ext_sub::where('del_time',0)
+            ->select('merge_cells','max_length')
+            ->where('menu_id',$data['menu_id'])
+            ->where('type',$data['type'])
+            ->get()->toArray();
+
+        $return['data'] = $result;
+        $return['mergeCells'] = ! empty($result_sub[0]['merge_cells']) ? json_decode($result_sub[0]['merge_cells'],true) : [];
+        $return['maxLength'] = $result_sub[0]['max_length'] ?? 1;
+
+        return [true,$return];
+    }
 
+    public function headerRule(&$data,$is_add = true){
+        if($this->isEmpty($data,'menu_id')) return [false,'菜单ID不能为空!'];
+        if($this->isEmpty($data,'data')) return [false,'数据不能为空!'];
+
+        foreach ($data['data'] as $key => $value){
+            if (strpos($value['position'], ',') !== false) {
+                $tmp = explode(',',$value['position']);
+                $str_col = $str_ros =  '';
+                foreach ($tmp as $v){
+                    $tmp_v = explode(':',$v);
+                    if($tmp_v[0] != $tmp_v[1]) {
+                        // 截取头部
+                        $head = explode(':', $tmp[0])[0];
+                        // 截取尾部
+                        $tail = explode(':', end($tmp))[1];
+                        $str_ros = $head . ":" . $tail;
+                        continue;
+                    }else{
+                        $str_col .= $tmp_v[0] . ':';
+                    }
+                }
+                $str_col = rtrim($str_col,':');
+                if($str_col) $data['data'][$key]['position'] = $str_col;
+                if($str_ros) $data['data'][$key]['position'] = $str_ros;
+            }
+        }
 
+        return [true,''];
+    }
 }

+ 0 - 91
app/Service/InventoryService.php

@@ -1,91 +0,0 @@
-<?php
-
-namespace App\Service;
-
-use App\Model\InOutRecord;
-use App\Model\Inventory;
-use Illuminate\Support\Facades\DB;
-
-class InventoryService extends Service
-{
-    public function getList($data){
-        $model = Inventory::where('')
-            ->select('*');
-
-        $list = $this->limit($model,'',$data);
-
-        return [200, $list];
-    }
-
-    //获取卷膜真实库存
-    public static function getGoodsRealInventy($goods_id, $storehouse_id){
-        if(empty($roll_film_id) || empty($storehouse_id))  return [];
-
-        $array = Inventory::where('storehouse_id',$storehouse_id)
-            ->whereIn('goods_id',$goods_id)
-            ->select('goods_id','storehouse_id','number','lock_number')
-            ->get()->toArray();
-        if(empty($array)) return [];
-
-        $return = [];
-        foreach ($array as $v){
-            $return[$v['goods_id'].$v['storehouse_id']] = $v['number'] - $v['lock_number'];
-        }
-
-        return $return;
-    }
-
-    /**
-     * 业务单据审核后 更新库存
-     * order_number 订单编号
-     */
-    public function changeInventory($data){
-        $result = InOutRecord::where('del_time',0)
-            ->where('from_order_number',$data['order_number'])
-            ->select('storehouse_id',DB::raw("sum(number) as number"),'goods_id')
-            ->groupby('goods_id','storehouse_id')
-            ->get()->toArray();
-
-        if (empty($result)) return false;
-
-        //查询参数拼接
-        $search_args = '';
-        foreach ($result as $value){
-            $search_args .= "(goods_id = '{$value["goods_id"]} and storehouse_id = '{$value["storehouse_id"]}') OR ";
-        }
-        $search_args = rtrim($search_args,'OR ');
-
-        DB::beginTransaction();
-        try {
-            $inventory = Inventory::whereRaw($search_args)
-                ->select('id','goods_id','number','storehouse_id')
-                ->sharedLock()
-                ->get()
-                ->toArray();
-            $inventory_map = [];
-            if(! empty($inventory)){
-                foreach ($inventory as $value){
-                    $inventory_map[$value['goods_id'] . $value['storehouse_id']]['id'] = $value['id'];
-                    $inventory_map[$value['goods_id'] . $value['storehouse_id']]['number'] = $value['number'];
-                }
-            }
-
-            foreach ($result as $key => $value){
-                $keys = $value['goods_id'] . $value['storehouse_id'];
-                if(! isset($inventory_map[$keys])){
-                    Inventory::insert($result[$key]);
-                }else{
-                    $array['number'] = $value['number'] + $inventory_map[$keys]['number'];
-                    $array['lock_number'] = $value['lock_number'] - $inventory_map[$keys]['number'];
-                    Inventory::where('id', $inventory_map[$keys]['id'])->update($array);
-                }
-            }
-
-            DB::commit();
-            return true;
-        }catch (\Throwable $exception){
-            DB::rollBack();
-            return false;
-        }
-    }
-}

+ 74 - 0
app/Service/Service.php

@@ -3,6 +3,8 @@
 namespace App\Service;
 
 
+use Illuminate\Support\Facades\Redis;
+
 /**
  * 公用的公共服务
  * @package App\Models
@@ -232,4 +234,76 @@ class Service
 
         return $result;
     }
+
+    //后台端 某些需要限制请求频率的接口
+    //需要主动删除  Redis::del($key)
+    public function limitingSendRequestBackg($key){
+        // 使用Redis Facade设置,当键名不存在时才设置成功
+        if (Redis::setnx($key, 1)) return [true, ''];
+
+        return [false,'操作频繁!'];
+    }
+
+    public function deLlimitingSendRequestBackg($key){
+        Redis::del($key);
+    }
+
+    //后台端 某些需要限制请求频率的接口 有过期时间
+    public function limitingSendRequestBackgExpire($key,$ttl = 5){
+        if($ttl < 5) $ttl = 5;
+
+        // 使用Redis Facade设置,当键名不存在时才设置成功
+        if (Redis::setnx($key, 1)) {
+            Redis::expire($key, $ttl); //多少秒后过期
+
+            return [true, ''];
+        }
+
+        return [false,'操作频繁, 请在 ' . $ttl . '秒后重试'];
+    }
+
+    //前端传来的时间转换为时间戳 关于时间段 2023-09-17T16:00:00.000Z
+    function changeDateToTimeStampAboutRange($time_range){
+        if(empty($time_range[0]) || empty($time_range[1])) return [];
+
+        // 创建一个 DateTime 对象并设置时区为 UTC
+        $dateTime = new \DateTime($time_range[0], new \DateTimeZone('UTC'));
+        $dateTime1 = new \DateTime($time_range[1], new \DateTimeZone('UTC'));
+
+        // 将时区设置为 PRC
+        $dateTime->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+        $dateTime1->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+
+        // 将日期时间格式化为特定格式
+        $formattedDate = $dateTime->format('Y-m-d');
+        $formattedDate1 = $dateTime1->format('Y-m-d');
+
+        $return = [];
+        $return[] = strtotime($formattedDate . " 00:00:00");
+        $return[] = strtotime($formattedDate1 . " 23:59:59");
+
+        return $return;
+    }
+
+    function changeDateToNewDate($time_range){
+        if(empty($time_range[0]) || empty($time_range[1])) return [];
+
+        // 创建一个 DateTime 对象并设置时区为 UTC
+        $dateTime = new \DateTime($time_range[0], new \DateTimeZone('UTC'));
+        $dateTime1 = new \DateTime($time_range[1], new \DateTimeZone('UTC'));
+
+        // 将时区设置为 PRC
+        $dateTime->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+        $dateTime1->setTimezone(new \DateTimeZone('Asia/Shanghai'));
+
+        // 将日期时间格式化为特定格式
+        $formattedDate = $dateTime->format('Y-m-d');
+        $formattedDate1 = $dateTime1->format('Y-m-d');
+
+        $return = [];
+        $return[] = $formattedDate;
+        $return[] = $formattedDate1;
+
+        return $return;
+    }
 }

+ 78 - 31
app/Service/SysMenuService.php

@@ -2,25 +2,16 @@
 
 namespace App\Service;
 
-
+use App\Model\Employee;
 use App\Model\SysMenu;
 
-/**
- * 菜单相关
- * @package App\Models
- */
 class SysMenuService extends Service
 {
-
     public function edit($data){
-        list($status,$msg) = $this->menuRule($data);
+        list($status,$msg) = $this->menuRule($data,false);
         if(!$status) return [$status,$msg];
-        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
-        $id = $data['id'];
-        $first = SysMenu::where('title',$data['title'])->where('id','<>',$id)->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
 
-        $model = SysMenu::where('id',$id)->first();
+        $model = SysMenu::where('id',$data['id'])->first();
         $model->title = $data['title'];
         $model->icon = $data['icon'] ??  '';
         $model->uri = $data['uri'];
@@ -29,66 +20,122 @@ class SysMenuService extends Service
         $model->save();
 
         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,'保存成功!'];
-
     }
 
     public function del($data){
         if($this->isEmpty($data,'id')) return [false,'ID必须!'];
 
         SysMenu::where('id',$data['id'])->update([
-            'del_time'=>time()
+            'del_time' => time()
         ]);
 
         return [true,'删除成功'];
     }
 
-    public function menuList($data){
+    public function menuList($data,$user){
         if(isset($data['type'])) $type = $data['type'];
         else $type = '1';
         if($type === '1'){
-            $return  = SysMenu::where('del_time',0)->select('title','icon','uri','parent_id','sort','crt_time','id')->orderBy('sort','desc')->get()->toArray();
+            $return  = SysMenu::where('del_time',0)
+                ->select('title','icon','uri','parent_id','sort','crt_time','id')
+                ->orderBy('sort','desc')
+                ->get()->toArray();
         }else{
-            $list = SysMenu::where('del_time',0)->where('state',1)->select('title','icon','uri','parent_id','sort','crt_time','id')->orderBy('sort','desc')->get()->toArray();
+            $list = SysMenu::where('del_time',0)
+                ->where('state',1)
+                ->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']);
+                $list->whereIn('id',array_column($menu,'menu_id'));
+            }
+            $list = $list->get()->toArray();
             $return = $this->makeTree(0,$list);
             $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,'路由不存在!'];
+    public function menuRule($data, $is_check = true){
+        if($this->isEmpty($data,'title')) return [false,'名称不能为空!'];
         if($this->isEmpty($data,'parent_id')) return [false,'父级不存在!'];
 
+        if($is_check){
+            $bool = SysMenu::where('title',$data['title'])
+                ->where('del_time',0)
+                ->exists();
+        }else{
+            if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
+            $bool = SysMenu::where('title',$data['title'])
+                ->where('id','<>',$data['id'])
+                ->where('del_time',0)
+                ->exists();
+        }
+        if($bool) 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,'移动成功'];
+    }
 }

+ 0 - 96
app/Service/TechnologyService.php

@@ -1,96 +0,0 @@
-<?php
-
-namespace App\Service;
-
-use App\Model\BasicProcess;
-use App\Model\Process;
-use App\Model\Technology;
-
-/**
- * 工艺相关
- * @package App\Models
- */
-class TechnologyService extends Service
-{
-    public function technologyEdit($data){
-        list($status,$msg) = $this->technologyRule($data);
-        if(!$status) return [$status,$msg];
-        if($this->isEmpty($data,'id')) return [false,'ID不存在'];
-        $first = Technology::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
-
-        $model = new Technology();
-        $model = $model->where('id',$data['id'])->first();
-        $model->title = $data['title'];
-        $model->process_id = $data['process_id'];
-        $model->save();
-
-        return [true,'保存成功!'];
-    }
-
-    public function technologyAdd($data,$user){
-        list($status,$msg) = $this->technologyRule($data);
-        if(!$status) return [$status,$msg];
-        $first = Technology::where('title',$data['title'])->where('del_time',0)->first();
-        if(!empty($first))return [false,'名称已存在!'];
-
-        $model = new Technology();
-
-        $model->title = $data['title'];
-        $model->process_id = $data['process_id'];
-        $model->save();
-
-        return [true,'保存成功!'];
-    }
-
-    public function technologyDel($data){
-        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
-
-        Technology::where('id',$data['id'])->update([
-            'del_time' => time()
-        ]);
-
-        return [true,'删除成功'];
-    }
-
-    public function technologyList($data){
-        $model = Technology::where('del_time',0)->select('*');
-
-        if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
-
-        $list = $this->limit($model,'',$data);
-
-        return [200,$list];
-    }
-
-    public function technologyRule($data){
-        if($this->isEmpty($data,'title')) return [false,'名称不能为空!'];
-        if($this->isEmpty($data,'process_id')) return [false,'工序不能为空!'];
-
-        return [true,''];
-    }
-
-    public function technologyCopy($data,$user){
-        list($status,$msg) = $this->technologyCopyRule($data);
-        if(! $status) return [$status,$msg];
-
-        $first = Technology::where('id',$data['id'])->where('del_time',0)->first();
-
-        $model = new Technology();
-        $model->title = $data['title'];
-        $model->process_id = $first->process_id;
-        $model->save();
-
-        return [true,'保存成功!'];
-    }
-
-    public function technologyCopyRule($data){
-        if($this->isEmpty($data,'id')) return [false,'复制的工序ID不能为空!'];
-        if($this->isEmpty($data,'title')) return [false,'名称不能为空!'];
-
-        $bool = Technology::where('title',$data['title'])->where('del_time',0)->exists();
-        if($bool) return [false,'名称已存在!'];
-
-        return [true,''];
-    }
-}

+ 4 - 4
app/Service/TokenService.php

@@ -7,7 +7,7 @@ use Firebase\JWT\Key;
 
 class TokenService
 {
-    const key = "jf2.0"; //签发人  可空
+    const key = "t_nine"; //签发人  可空
     const validity = 8640000; //有效期
     const error = [
         -1 => "签名不正确",
@@ -27,12 +27,12 @@ class TokenService
         $token = array(
             "iat"=> time(), //签发时间
             "nbf"=> time() - 1, //生效时间  (立即生效)
-            "exp"=> time() + TokenService::validity,
+            "exp"=> time() + self::validity,
             "data"=> [
                 'user_id' => $userId
             ]
         );
-        return JWT::encode($token,TokenService::key,"HS256");
+        return JWT::encode($token,self::key,"HS256");
     }
 
     /**
@@ -45,7 +45,7 @@ class TokenService
     public static function verifyToken($token){
         try {
             JWT::$leeway = 60;//当前时间减去60,把时间留点余地,同步其他服务器时间,解决nbf字段验证不通过问题
-            $decoded = JWT::decode($token,new Key(TokenService::key, "HS256")); //HS256方式,这里要和签发的时候对应
+            $decoded = JWT::decode($token,new Key(self::key, "HS256")); //HS256方式,这里要和签发的时候对应
 
             $arr = (array)$decoded;
             return $arr['data']->user_id;

+ 7 - 69
routes/api.php

@@ -18,15 +18,17 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
 });
 
 Route::any('login', 'Api\LoginController@login');
-Route::any('loginMobile', 'Api\LoginController@loginMobile');
 Route::any('test', 'Api\TestController@aa');
 Route::any('getHeaderWord', 'Api\HeaderWordController@getHeaderWord');
-Route::any('deviceList', 'Api\Device\DeviceController@deviceList');
 Route::group(['middleware'=> []],function ($route){
+    $route->any('HeaderSettingsAdd', 'Api\HeaderWordController@add');
+    $route->any('HeaderSettingsDetail', 'Api\HeaderWordController@detail');
+
     $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');
@@ -38,84 +40,20 @@ Route::group(['middleware'=> []],function ($route){
     $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('roleDetail', 'Api\EmployeeController@roleDetail');
+    $route->any('roleMenu', 'Api\EmployeeController@roleMenu');
 
     $route->any('teamAdd', 'Api\EmployeeController@teamAdd');
     $route->any('teamEdit', 'Api\EmployeeController@teamEdit');
     $route->any('teamDel', 'Api\EmployeeController@teamDel');
     $route->any('teamList', 'Api\EmployeeController@teamList');
+    $route->any('teamDetail', 'Api\EmployeeController@teamDetail');
 
     $route->any('employeeDepart', 'Api\EmployeeController@employeeDepart');
     $route->any('employeeTeam', 'Api\EmployeeController@employeeTeam');
     $route->any('employeeRole', 'Api\EmployeeController@employeeRole');
-
-    $route->any('measureAdd', 'Api\MeasureController@Add');
-    $route->any('measureEdit', 'Api\MeasureController@Edit');
-    $route->any('measureDel', 'Api\MeasureController@Del');
-    $route->any('measureList', 'Api\MeasureController@measureList');
-
-    $route->any('basicMaterialList', 'Api\MaterialController@basicMaterialList');
-    $route->any('basicMaterialEdit', 'Api\MaterialController@basicMaterialEdit');
-    $route->any('basicMaterialAdd', 'Api\MaterialController@basicMaterialAdd');
-    $route->any('basicMaterialDel', 'Api\MaterialController@basicMaterialDel');
-
-    $route->any('materialList', 'Api\MaterialController@materialList');
-    $route->any('materialDetail', 'Api\MaterialController@materialDetail');
-    $route->any('materialEdit', 'Api\MaterialController@materialEdit');
-    $route->any('materialAdd', 'Api\MaterialController@materialAdd');
-    $route->any('materialDel', 'Api\MaterialController@materialDel');
-
-    //工序
-    $route->any('basicProcessList', 'Api\ProcessController@basicProcessList');
-    $route->any('basicProcessEdit', 'Api\ProcessController@basicProcessEdit');
-    $route->any('basicProcessAdd', 'Api\ProcessController@basicProcessAdd');
-    $route->any('basicProcessDel', 'Api\ProcessController@basicProcessDel');
-
-    $route->any('processList', 'Api\ProcessController@processList');
-    $route->any('processDetail', 'Api\ProcessController@processDetail');
-    $route->any('processEdit', 'Api\ProcessController@processEdit');
-    $route->any('processAdd', 'Api\ProcessController@processAdd');
-    $route->any('processDel', 'Api\ProcessController@processDel');
-
-    //工艺
-    $route->any('technologyList', 'Api\TechnologyController@technologyList');
-    $route->any('technologyEdit', 'Api\TechnologyController@technologyEdit');
-    $route->any('technologyAdd', 'Api\TechnologyController@technologyAdd');
-    $route->any('technologyDel', 'Api\TechnologyController@technologyDel');
-    $route->any('technologyCopy', 'Api\TechnologyController@technologyCopy');
-
-    $route->any('productList', 'Api\MaterialController@productList');
-    $route->any('productEdit', 'Api\MaterialController@edit');
-    $route->any('productAdd', 'Api\MaterialController@edd');
-    $route->any('productDel', 'Api\MaterialController@del');
-
-    $route->any('bomList', 'Api\BomController@bomList');
-    $route->any('bomDetail', 'Api\BomController@bomDetail');
-    $route->any('bomEdit', 'Api\BomController@edit');
-    $route->any('bomAdd', 'Api\BomController@add');
-    $route->any('bomDel', 'Api\BomController@del');
-
-    $route->any('orderList', 'Api\OrderController@orderList');
-    $route->any('orderAdd', 'Api\OrderController@add');
-    $route->any('orderEdit', 'Api\OrderController@add');
-    $route->any('orderDel', 'Api\OrderController@del');
-    $route->any('orderDetail', 'Api\OrderController@orderDetail');
-
-    $route->any('tagDetail', 'Api\OrderTagController@tagDetail');
-    $route->any('boxDetail', 'Api\OrderBoxController@boxDetail');
-    $route->any('transportDetail', 'Api\OrderTransportController@transportDetail');
-    $route->any('boxIn', 'Api\OrderBoxController@boxIn');
-    $route->any('boxOut', 'Api\OrderBoxController@boxOut');
-    $route->any('boxTransport', 'Api\OrderTransportController@boxTransport');
-    $route->any('transportConfirm', 'Api\OrderTransportController@transportConfirm');
-
-
-    $route->any('apiExport', 'Api\IOController@apiExport');
-
-
-
 });