278 lines
11 KiB
C#
278 lines
11 KiB
C#
using CRM.Core.BLL.Util;
|
||
using CRM.Core.Model.Entity;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using WX.CRM.Common;
|
||
|
||
namespace CRM.Core.BLL.Base
|
||
{
|
||
public class BAS_RIGHTGROUP_BL
|
||
{
|
||
public List<BAS_RIGHTGROUP> GetList()
|
||
{
|
||
using (zxdContext db = new zxdContext())
|
||
{
|
||
return db.BAS_RIGHTGROUP.ToList();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 新增
|
||
/// </summary>
|
||
/// <param name="errors"></param>
|
||
/// <param name="model"></param>
|
||
/// <returns></returns>
|
||
public bool Create(ref ValidationErrors errors, BAS_RIGHTGROUP model)
|
||
{
|
||
try
|
||
{
|
||
using (zxdContext db = new zxdContext())
|
||
{
|
||
db.BAS_RIGHTGROUP.Add(model);
|
||
return db.SaveChanges().GetResult();
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
errors.Add(ex.Message);
|
||
return false;
|
||
}
|
||
}
|
||
|
||
#region 删除
|
||
/// <summary>
|
||
/// 删除
|
||
/// </summary>
|
||
/// <param name="errors"></param>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool Delete(ref ValidationErrors errors, decimal id)
|
||
{
|
||
try
|
||
{
|
||
using (var db = new zxdContext())
|
||
{
|
||
var 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, BAS_RIGHTGROUP model)
|
||
{
|
||
try
|
||
{
|
||
using (var db = new zxdContext())
|
||
{
|
||
var 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 BAS_RIGHTGROUP GetModel(decimal id)
|
||
{
|
||
using (var db = new zxdContext())
|
||
{
|
||
var 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 (var db = new zxdContext())
|
||
{
|
||
var rightGroup = db.BAS_RIGHTGROUP.ToList();
|
||
var rightList = db.BAS_RIGHT.ToList();//获取所有权限列表
|
||
List<object> obj = GetRightTreeChildList(rightGroup, rightList, fid);
|
||
if (obj == null)
|
||
obj = new List<object>();
|
||
foreach (var 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 (var db = new zxdContext())
|
||
{
|
||
var 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<BAS_RIGHTGROUP> rightGroup, decimal parentId)
|
||
{
|
||
List<object> obj = null;
|
||
object childObj = null;
|
||
foreach (var 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 (var db = new zxdContext())
|
||
{
|
||
var rightGroup = db.BAS_RIGHTGROUP.ToList();
|
||
var rightList = db.BAS_RIGHT.ToList();//获取所有权限列表
|
||
List<object> obj = new List<object>();
|
||
List<object> childobj = new List<object>();
|
||
childobj = GetRightTreeChildList(rightGroup, rightList, 0, isSelect);
|
||
//var right_buttons = new BAS_RIGHT_TOOLBUTTON_BL().GetALLToolButton();
|
||
//var noGroupRight = rightList.Where(o => o.GROUPID.HasValue == false).ToList();
|
||
//var level = 1;
|
||
//foreach (var right in noGroupRight)
|
||
//{
|
||
// var 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, name = right.RNAME + buttons });
|
||
// childobj.Add(new { id = right.RIGHTID, title = right.RNAME, isLast = false, level, parentId = 0 });
|
||
// level++;
|
||
//}
|
||
//obj.Add(new { id = 0, name = "权限树结构", children = childobj, spread = true });
|
||
obj.Add(new { id = 0, title = "权限树结构", isLast = false, level = 0, parentId = 0, checkArr = new List<object>() { new { type = 0, isChecked = 0 } }, children = childobj });
|
||
return obj;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 获取子节点
|
||
/// </summary>
|
||
/// <param name="rightGroup"></param>
|
||
/// <param name="parentId"></param>
|
||
/// <returns></returns>
|
||
private List<object> GetRightTreeChildList(List<BAS_RIGHTGROUP> rightGroup, List<BAS_RIGHT> rightList, decimal parentId, bool isSelect = false)
|
||
{
|
||
List<object> obj = new List<object>(); ;
|
||
object childObj = null;
|
||
List<object> nchildObj = null;
|
||
var right_buttons = new BAS_RIGHT_TOOLBUTTON_BL().GetALLToolButton();
|
||
foreach (var model in rightGroup.FindAll(m => m.PARENTID == parentId))
|
||
{
|
||
nchildObj = GetRightTreeChildList(rightGroup, rightList, model.PKID, isSelect);
|
||
if (nchildObj == null)
|
||
nchildObj = new List<object>();
|
||
foreach (var right in rightList.Where(m => m.GROUPID == model.PKID))
|
||
{
|
||
var toolButton = right_buttons.Where(p => p.RIGHTID.Equals(right.RIGHTID)).ToList();
|
||
var buttonChild = new List<object>();
|
||
foreach (var button in toolButton)
|
||
{
|
||
buttonChild.Add(new { id = right.RIGHTID + "_" + button.BUTTONID, title = button.BUTTONNAME, isLast = true, checkArr = new List<object>() { new { type = 0, isChecked = 0 } } });
|
||
}
|
||
nchildObj.Add(new { id = right.RIGHTID, title = right.RNAME, isLast = false, parentId = 0, checkArr = new List<object>() { new { type = 0, isChecked = 0 } }, children = buttonChild });
|
||
}
|
||
if (nchildObj.Count == 0)
|
||
{
|
||
//childObj = new { id = model.PKID, name = model.NAME };
|
||
childObj = new { id = model.PKID, title = model.NAME, isLast = true, parentId, checkArr = new List<object>() { new { type = 0, isChecked = 0 } } };
|
||
}
|
||
else
|
||
{
|
||
//childObj = new { id = model.PKID, name = model.NAME, children = nchildObj, spread = true };
|
||
childObj = new { id = model.PKID, title = model.NAME, isLast = false, parentId, checkArr = new List<object>() { new { type = 0, isChecked = 0 } }, children = nchildObj };
|
||
}
|
||
obj.Add(childObj);
|
||
}
|
||
|
||
return obj;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|