TG.WXCRM.V4/BLL/Base/BAS_RIGHTGROUP_BL.cs

283 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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