Ver código fonte

add - 工程师数据权限限制 - 省 市

liugc 1 ano atrás
pai
commit
d461ad2270

+ 23 - 1
app/adminapi/lists/master_worker/BankAccountLists.php

@@ -18,6 +18,7 @@ namespace app\adminapi\lists\master_worker;
 use app\adminapi\lists\BaseAdminDataLists;
 use app\common\model\master_worker\BankAccount;
 use app\common\lists\ListsSearchInterface;
+use app\common\model\master_worker\MasterWorker;
 
 
 /**
@@ -51,6 +52,26 @@ class BankAccountLists extends BaseAdminDataLists implements ListsSearchInterfac
         }
         return $where;
     }
+    /**
+     * 获取数据权限
+     * $this->adminInfo['data_rules']
+     * province city admin_id sale_group_id sale_id  property_head_id
+     */
+    public function queryDataWhere(){
+        $where = [];
+        $data_rules = $this->adminInfo['data_rules'];
+        if (isset($data_rules['province']) && !empty($data_rules['province'])) {
+            $where[] = ['province','in' ,$data_rules['province']];
+        }
+        if (isset($data_rules['city']) && !empty($data_rules['city'])) {
+            $where[] = ['city','in' ,$data_rules['city']];
+        }
+        if(!empty($where)){
+            $worker_ids = MasterWorker::where($where)->column('id')??[0];
+            $where = [['worker_id','in' ,$worker_ids]];
+        }
+        return $where;
+    }
     /**
      * @notes 获取列表
      * @return array
@@ -64,6 +85,7 @@ class BankAccountLists extends BaseAdminDataLists implements ListsSearchInterfac
     {
         return BankAccount::where($this->searchWhere)->where($this->queryWhere())
             ->field(['id', 'account_holder', 'bank_name', 'province', 'city', 'opening_branch', 'account', 'bank_image', 'mobile', 'worker_id', 'audit_state','create_time','update_time'])
+            ->where($this->queryDataWhere())
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
@@ -79,7 +101,7 @@ class BankAccountLists extends BaseAdminDataLists implements ListsSearchInterfac
      */
     public function count(): int
     {
-        return BankAccount::where($this->searchWhere)->where($this->queryWhere())->count();
+        return BankAccount::where($this->searchWhere)->where($this->queryWhere())->where($this->queryDataWhere())->count();
     }
 
 }

+ 23 - 2
app/adminapi/lists/master_worker/MasterWorkerAgreeLists.php

@@ -16,6 +16,7 @@ namespace app\adminapi\lists\master_worker;
 
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerAgree;
 use app\common\lists\ListsSearchInterface;
 
@@ -50,7 +51,26 @@ class MasterWorkerAgreeLists extends BaseAdminDataLists implements ListsSearchIn
         }
         return $where;
     }
-
+    /**
+     * 获取数据权限
+     * $this->adminInfo['data_rules']
+     * province city admin_id sale_group_id sale_id  property_head_id
+     */
+    public function queryDataWhere(){
+        $where = [];
+        $data_rules = $this->adminInfo['data_rules'];
+        if (isset($data_rules['province']) && !empty($data_rules['province'])) {
+            $where[] = ['province','in' ,$data_rules['province']];
+        }
+        if (isset($data_rules['city']) && !empty($data_rules['city'])) {
+            $where[] = ['city','in' ,$data_rules['city']];
+        }
+        if(!empty($where)){
+            $worker_ids = MasterWorker::where($where)->column('id')??[0];
+            $where = [['worker_id','in' ,$worker_ids]];
+        }
+        return $where;
+    }
     /**
      * @notes 获取列表
      * @return array
@@ -64,6 +84,7 @@ class MasterWorkerAgreeLists extends BaseAdminDataLists implements ListsSearchIn
     {
         return MasterWorkerAgree::with(['masterWorkerInfo'])->where($this->searchWhere)->where($this->queryWhere())
             ->field(['id', 'agree_type', 'worker_id', 'sign', 'pdf_url', 'create_time', 'audit_state','update_time'])
+            ->where($this->queryDataWhere())
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
@@ -79,7 +100,7 @@ class MasterWorkerAgreeLists extends BaseAdminDataLists implements ListsSearchIn
      */
     public function count(): int
     {
-        return MasterWorkerAgree::where($this->searchWhere)->where($this->queryWhere())->count();
+        return MasterWorkerAgree::where($this->searchWhere)->where($this->queryWhere())->where($this->queryDataWhere())->count();
     }
 
 }

