Browse Source

参照流程优化列表的数据权限(第二部分)

wufeng 2 years ago
parent
commit
68730a660d

+ 10 - 4
app/admin/controller/Consult.php

@@ -64,10 +64,13 @@ class Consult extends Base
         $company_name = isset($this->post['company_name']) && $this->post['company_name'] !== "" ? trim($this->post['company_name']) : "";
         if ($company_name !== "") $where[] = ["b.createrid", 'in', get_company_item_user_by_name($company_name)];
 
-        $role=$this->checkRole();
-        if(!empty($role['write'])){
-            $where[]=["b.createrid","in",$role['write']];
-        }
+//        $role=$this->checkRole();
+//        if(!empty($role['write'])){
+//            $where[]=["b.createrid","in",$role['write']];
+//        }
+        $role = $this->checkDataShare();
+        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ["b.createrid", "in", $role[DataGroupModel::$type_全部]];
+
 //        if(!empty($role['platform']) ){
 //            $where[]=["b.platform_code","in",$role['platform']];
 //        }
@@ -99,6 +102,9 @@ class Consult extends Base
             }
             $value['metal_name']=isset($value['metal_id'])&& $value['metal_id']!=0?$this->noble[$value['metal_id']]:"";
             $value['company_name'] = implode('/', array_column(GetPart($value['itemid']), 'name'));
+            //是否具有编辑权限
+            $value['is_allow_update'] = 0;
+            if (in_array($this->roleid, [1, 33]) || in_array($value['createrid'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
             $data[]=$value;
         }
         return app_show(0,"获取成功",['count'=>$count,'list'=>$data]);

+ 9 - 1
app/admin/controller/GoodOfflineLog.php

@@ -2,6 +2,7 @@
 
 namespace app\admin\controller;
 
+use app\admin\model\DataGroup as DataGroupModel;
 use think\facade\Db;
 use think\facade\Validate;
 
@@ -17,14 +18,21 @@ class GoodOfflineLog extends Base
         $where = [];
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['addtime', 'between', [$param['start_date'], $param['end_date']]];
         if ($param['creater'] != '') $where[] = ['creater', 'like', '%' . $param['creater'] . '%'];
+        $role = $this->checkDataShare();
+        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ["createrid", "in", $role[DataGroupModel::$type_全部]];
+
 
         $count = Db::name('good_offline_log')->where($where)->count('id');
 
         $list = Db::name('good_offline_log')
-            ->field('id,spuCode,good_name,creater,addtime')
+            ->field('id,spuCode,good_name,creater,addtime,createrid')
             ->where($where)
             ->order('addtime', 'desc')
             ->page($param['page'], $param['size'])
+            ->append(['is_allow_update'])
+            ->withAttr('is_allow_update', function ($val, $data) use ($role) {
+                return (in_array($this->roleid, [1, 33]) || in_array($data['createrid'], $role[DataGroupModel::$type_可编辑])) ? 1 : 0; //是否具有编辑权限
+            })
             ->select()
             ->toArray();
 

+ 1 - 1
app/admin/controller/Purch.php

@@ -199,7 +199,7 @@ class Purch extends Base
 
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
-            if (in_array($this->roleid, [1, 33]) || in_array($value['chargerid'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
+            if (in_array($this->roleid, [1, 33]) || in_array($value['cgder_id'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
 
             $data[]=$value;
         }

+ 22 - 6
app/admin/controller/Purchin.php

@@ -1111,14 +1111,25 @@ class Purchin extends Base
         if($status!=""){
             $where[]= ["a.status",'=',$status];
         }
-        $count = Db::name('purchease_return')->alias('a')->join("purchease_order b","b.cgdNo=a.cgdNo","left")
-            ->where($where)->count();
+        $role = $this->checkDataShare();
+        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ["a.apply_id", "in", $role[DataGroupModel::$type_全部]];
+
+        $count = Db::name('purchease_return')
+            ->alias('a')
+            ->join("purchease_order b","b.cgdNo=a.cgdNo","left")
+            ->where($where)
+            ->count();
         $total = ceil($count / $size);
         $page = $page >= $total ? $total : $page;
-        $list = Db::name('purchease_return')->alias('a')->join("purchease_order b","b.cgdNo=a.cgdNo","left")
-            ->where($where)->page($page,$size)
-            ->field("a.*,b.spuCode,b.good_price,b.order_type,b.good_price,b.total_fee,b.good_name")->order("a.addtime desc")
-            ->select();
+        $list = Db::name('purchease_return')
+            ->alias('a')
+            ->join("purchease_order b","b.cgdNo=a.cgdNo","left")
+            ->where($where)
+            ->page($page,$size)
+            ->field("a.*,b.spuCode,b.good_price,b.order_type,b.good_price,b.total_fee,b.good_name")
+            ->order("a.addtime desc")
+            ->select()
+            ->toArray();
         $data=[];
         foreach ($list as $value){
             if($value['order_type']==3){
@@ -1128,6 +1139,11 @@ class Purchin extends Base
             }
             $value['can']= isset($goon['cat_id']) && $goon['cat_id'] !=0 ? made($goon['cat_id']):[];
             $value['return_fee']= round($value['good_price']*$value['return_num'],2);
+
+            //是否具有编辑权限
+            $value['is_allow_update'] = 0;
+            if (in_array($this->roleid, [1, 33]) || in_array($value['apply_id'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
+
             $data[]=$value;
         }
         return app_show(0,"获取成功",['list'=>$data,'count'=>$count]);

+ 15 - 1
app/admin/controller/Resigninfo.php

@@ -2,6 +2,7 @@
 
 namespace app\admin\controller;
 
+use app\admin\model\DataGroup as DataGroupModel;
 use app\admin\model\ProcessOrder;
 use app\BaseController;
 use think\App;
@@ -52,10 +53,23 @@ class Resigninfo extends Base
            // $where = ["addtime"=>Db::raw("<= '{$end}'")];
             $where[]= ["addtime",'<=',$end];
         }
+
+        $role = $this->checkDataShare();
+        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ["hand_uid", "in", $role[DataGroupModel::$type_全部]];
+
         $count = Db::name('resign_info')->where($where)->count();
         $total = ceil($count/$size);
         $page = $page >= $total ? $total : $page;
-        $list = Db::name('resign_info')->where($where)->order("addtime desc")->page($page,$size)->select();
+        $list = Db::name('resign_info')
+            ->where($where)
+            ->order("addtime desc")
+            ->page($page,$size)
+            ->append(['is_allow_update'])
+            ->withAttr('is_allow_update', function ($val, $data) use ($role) {
+                return (in_array($this->roleid, [1, 33]) || in_array($data['hand_uid'], $role[DataGroupModel::$type_可编辑])) ? 1 : 0; //是否具有编辑权限
+            })
+            ->select()
+            ->toArray();
         return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
     }
     public function create(){