|
@@ -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;
|
|
|
+
|
|
|
}
|
|
|
}
|