Просмотр исходного кода

为承运商添加 可见问题件类型限制

ajun 4 лет назад
Родитель
Сommit
fdad6bbb5f
3 измененных файлов с 15 добавлено и 3 удалено
  1. 6 1
      app/Filters/WorkOrderFilters.php
  2. 7 1
      app/Services/WorkOrderService.php
  3. 2 1
      app/User.php

+ 6 - 1
app/Filters/WorkOrderFilters.php

@@ -77,7 +77,12 @@ class WorkOrderFilters
         $user = Auth::user();
         $logistic_ids = App('UserService')->getPermittingLogisticIds($user);
         $owner_id = app('UserService')->getPermittingOwnerIds($user);
-
+        if (count($logistic_ids)>=0 && count($owner_id) == 0){
+            $orderIssueIds = OrderIssue::query()->select('id')->whereIn('name',['破损','快递丢件'])->get()->toArray();
+            $orderIssueIds = array_intersect($orderIssueIds,$this->array_filter['order_issue_type']);
+            if (count($orderIssueIds) == 0) unset($this->array_filter['order_issue_type']);
+            else $this->array_filter['order_issue_type'] = $orderIssueIds;
+        }
         $this->getOrderQuery()->where(function($query)use ($owner_id,$logistic_ids){
             $query->whereIn('owner_id',$owner_id)->orWhereIn('logistic_id',$logistic_ids);
         });

+ 7 - 1
app/Services/WorkOrderService.php

@@ -7,6 +7,7 @@ use App\OrderIssue;
 use App\OrderIssueType;
 use App\OrderPackage;
 use App\Traits\ServiceAppAop;
+use App\User;
 use App\WorkOrder;
 use App\WorkOrderType;
 use Illuminate\Database\Eloquent\Builder;
@@ -26,7 +27,12 @@ class WorkOrderService
      */
     public function getIssueType()
     {
-        return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '其他', '快递异常', '错漏发', '破损','快递丢件'])->get();
+        $user = Auth::user();
+        $logistic_ids = App('UserService')->getPermittingLogisticIds($user);
+        if ($user->isSuperAdmin() || count($logistic_ids) == 0 ){
+            return OrderIssueType::query()->whereIn('name', ['拦截', '信息更改', '其他', '快递异常', '错漏发', '破损','快递丢件'])->get();
+        }
+        return OrderIssueType::query()->whereIn('name', ['破损','快递丢件'])->get();
     }
 
     /**

+ 2 - 1
app/User.php

@@ -49,7 +49,8 @@ class User extends Authenticatable
 //    function hasRole($roles){
 //        return !!$roles->intersect($this->roles()->get())->count();
 //    }
-    function isSuperAdmin(){
+    function isSuperAdmin(): bool
+    {
         $superAdmins=config("users.superAdmin");
         foreach ($superAdmins as $superAdmin){
             if($this['name']==$superAdmin){