131 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			131 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public static class RolePowerService | |||
|  |     {         | |||
|  |         /// <summary> | |||
|  |         /// 增加角色权限 | |||
|  |         /// </summary> | |||
|  |         /// <param name="power"></param> | |||
|  |         public static void SaveRolePower(Model.Sys_RolePower power) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             string newRolePower = SQLHelper.GetNewID(); | |||
|  |             Model.Sys_RolePower newPower = new Model.Sys_RolePower | |||
|  |             { | |||
|  |                 RolePowerId = newRolePower, | |||
|  |                 RoleId = power.RoleId, | |||
|  |                 MenuId = power.MenuId, | |||
|  |                 MenuType=power.MenuType, | |||
|  |                 IsOffice=power.IsOffice, | |||
|  |             }; | |||
|  | 
 | |||
|  |             db.Sys_RolePower.InsertOnSubmit(newPower); | |||
|  |             db.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 判断菜单是否存在 | |||
|  |         /// </summary> | |||
|  |         /// <param name="postId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static bool IsExistMenu(string menuId) | |||
|  |         { | |||
|  |             Model.Sys_Menu m = Funs.DB.Sys_Menu.FirstOrDefault(e => e.MenuId == menuId); | |||
|  |             if (m != null) | |||
|  |             { | |||
|  |                 return true; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 return false; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 删除权限 | |||
|  |         /// </summary> | |||
|  |         /// <param name="postId"></param> | |||
|  |         public static void DeleteRolePowerByRoleIdMenuType(string roleId, string menuType) | |||
|  |         { | |||
|  |             Model.SGGLDB db = Funs.DB; | |||
|  |             var q = from x in db.Sys_RolePower | |||
|  |                     join y in db.Sys_Menu on x.MenuId equals y.MenuId | |||
|  |                     where x.RoleId == roleId && y.MenuType == menuType | |||
|  |                     select x; | |||
|  |             if (q.Count() > 0) | |||
|  |             { | |||
|  |                 db.Sys_RolePower.DeleteAllOnSubmit(q); | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取角色权限 | |||
|  |         /// </summary> | |||
|  |         /// <param name="roleId"></param> | |||
|  |         public static List<Model.Sys_RolePower> GetRolePower(string roleId) | |||
|  |         { | |||
|  |             List<Model.Sys_RolePower> powerList = Funs.DB.Sys_RolePower.Where(e => e.RoleId == roleId).ToList(); | |||
|  |             return powerList; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据角色Id、菜单id查询是否有权限 | |||
|  |         /// </summary> | |||
|  |         /// <param name="roleId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static bool IsHavePowerByRoleIdMenuId(string roleId,string menuId) | |||
|  |         { | |||
|  |             bool isHave = false; | |||
|  |             var q = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == roleId && x.MenuId == menuId); | |||
|  |             if (q != null) | |||
|  |             { | |||
|  |                 isHave = true; | |||
|  |             } | |||
|  |             return isHave; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据角色主键获得角色权限数量 | |||
|  |         /// </summary> | |||
|  |         /// <param name="roleId">角色</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static int GetPostPowerCountByRoleId(string roleId) | |||
|  |         { | |||
|  |             var q = (from x in Funs.DB.Sys_RolePower where x.RoleId == roleId select x).ToList(); | |||
|  |             return q.Count(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据角色主键获得对应的菜单权限 | |||
|  |         /// </summary> | |||
|  |         /// <param name="roleId">角色主键</param> | |||
|  |         /// <returns>菜单ID数组</returns> | |||
|  |         public static string[] GetMenuIdByRoleId(string roleId) | |||
|  |         { | |||
|  |             var q = Funs.DB.Sys_RolePower.Where(e => e.RoleId == roleId); | |||
|  |             string[] menuId = new string[q.Count()]; | |||
|  |             if (q.Count() > 0) | |||
|  |             { | |||
|  |                 int i = 0; | |||
|  |                 foreach (var menu in q) | |||
|  |                 { | |||
|  |                     menuId[i] = menu.MenuId; | |||
|  |                     i++; | |||
|  |                 } | |||
|  | 
 | |||
|  |                 return menuId; | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 return null; | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |