Browse Source

Merge branch 'dev_wf' of wugg/cxinv into dev

wugg 2 years ago
parent
commit
9f1322f276
3 changed files with 137 additions and 6 deletions
  1. 24 6
      app/admin/controller/DataShare.php
  2. 110 0
      app/admin/controller/Role.php
  3. 3 0
      app/admin/route/app.php

+ 24 - 6
app/admin/controller/DataShare.php

@@ -15,19 +15,18 @@ class DataShare extends BaseController
     //列表
     public function getDataShareList()
     {
-        $param = $this->request->filter('trim')->only(['page' => 1, 'size' => 10, 'source_nickname' => '', 'source_group_title' => '', 'nickname' => '', 'group_title' => '', 'type' => ''], 'post');
+        $param = $this->request->filter('trim')->only(['page' => 1, 'size' => 10, 'source_nickname' => '', 'source_group_title' => '', 'nickname' => '', 'group_title' => '', 'type' => '', 'token'], 'post');
 
         $db = new DataShareModel();
 
         $rs = $db
             ->alias('a')
-            ->leftJoin('user_role b', 'b.uid=a.source_uid AND b.is_del=0')
             ->leftJoin('data_group c', 'c.id=a.source_data_group_id AND c.is_del=' . DataGroupModel::$delete_正常)
-            ->leftJoin('user_role d', 'd.uid=a.uid AND d.is_del=0')
             ->leftJoin('data_group e', 'e.id=a.data_group_id AND e.is_del=' . DataGroupModel::$delete_正常)
             ->where('a.is_del', $db::$delete_正常);
 
         $val = Validate::rule([
+            'token' => 'require',
             'page|页码' => 'require|number|gt:0',
             'size|每页数量' => 'require|number|gt:0|elt:100',
             'status|状态' => 'number|in:' . $db::$status_启用 . ',' . $db::$status_禁用,
@@ -39,16 +38,22 @@ class DataShare extends BaseController
 
         if (!$val->check($param)) return error_show(1005, $val->getError());
 
-        if ($param['source_nickname'] != '') $rs->whereLike('b.nickname', '%' . $param['source_nickname'] . '%');
+        if ($param['source_nickname'] != '') {
+            $source_uid = array_column(GetAccountall($param['token'], ['name' => $param['source_nickname']])['data'], 'id');
+            $rs->whereIn('a.source_uid', $source_uid);
+        }
         if ($param['source_group_title'] != '') $rs->whereLike('c.title', '%' . $param['source_group_title'] . '%');
-        if ($param['nickname'] != '') $rs->whereLike('d.nickname', '%' . $param['nickname'] . '%');
+        if ($param['nickname'] != '') {
+            $source_uid = array_column(GetAccountall($param['token'], ['name' => $param['nickname']])['data'], 'id');
+            $rs->whereIn('a.uid', $source_uid);
+        }
         if ($param['group_title'] != '') $rs->whereLike('e.title', '%' . $param['group_title'] . '%');
         if ($param['type'] != '') $rs->whereLike('a.type', $param['type']);
 
         $count = $rs->count('a.id');
 
         $list = $rs
-            ->field('a.*,b.nickname source_nickname,c.title source_group_title,d.nickname,e.title group_title')
+            ->field('a.*,"" source_nickname,c.title source_group_title,"" nickname,e.title group_title')
             ->append(['menu_list'])
             ->withAttr('menu_list', function ($val, $data) {
                 return Db::name('admin_menu')
@@ -63,6 +68,19 @@ class DataShare extends BaseController
             ->select()
             ->toArray();
 
+        $all_uid = array_merge(array_column($list, 'source_uid'), array_column($list, 'uid'));
+        $all_uid = array_unique($all_uid);
+
+        $all_uname = GetUserlist($param['token'], ['id' => $all_uid]);
+        if ($all_uname['code'] == 0) {
+            $all_uname = array_column($all_uname['data'], 'nickname', 'id');
+            foreach ($list as &$val) {
+
+                $val['source_nickname'] = $all_uname[$val['source_uid']] ?? '';
+                $val['nickname'] = $all_uname[$val['uid']] ?? '';
+            }
+        }
+
         return app_show(0, '请求成功', ['count' => $count, 'list' => $list]);
 
     }

+ 110 - 0
app/admin/controller/Role.php

@@ -3,8 +3,11 @@
 declare (strict_types = 1);
 namespace app\admin\controller;
 use app\admin\BaseController;
+use app\admin\model\ActionProcess as APModel;
+use app\admin\model\Process as PModel;
 use think\App;
 use think\facade\Db;
+use think\facade\Validate;
 
 class Role extends BaseController{
 
@@ -253,4 +256,111 @@ class Role extends BaseController{
         $list =Db::name("role")->select();
         return app_show(0,"获取成功",$list);
     }
+
+
+    //获取角色对应的流程权限id
+    public function roleProcessInfo()
+    {
+        $roleid = $this->request->filter('trim')->post('roleid/d', 0);
+
+        $res = Db::name("role")
+            ->alias("a")
+            ->leftJoin("role_process b", "a.id=b.role_id AND b.is_del=0")
+            ->field("a.*,b.action_data")
+            ->withAttr('action_data', function ($val) {
+                return explode(',', $val);
+            })
+            ->where("a.id", $roleid)
+            ->findOrEmpty();
+
+        return app_show(0, '请求成功', $res);
+
+    }
+
+    //修改角色对应的流程权限
+    public function roleProcessSave()
+    {
+        $param = $this->request->filter('trim')->only(['token', 'roleid', 'action_data'], 'post');
+
+        $val = Validate::rule([
+            'token' => 'require',
+            'roleid|角色ID' => 'require|number|gt:0',
+            'action_data|所选节点id' => 'require|array',
+        ]);
+
+        if (!$val->check($param)) return error_show(1005, $val->getError());
+
+        $user = GetUserInfo($param['token']);
+
+        $uid = isset($user['data']['id']) ? $user['data']['id'] : 0;
+        $uname = isset($user['data']['nickname']) ? $user['data']['nickname'] : '';
+        $date = date('Y-m-d H:i:s');
+
+        $res = Db::name('role_process')
+            ->where(['is_del' => 0, 'role_id' => $param['roleid']])
+            ->field('id')
+            ->findOrEmpty();
+
+        if (empty($res)) {
+            $rs = Db::name('role_process')
+                ->insert([
+                    'role_id' => $param['roleid'],
+                    'action_data' => implode(',', $param['action_data']),
+                    'is_del' => 0,
+                    'createrid' => $uid,
+                    'creater' => $uname,
+                    'addtime' => $date,
+                    'updaterid' => $uid,
+                    'updater' => $uname,
+                    'updatetime' => $date,
+                ]);
+        } else {
+            $rs = Db::name('role_process')
+                ->where('id', $res['id'])
+                ->update([
+                    'action_data' => implode(',', $param['action_data']),
+                    'updaterid' => $uid,
+                    'updater' => $uname,
+                    'updatetime' => $date
+                ]);
+        }
+
+        return $rs ? app_show(0, '操作成功') : error_show(1005, '操作失败');
+
+    }
+
+    //获取角色对应的流程权限详情
+    public function roleProcessDetail()
+    {
+
+        $roleid = $this->request->filter('trim')->post('roleid/d', 0);
+
+        $action_data = Db::name("role_process")
+            ->where('role_id', $roleid)
+            ->value('action_data');
+
+        $data = PModel::where(['is_del' => PModel::$is_del_normal, 'status' => PModel::$status_normal])
+            ->append(['child'])
+            ->withAttr('child', function () {
+                return [];
+            })
+            ->column('id,process_name,process_type', 'id');
+
+        $action = APModel::where([
+            'is_del' => APModel::$is_del_normal,
+            'status' => APModel::$status_normal,
+            'operation_type' => APModel::$operation_type_approval
+        ])->whereIn('id', $action_data)
+            ->field('id,process_id,order_process,status_name')
+            ->cursor();
+
+        foreach ($action as $item) {
+            if (isset($data[$item->process_id])) $data[$item->process_id]['child'][] = $item->toArray();
+        }
+
+        return app_show(0, '请求成功', array_column($data, null, null));
+
+    }
+
+
 }

+ 3 - 0
app/admin/route/app.php

@@ -33,6 +33,9 @@ Route::rule('roleinfo', 'admin/Role/roleInfo');
 Route::rule('roleadd', 'admin/Role/roleAdd');
 Route::rule('rolesave', 'admin/Role/roleSave');
 Route::rule('rolestatus', 'admin/Role/roleStatus');
+Route::rule('role_process_info', 'admin/Role/roleProcessInfo');//获取角色对应的流程权限id
+Route::rule('role_process_detail', 'admin/Role/roleProcessDetail');//获取角色对应的流程权限详情
+Route::rule('role_process_save', 'admin/Role/roleProcessSave');//修改角色对应的流程权限
 
 Route::rule('grouplist', 'admin/Group/GroupList');
 Route::rule('groupall', 'admin/Group/GroupAll');