using System;
using System.Collections.Generic;
using System.Linq;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Base;
using WX.CRM.Model.Entity;
namespace WX.CRM.BLL.Base
{
public class BAS_LEFTMEMU_BL : IBAS_LEFTMEMU, IBAS_LEFTMEMU_Q
{
private CACHE_BL _cache = new CACHE_BL();
#region 新增
///
/// 新增
///
///
///
///
public bool Create_leftMemu(ref ValidationErrors errors, WX.CRM.Model.Entity.BAS_LEFTMEMU model)
{
try
{
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
{
decimal? sort = db.BAS_LEFTMEMU.Where(m => m.PARENTID == model.PARENTID && m.MODULEMENUID == model.MODULEMENUID).Max(m => m.SORTID);//获取最大的sort
if (sort == null)
model.SORTID = 1;
else
model.SORTID = sort.Value + 1;
model.MENUID = new SEQUENCES_BL().Seq_base_get();
db.BAS_LEFTMEMU.Add(model);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion 新增
#region 删除
///
/// 删除
///
///
///
///
public bool Delete_leftMemu(ref ValidationErrors errors, decimal id)
{
try
{
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
{
WX.CRM.Model.Entity.BAS_LEFTMEMU entry = db.BAS_LEFTMEMU.FirstOrDefault(m => m.MENUID == id);
if (entry == null)
{
errors.Add("已经被删除!");
return false;
}
db.BAS_LEFTMEMU.Remove(entry);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion 删除
#region 修改数据
///
/// 修改数据
///
///
///
///
public bool Update_leftMemu(ref ValidationErrors errors, WX.CRM.Model.Entity.BAS_LEFTMEMU model)
{
try
{
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
{
WX.CRM.Model.Entity.BAS_LEFTMEMU entry = db.BAS_LEFTMEMU.FirstOrDefault(m => m.MENUID == model.MENUID);
entry.MNAME = model.MNAME;
entry.MODULEMENUID = model.MODULEMENUID;
entry.URL = model.URL;
entry.ISGROUP = model.ISGROUP;
entry.ISSHOW = model.ISSHOW;
entry.RIGHTID = model.RIGHTID;
entry.PARENTID = model.PARENTID;
if (entry.ISGROUP == 1)
{
List list_menu = db.BAS_LEFTMEMU.Where(p => p.PARENTID == entry.MENUID).ToList();
foreach (var menu in list_menu)
{
menu.MODULEMENUID = entry.MODULEMENUID;
}
}
db.SaveChanges();
return true;
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion 修改数据
#region 更新顺序
///
/// 更新顺序
///
/// id集合用“,”隔开
/// sortid集合“,”隔开
///
public bool Sort_leftMemu(ref ValidationErrors errors, string ids, string sortIds)
{
if (ids.Trim() == "" || sortIds.Trim() == "")
return false;
try
{
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
{
string[] idStr = ids.Split(',');
string[] sortStr = sortIds.Split(',');
for (int i = 0; i < idStr.Length; i++)
{
decimal id = Convert.ToDecimal(idStr[i]);
decimal sortId = Convert.ToDecimal(sortStr[i]);
WX.CRM.Model.Entity.BAS_LEFTMEMU entry = db.BAS_LEFTMEMU.FirstOrDefault(m => m.MENUID == id);
if (entry == null)
continue;
entry.SORTID = sortId;
}
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
#endregion 更新顺序
#region 菜单管理树形获取 缓存中获取 根据权限
///
/// 从缓存中获取全部菜单 根据权限获取
///
/// 权限
///
public object GetTreeList_leftMenu(string[] userRights)
{
using (WX.CRM.Model.Entity.crmContext db = new WX.CRM.Model.Entity.crmContext())
{
List leftMemuList = _cache.GetList_LeftMemu().OrderBy(m => m.SORTID).Where(m => m.ISSHOW == 1).Where(m => userRights.Contains(m.RIGHTID) || string.IsNullOrEmpty(m.RIGHTID) || m.RIGHTID.Trim() == "0").ToList();
List moduleMenuList = _cache.GetList_ModuleMenu().OrderBy(m => m.SORTID).Where(m => userRights.Contains(m.RIGHTID) || string.IsNullOrEmpty(m.RIGHTID) || m.RIGHTID.Trim() == "0").ToList();
List