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