283 lines
12 KiB
C#
283 lines
12 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_RIGHTGROUP_BL : IBAS_RIGHTGROUP, IBAS_RIGHTGROUP_Q
|
||
{
|
||
#region 新增
|
||
/// <summary>
|
||
/// 新增
|
||
/// </summary>
|
||
/// <param name="errors"></param>
|
||
/// <param name="model"></param>
|
||
/// <returns></returns>
|
||
public bool Create(ref ValidationErrors errors, WX.CRM.Model.Entity.BAS_RIGHTGROUP model)
|
||
{
|
||
try
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
model.PKID = new SEQUENCES_BL().Seq_base_get();
|
||
db.BAS_RIGHTGROUP.Add(model);
|
||
return db.SaveChanges().GetResult();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 删除
|
||
/// <summary>
|
||
/// 删除
|
||
/// </summary>
|
||
/// <param name="errors"></param>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool Delete(ref ValidationErrors errors, decimal id)
|
||
{
|
||
try
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
WX.CRM.Model.Entity.BAS_RIGHTGROUP entry = db.BAS_RIGHTGROUP.FirstOrDefault(m => m.PKID == id);
|
||
if (entry != null)
|
||
db.BAS_RIGHTGROUP.Remove(entry);
|
||
return db.SaveChanges().GetResult();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 修改数据
|
||
/// <summary>
|
||
/// 修改数据
|
||
/// </summary>
|
||
/// <param name="errors"></param>
|
||
/// <param name="model"></param>
|
||
/// <returns></returns>
|
||
public bool Update(ref ValidationErrors errors, WX.CRM.Model.Entity.BAS_RIGHTGROUP model)
|
||
{
|
||
try
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
WX.CRM.Model.Entity.BAS_RIGHTGROUP rightGroup = db.BAS_RIGHTGROUP.FirstOrDefault(m => m.PKID == model.PKID);
|
||
rightGroup.PARENTID = model.PARENTID;
|
||
rightGroup.NAME = model.NAME;
|
||
db.SaveChanges();
|
||
return true;
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 获取单个实体
|
||
/// <summary>
|
||
/// 获取单个实体
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public WX.CRM.Model.Entity.BAS_RIGHTGROUP GetModel(decimal id)
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
WX.CRM.Model.Entity.BAS_RIGHTGROUP entry = db.BAS_RIGHTGROUP.FirstOrDefault(m => m.PKID == id);
|
||
return entry;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 树形结构数据(异步获取:包含了权限)
|
||
/// <summary>
|
||
/// 获取节点数据 包括:子权限组+权限
|
||
/// </summary>
|
||
/// <param name="fid"></param>
|
||
/// <returns></returns>
|
||
public object GetNodeTreeList(decimal fid)
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
List<WX.CRM.Model.Entity.BAS_RIGHTGROUP> rightGroup = db.BAS_RIGHTGROUP.ToList();
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT> rightList = db.BAS_RIGHT.ToList();//获取所有权限列表
|
||
List<object> obj = GetRightTreeChildList(rightGroup, rightList, fid);
|
||
if (obj == null)
|
||
obj = new List<object>();
|
||
foreach (WX.CRM.Model.Entity.BAS_RIGHT right in rightList.Where(m => m.GROUPID == fid))
|
||
{
|
||
obj.Add(new
|
||
{
|
||
id = right.RIGHTID,
|
||
text = right.RNAME,
|
||
iconCls = "icon-redmini",
|
||
attributes = "right"
|
||
});
|
||
}
|
||
return obj;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 获取顶端
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public object GetTopTreeList()
|
||
{
|
||
return new List<object>() { new { id = 0, text = "权限树结构", attributes = "group", iconCls = "icon-group", children = GetNodeTreeList(0) } };
|
||
}
|
||
#endregion
|
||
|
||
#region 获取tree数据列表(一次性获取:不包含权限)
|
||
/// <summary>
|
||
/// 获取tree数据列表(一次性获取:不包含权限)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public object GetAllTreeList()
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
|
||
|
||
List<WX.CRM.Model.Entity.BAS_RIGHTGROUP> rightGroup = db.BAS_RIGHTGROUP.ToList();
|
||
List<object> obj = new List<object>();
|
||
obj.Add(new { id = 0, text = "权限树结构", iconCls = "icon-group", children = GetTreeChildList(rightGroup, 0) });
|
||
return obj;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 获取子节点
|
||
/// </summary>
|
||
/// <param name="rightGroup"></param>
|
||
/// <param name="parentId"></param>
|
||
/// <returns></returns>
|
||
private object GetTreeChildList(List<WX.CRM.Model.Entity.BAS_RIGHTGROUP> rightGroup, decimal parentId)
|
||
{
|
||
List<object> obj = null;
|
||
object childObj = null;
|
||
foreach (WX.CRM.Model.Entity.BAS_RIGHTGROUP model in rightGroup.FindAll(m => m.PARENTID == parentId))
|
||
{
|
||
if (obj == null)
|
||
obj = new List<object>();
|
||
childObj = new { id = model.PKID, text = model.NAME, children = GetTreeChildList(rightGroup, model.PKID) };
|
||
obj.Add(childObj);
|
||
}
|
||
return obj;
|
||
}
|
||
#endregion
|
||
|
||
#region 获取tree数据列表(一次性获取:包含权限)
|
||
/// <summary>
|
||
/// 获取tree数据列表(一次性获取:包含权限)
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public object GetRightTreeList(bool isSelect = false)
|
||
{
|
||
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
|
||
{
|
||
List<WX.CRM.Model.Entity.BAS_RIGHTGROUP> rightGroup = db.BAS_RIGHTGROUP.ToList();
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT> rightList = db.BAS_RIGHT.ToList();//获取所有权限列表
|
||
List<object> obj = new List<object>();
|
||
List<object> childobj = new List<object>();
|
||
childobj = GetRightTreeChildList(rightGroup, rightList, 0, isSelect);
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT_TOOLBUTTON> right_buttons = new BAS_RIGHT_TOOLBUTTON_BL().GetALLToolButton();
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT> noGroupRight = rightList.Where(o => o.GROUPID.HasValue == false).ToList();
|
||
foreach (WX.CRM.Model.Entity.BAS_RIGHT right in noGroupRight)
|
||
{
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT_TOOLBUTTON> toolButton = right_buttons.Where(p => p.RIGHTID.Equals(right.RIGHTID)).ToList();
|
||
string buttons = "";
|
||
if (toolButton != null && toolButton.Count > 0)
|
||
{
|
||
buttons = " 按钮:";
|
||
if (isSelect)
|
||
{
|
||
foreach (var button in toolButton)
|
||
{
|
||
buttons += string.Format("<input class='tool_button' type='checkbox' name='{0}' value='{1}' />{2}", right.RIGHTID, button.BUTTONID, button.BUTTONNAME);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
buttons += string.Join(" , ", toolButton.Select(p => p.BUTTONNAME).ToArray());
|
||
}
|
||
}
|
||
childobj.Add(new { id = right.RIGHTID, text = right.RNAME + buttons, iconCls = "icon-redmini", attributes = "right" });
|
||
}
|
||
obj.Add(new { id = 0, text = "权限树结构", iconCls = "icon-group", children = childobj });
|
||
return obj;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 获取子节点
|
||
/// </summary>
|
||
/// <param name="rightGroup"></param>
|
||
/// <param name="parentId"></param>
|
||
/// <returns></returns>
|
||
private List<object> GetRightTreeChildList(List<WX.CRM.Model.Entity.BAS_RIGHTGROUP> rightGroup, List<WX.CRM.Model.Entity.BAS_RIGHT> rightList, decimal parentId, bool isSelect = false)
|
||
{
|
||
List<object> obj = new List<object>(); ;
|
||
object childObj = null;
|
||
List<object> nchildObj = null;
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT_TOOLBUTTON> right_buttons = new BAS_RIGHT_TOOLBUTTON_BL().GetALLToolButton();
|
||
foreach (WX.CRM.Model.Entity.BAS_RIGHTGROUP model in rightGroup.FindAll(m => m.PARENTID == parentId))
|
||
{
|
||
//if (obj == null)
|
||
|
||
nchildObj = GetRightTreeChildList(rightGroup, rightList, model.PKID, isSelect);
|
||
if (nchildObj == null)
|
||
nchildObj = new List<object>();
|
||
foreach (WX.CRM.Model.Entity.BAS_RIGHT right in rightList.Where(m => m.GROUPID == model.PKID))
|
||
{
|
||
List<WX.CRM.Model.Entity.BAS_RIGHT_TOOLBUTTON> toolButton = right_buttons.Where(p => p.RIGHTID.Equals(right.RIGHTID)).ToList();
|
||
string buttons = "";
|
||
if (toolButton != null && toolButton.Count > 0)
|
||
{
|
||
buttons = " 按钮:";
|
||
if (isSelect)
|
||
{
|
||
foreach (var button in toolButton)
|
||
{
|
||
buttons += string.Format("<input class='tool_button' type='checkbox' name='{0}' value='{1}' />{2}", right.RIGHTID, button.BUTTONID, button.BUTTONNAME);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
buttons += string.Join(" , ", toolButton.Select(p => p.BUTTONNAME).ToArray());
|
||
}
|
||
}
|
||
nchildObj.Add(new
|
||
{
|
||
id = right.RIGHTID,
|
||
text = right.RNAME + buttons,
|
||
iconCls = "icon-redmini",
|
||
attributes = "right"
|
||
});
|
||
}
|
||
if (nchildObj.Count == 0)
|
||
childObj = new { id = model.PKID, text = model.NAME };
|
||
else
|
||
childObj = new { id = model.PKID, text = model.NAME, children = nchildObj };
|
||
obj.Add(childObj);
|
||
}
|
||
|
||
return obj;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|