@@ -25,6 +25,7 @@ namespace Repository
2525 public class MenuRespository : BaseRepository < SystemMenu > , IMenuRespository
2626 {
2727
28+ private static readonly int DisableMenuLevel = 88 ;
2829 private static readonly ConcurrentDictionary < string , List < SystemMenuSM > > _cache = new ConcurrentDictionary < string , List < SystemMenuSM > > ( ) ;
2930
3031 /// <summary>
@@ -72,9 +73,13 @@ public long HaveMenuPermission(string currentUrl, string menuRights)
7273 if ( menu == null )
7374 {
7475 return 0 ;
75- //menu = DB.Query<SystemMenu>("select * from system_menu where url like @url ",new {url="~/"+controlname +"%"}).FirstOrDefault();
76- //if(menu == null)return 0;
7776 }
77+
78+ if ( menu . Level . HasValue && menu . Level . Value == DisableMenuLevel ) //已经被逻辑删除了
79+ {
80+ return 0 ;
81+ }
82+
7883 var rights = new BigInteger ( menuRights ) ;
7984 if ( ! rights . TestBit ( ( int ) menu . Tid ) )
8085 {
@@ -171,7 +176,7 @@ public List<SystemMenuSM> GetMenuTree(long roleId, Token userToken, long roleSen
171176 }
172177 else
173178 {
174- allMenusList = this . Entity . MappperTo < SystemMenuSM > ( ) . ToList ( ) ;
179+ allMenusList = this . Entity . Where ( r => r . Level != DisableMenuLevel ) . MappperTo < SystemMenuSM > ( ) . ToList ( ) ;
175180
176181 }
177182 var parentMenu = allMenusList . Where ( r => r . ParentTid . Equals ( 0 ) )
@@ -201,7 +206,8 @@ public string DisableMenu(long menuTid)
201206 {
202207 var updateResult = this . Entity . Where ( r => r . Tid . Equals ( menuTid ) )
203208 . Set ( r => r . DataChangeLastTime , DateTime . Now )
204- . Set ( r => r . IsActive , false )
209+ . Set ( r=> r . IsActive , false )
210+ . Set ( r => r . Level , DisableMenuLevel ) //目前最多支持2级。。 88是代表这个菜单不用了
205211 . Update ( ) > 0 ;
206212 if ( ! updateResult )
207213 {
@@ -305,7 +311,7 @@ public string AddMenu(AddMenuVm model)
305311 /// <returns></returns>
306312 public List < SystemMenuSM > GetSubMenus ( long menuTid )
307313 {
308- var allMenus = this . Entity . Where ( r => r . ParentTid == menuTid )
314+ var allMenus = this . Entity . Where ( r => r . ParentTid == menuTid && r . Level != DisableMenuLevel )
309315 . OrderBy ( r => r . OrderRule )
310316 . MappperTo < SystemMenuSM > ( )
311317 . ToList ( ) ;
@@ -318,7 +324,7 @@ public List<SystemMenuSM> GetSubMenus(long menuTid)
318324 /// <returns></returns>
319325 public List < SystemMenuSM > GetAllParentMenus ( )
320326 {
321- var allMenus = this . Entity . Where ( r => r . ParentTid == 0 )
327+ var allMenus = this . Entity . Where ( r => r . ParentTid == 0 && r . Level != DisableMenuLevel )
322328 . OrderBy ( r => r . OrderRule )
323329 . MappperTo < SystemMenuSM > ( ) . ToList ( ) ;
324330 return allMenus ;
@@ -442,7 +448,7 @@ private List<SystemMenuSM> GetAllRightsMenusTwo(string eid, string menuRights, b
442448 return new List < SystemMenuSM > ( ) ;
443449 }
444450 var right = new BigInteger ( menuRights ?? "0" ) ;
445- var allMenus = this . Entity . MappperTo < SystemMenuSM > ( ) . ToList ( ) ;
451+ var allMenus = this . Entity . Where ( r => r . Level != DisableMenuLevel ) . MappperTo < SystemMenuSM > ( ) . ToList ( ) ;
446452 var parentMenu = allMenus . Where ( r => r . ParentTid . Equals ( 0 ) && ( right . TestBit ( ( int ) r . Tid ) || isGlod ) )
447453 . OrderBy ( r => r . OrderRule ) . ToList ( ) ;
448454 //递归构建
0 commit comments