Zhouzhendong 5 лет назад
Родитель
Сommit
354b013ef2

+ 7 - 0
app/Http/Controllers/OwnerController.php

@@ -22,6 +22,8 @@ class OwnerController extends Controller
     /**
      * Display a listing of the resource.
      *
+     * @param Request $request
+     *
      * @return Response
      */
     public function index(Request $request)
@@ -143,7 +145,10 @@ class OwnerController extends Controller
      *
      * @param Request $request
      * @param Owner $owner
+     *
      * @return Response
+     *
+     * @throws Exception
      */
     public function update(Request $request, Owner $owner)
     {
@@ -173,6 +178,7 @@ class OwnerController extends Controller
         $re = $owner->update([
             "deleted_at" => date('Y-m-d H:i:s'),
         ]);
+        app("OwnerService")->deleteAuthority($owner);
         app('LogService')->log(__METHOD__, __FUNCTION__, $owner->toJson(), Auth::user()['id']);
         return ['success' => $re];
     }
@@ -194,6 +200,7 @@ class OwnerController extends Controller
         $id = $request->input('id');
         $owner = Owner::query()->whereNotNull('deleted_at')->where('id', $id)->first();
         $owner->update(["deleted_at" => null]);
+        app("OwnerService")->createAuthority($owner);
         app('LogService')->log(__METHOD__, __FUNCTION__, json_encode($request->toArray()), Auth::user()['id']);
         return ['success' => 'true', 'owner' => $owner];
     }

+ 1 - 0
app/Observers/OwnerObserver.php

@@ -16,6 +16,7 @@ class OwnerObserver
     {
         if(env('APP_ENV')=='production')
             app("OwnerService")->syncPush($owner);
+            app("OwnerService")->createAuthority($owner);
     }
 
     public function updated(Owner $owner)

+ 27 - 0
app/Services/OwnerService.php

@@ -2,6 +2,7 @@
 
 namespace App\Services;
 
+use App\Authority;
 use App\OracleBasCustomer;
 use App\Owner;
 use App\User;
@@ -332,4 +333,30 @@ sql
         }
         return true;
     }
+
+    /**
+     * 同步货主时创建权限
+     *
+     * @param array|Owner $owner
+     */
+    public function createAuthority($owner)
+    {
+        Authority::query()->create([
+            'name' => "_{$owner['id']}",
+            'alias_name' => "(货主:{$owner['name']})",
+            'remark' => "(key: _{$owner['id']})",
+        ]);
+    }
+
+    /**
+     * 停用货主时删除权限
+     *
+     * @param array|Owner $owner
+     */
+    public function deleteAuthority($owner)
+    {
+        Authority::query()->where('name',"_{$owner['id']}")
+            ->where("alias_name","like","(货主%")
+            ->delete();
+    }
 }