業務系統里經常會需要計算類似的樹形權限樹的業務需求
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個小時從頭到尾都實現好。因為你的生命很寶貴,你需要有時間去談戀愛,陪孩子,陪客戶,管理項目,學習提高自己,鍛煉身體,合理的休息。
當生命沒多少價值時,浪費就浪費了,重復建設就重復建設了,就當是鍛煉,提高自己了就可以了。反正有的是時間,最不值錢的就是時間。