Browse Source

添加路由和公共文件

wufeng 2 years ago
parent
commit
8b21b350c8
2 changed files with 85 additions and 1 deletions
  1. 17 1
      app/admin/route/app.php
  2. 68 0
      app/common.php

+ 17 - 1
app/admin/route/app.php

@@ -615,4 +615,20 @@ route::rule('readAccount', 'admin/Account/readAccount');//获取供应商账号
 route::rule('addAccount', 'admin/Account/addAccount');//添加供应商账号
 route::rule('editAccount', 'admin/Account/editAccount');//修改供应商账号
 route::rule('statusAccount', 'admin/Account/statusAccount');//修改供应商账号状态
-route::rule('deleteAccount', 'admin/Account/deleteAccount');//删除供应商账号
+route::rule('deleteAccount', 'admin/Account/deleteAccount');//删除供应商账号
+
+//用户组和数据共享
+route::rule('getDataGroupList', 'admin/DataGroup/getDataGroupList');//获取用户组列表
+route::rule('addDataGroup', 'admin/DataGroup/addDataGroup');//添加用户组
+route::rule('getDataGroupDetail', 'admin/DataGroup/getDataGroupDetail');//获取用户组详情
+route::rule('editDataGroup', 'admin/DataGroup/editDataGroup');//编辑用户组详情
+route::rule('deleteDataGroup', 'admin/DataGroup/deleteDataGroup');//删除用户组
+route::rule('statusDataGroup', 'admin/DataGroup/statusDataGroup');//启/禁用用户组
+
+route::rule('getDataShareList', 'admin/DataShare/getDataShareList');//获取共享规则列表
+route::rule('addDataShare', 'admin/DataShare/addDataShare');//新建共享规则
+route::rule('getDataShareDetail', 'admin/DataShare/getDataShareDetail');//获取共享规则详情
+route::rule('editDataShare', 'admin/DataShare/editDataShare');//修改共享规则
+route::rule('deleteDataShare', 'admin/DataShare/deleteDataShare');//删除共享规则
+route::rule('statusDataShare', 'admin/DataShare/statusDataShare');//启/禁用共享规则
+route::rule('getDataShareMenuList','admin/DataShare/getDataShareMenuList');//获取被共享的菜单列表

+ 68 - 0
app/common.php

@@ -1213,5 +1213,73 @@ if (!function_exists('checkHasAccountBySupplierNos')) {
             ->where('status', \app\abutment\model\SupplierUser::$status_normal)
             ->column('uid','supplierNo');
 
+    }
+}
+
+
+//获取当前用户可查看的其他用户id
+if (!function_exists('get_group_share_uid')) {
+    function get_group_share_uid(int $uid = 0, int $menu_id = 0)
+    {
+
+        //原始数据
+        $data = [DataGroupModel::$type_可编辑 => [], DataGroupModel::$type_只读 => [], DataGroupModel::$type_不共享 => []];
+
+        //用户组
+        $group = Db::name('data_group_userid')
+            ->alias('a')
+            ->leftJoin('data_group b', 'b.id=a.data_group_id')
+            ->where([
+                'a.is_del' => DataGroupModel::$delete_正常,
+                'a.status' => DataGroupModel::$status_启用,
+                'a.uid' => $uid,
+                'b.is_del' => DataGroupModel::$delete_正常,
+                'b.status' => DataGroupModel::$status_启用,
+            ])->order('a.data_group_id')
+            ->column('b.type', 'a.data_group_id');
+
+        $group_user = Db::name('data_group_userid')
+            ->where([
+                'is_del' => DataGroupModel::$delete_正常,
+                'status' => DataGroupModel::$status_启用,
+            ])->whereIn('data_group_id', array_keys($group))
+            ->field('id,data_group_id,uid')
+            ->order('uid')
+            ->cursor();
+
+        foreach ($group_user as $g_u) {
+            $data[$group[$g_u['data_group_id']]][] = $g_u['uid'];
+        }
+
+        //共享规则
+        $share = Db::name('data_share')
+            ->field('id,type,source_uid,source_data_group_id')
+            ->where([
+                'is_del' => DataShareModel::$delete_正常,
+                'status' => DataShareModel::$status_启用,
+            ])
+            ->whereFindInSet('menu_ids', $menu_id)
+            ->where(function ($query) use ($uid, $group) {
+                return $query->where('uid', $uid)->whereOr('data_group_id', 'in', array_keys($group));
+            })
+            ->cursor();
+
+        foreach ($share as $s) {
+            $source_group_uid = Db::name('data_group_userid')
+                ->where([
+                    'is_del' => DataGroupModel::$delete_正常,
+                    'status' => DataGroupModel::$status_启用,
+                    'data_group_id' => $s['source_data_group_id'],
+                ])->order('uid')->column('uid');
+
+            $data[$s['type']] = array_merge($data[$s['type']], [$s['source_uid']], $source_group_uid);
+        }
+
+        unset($data[DataGroupModel::$type_不共享]);
+
+        $data[0] = array_merge($data[DataGroupModel::$type_可编辑], $data[DataGroupModel::$type_只读]);
+        asort($data[0]);
+        return $data;
+
     }
 }