+ 18 - 2
app/adminapi/lists/master_worker/MasterWorkerExamineLists.php

@@ -65,7 +65,22 @@ class MasterWorkerExamineLists extends BaseAdminDataLists implements ListsSearch
         }
         return $where;
     }
-
+    /**
+     * 获取数据权限
+     * $this->adminInfo['data_rules']
+     * province city admin_id sale_group_id sale_id  property_head_id
+     */
+    public function queryDataWhere(){
+        $where = [];
+        $data_rules = $this->adminInfo['data_rules'];
+        if (isset($data_rules['province']) && !empty($data_rules['province'])) {
+            $where[] = ['province','in' ,$data_rules['province']];
+        }
+        if (isset($data_rules['city']) && !empty($data_rules['city'])) {
+            $where[] = ['city','in' ,$data_rules['city']];
+        }
+        return $where;
+    }
     /**
      * @notes 获取列表
      * @return array
@@ -79,6 +94,7 @@ class MasterWorkerExamineLists extends BaseAdminDataLists implements ListsSearch
     {
         $queryWhere = $this->queryWhere();
         return MasterWorker::with(['workerInfo','workerAgree','bankAccount'])->where($this->searchWhere)->where($queryWhere)
+            ->where($this->queryDataWhere())
             ->field(['*'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
@@ -96,7 +112,7 @@ class MasterWorkerExamineLists extends BaseAdminDataLists implements ListsSearch
     public function count(): int
     {
         $queryWhere = $this->queryWhere();
-        return MasterWorker::where($this->searchWhere)->where($queryWhere)->count();
+        return MasterWorker::where($this->searchWhere)->where($queryWhere)->where($this->queryDataWhere())->count();
     }
 
 }

+ 23 - 2
app/adminapi/lists/master_worker/MasterWorkerInfoLists.php

@@ -16,6 +16,7 @@ namespace app\adminapi\lists\master_worker;
 
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\model\master_worker\MasterWorker;
 use app\common\model\master_worker\MasterWorkerInfo;
 use app\common\lists\ListsSearchInterface;
 
@@ -50,7 +51,26 @@ class MasterWorkerInfoLists extends BaseAdminDataLists implements ListsSearchInt
         }
         return $where;
     }
-
+    /**
+     * 获取数据权限
+     * $this->adminInfo['data_rules']
+     * province city admin_id sale_group_id sale_id  property_head_id
+     */
+    public function queryDataWhere(){
+        $where = [];
+        $data_rules = $this->adminInfo['data_rules'];
+        if (isset($data_rules['province']) && !empty($data_rules['province'])) {
+            $where[] = ['province','in' ,$data_rules['province']];
+        }
+        if (isset($data_rules['city']) && !empty($data_rules['city'])) {
+            $where[] = ['city','in' ,$data_rules['city']];
+        }
+        if(!empty($where)){
+            $worker_ids = MasterWorker::where($where)->column('id')??[0];
+            $where = [['worker_id','in' ,$worker_ids]];
+        }
+        return $where;
+    }
     /**
      * @notes 获取列表
      * @return array
@@ -64,6 +84,7 @@ class MasterWorkerInfoLists extends BaseAdminDataLists implements ListsSearchInt
     {
         return MasterWorkerInfo::where($this->searchWhere)->where($this->queryWhere())
             ->field(['id', 'worker_id', 'real_name', 'id_card', 'id_card_front_img', 'id_card_opposite_img', 'mobile', 'address', 'audit_state', 'create_time','update_time'])
+            ->where($this->queryDataWhere())
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['id' => 'desc'])
             ->select()
@@ -79,7 +100,7 @@ class MasterWorkerInfoLists extends BaseAdminDataLists implements ListsSearchInt
      */
     public function count(): int
     {
-        return MasterWorkerInfo::where($this->searchWhere)->where($this->queryWhere())->count();
+        return MasterWorkerInfo::where($this->searchWhere)->where($this->queryWhere())->where($this->queryDataWhere())->count();
     }
 
 }