114 lines
4.7 KiB
C#
114 lines
4.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Base;
|
|
namespace WX.CRM.BLL.Base
|
|
{
|
|
public class BAS_ROLERIGHTRESOURCE_BL : IBAS_ROLERIGHTRESOURCE, IBAS_ROLERIGHTRESOURCE_Q
|
|
{
|
|
#region 获取角色对应的权限ID列表
|
|
/// <summary>
|
|
/// 获取角色对应的权限ID列表
|
|
/// </summary>
|
|
/// <param name="roleId"></param>
|
|
/// <returns>返回object类型</returns>
|
|
public object GetObjectByRoleId(decimal roleId)
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
object obj = (from a in db.BAS_ROLERIGHTRESOURCE.Where(m => m.ROLEID == roleId).ToList()
|
|
select new
|
|
{
|
|
id = a.RIGHTID,
|
|
toolValue = a.TOOLBARVALUE
|
|
});
|
|
return obj;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
public IEnumerable<decimal> IncRolesList(string rightId)
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
return db.BAS_ROLERIGHTRESOURCE.Where(p => p.RIGHTID == rightId).Select(p => p.ROLEID).ToList();
|
|
}
|
|
}
|
|
|
|
#region 保存角色权限信息
|
|
/// <summary>
|
|
/// 保存角色权限信息
|
|
/// </summary>
|
|
/// <param name="roleId"></param>
|
|
/// <param name="rightIds"></param>
|
|
/// <returns></returns>
|
|
public bool Save(ref ValidationErrors errors, decimal roleId, string rightIds, decimal createUser)
|
|
{
|
|
try
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
List<RightAndButton> rightsAndButtons = new List<RightAndButton>();
|
|
if (!string.IsNullOrEmpty(rightIds))
|
|
{
|
|
rightsAndButtons = Utility.JSONToObject<List<RightAndButton>>(rightIds);
|
|
}
|
|
string[] rightIdList = rightsAndButtons.Select(p => p.rightId).ToArray();
|
|
List<WX.CRM.Model.Entity.BAS_ROLERIGHTRESOURCE> entryList = db.BAS_ROLERIGHTRESOURCE.Where(m => m.ROLEID == roleId).ToList();
|
|
WX.CRM.Model.Entity.BAS_ROLERIGHTRESOURCE model = null;
|
|
|
|
foreach (var right in rightsAndButtons)
|
|
{
|
|
WX.CRM.Model.Entity.BAS_ROLERIGHTRESOURCE entry = entryList.Where(m => m.RIGHTID == right.rightId).FirstOrDefault();
|
|
if (entry == null)//没有数据
|
|
{
|
|
model = new WX.CRM.Model.Entity.BAS_ROLERIGHTRESOURCE();
|
|
model.ROLEID = roleId;
|
|
model.RIGHTID = right.rightId;
|
|
model.TOOLBARVALUE = right.buttons;
|
|
model.CTIME = DateTime.Now;
|
|
model.CREATEUSER = createUser;
|
|
db.BAS_ROLERIGHTRESOURCE.Add(model);
|
|
}
|
|
else
|
|
{
|
|
if (!entry.TOOLBARVALUE.HasValue || (entry.TOOLBARVALUE.Value != right.buttons))
|
|
{
|
|
entry.TOOLBARVALUE = right.buttons;
|
|
}
|
|
}
|
|
|
|
}
|
|
foreach (WX.CRM.Model.Entity.BAS_ROLERIGHTRESOURCE entry in (from d in entryList
|
|
where !rightIdList.Contains(d.RIGHTID)
|
|
select d))//将已经没有了的rightID数据删除
|
|
{
|
|
db.BAS_ROLERIGHTRESOURCE.Remove(entry);
|
|
}
|
|
return db.SaveChanges().GetResult();
|
|
}
|
|
}
|
|
catch (Exception ex) { errors.Add(ex.Message); return false; }
|
|
}
|
|
#endregion
|
|
|
|
|
|
public List<WX.CRM.Model.Entity.BAS_ROLERIGHTRESOURCE> GetRoleRightResourceByRoleId(decimal[] RoleId)
|
|
{
|
|
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
return db.BAS_ROLERIGHTRESOURCE.Where(p => RoleId.Contains(p.ROLEID)).ToList();
|
|
|
|
}
|
|
}
|
|
|
|
public class RightAndButton
|
|
{
|
|
public string rightId { get; set; }
|
|
public decimal buttons { get; set; }
|
|
}
|
|
}
|
|
}
|