CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/SysManage/RolePowerService.cs

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