业务系统里经常会需要计算类似的树形权限树的业务需求
1:往往会有一些需求,a 对 b 有权限, b对c 有权限, 等等。
2:还需要很直观的看到,整个权限的树形关系,一目了然的那种。
3:程序调用简单,写代码很容易能调用我们写好的函数。
4:程序稳定,bug 少,考虑周全。
直接上图:
在模块菜单定义里,需要一个数据权限项的设定,设定方式如下图
代码调用方法:
BasePermissionScopeManager permissionScopeManager = new Business.BasePermissionScopeManager(BaseSystemInfo.UserInfo); // 目标用户的主键 string userId = "133"; // 对什么权限进行权限树运算? string permissionCode = "Resource.ManagePermission"; // 权限的名称可以为null,可以忽略的参数 string permissionName = "管理权限"; // 获取到用户权限树递归的用户主键 string[] userIds = permissionScopeManager.GetPermissionTreeUserIds(userId, permissionCode, permissionName); // 显示输出用户主键列表,你可以任意加工这些参数结果数据了 foreach (var user in userIds) { System.Console.WriteLine("user:" + user); }
每个功能看了,我们都有能力实现,但是很多时候没那么多时间,因为你平时还需要干什么多事情,更有价值的事情,有些功能你看一下2个小时就会用了,但是你自己实现一下需要2周才能开发好,若你的生命又是很有价值,那你可以考虑有偿购买一个组件源码,然后用2个小时把问题搞定了就可以了。因为组件有1000个功能,你没连续的2000个小时从头到尾都实现好。因为你的生命很宝贵,你需要有时间去谈恋爱,陪孩子,陪客户,管理项目,学习提高自己,锻炼身体,合理的休息。
当生命没多少价值时,浪费就浪费了,重复建设就重复建设了,就当是锻炼,提高自己了就可以了。反正有的是时间,最不值钱的就是时间。