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; using WX.CRM.Model.MAP; namespace WX.CRM.BLL.Base { public class BAS_RIGHT_LEVEL_BL : IBAS_RIGHT_LEVEL { #region 添加 /// /// 添加 /// /// /// public bool Create(ref ValidationErrors errors, BAS_RIGHT_LEVEL model, List detailList) { try { using (crmContext db = new crmContext()) { var entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.RIGHTID == model.RIGHTID && m.ROLECODE == model.ROLECODE); if (entry != null) { errors.Add(string.Format("角色[{0}]编码为[{1}]已有权限“{2}”设置", model.RNAME, model.ROLECODE, model.RIGHTID)); return false; } var roleentry = db.BAS_ROLE.FirstOrDefault(m => m.CODE == model.ROLECODE); if (roleentry == null) { errors.Add(string.Format("角色不存在!")); return false; } model.PKID = new SEQUENCES_BL().Seq_base_get(); model.RNAME = model.RNAME; //model.STATUS = 1; model.CTIME = DateTime.Now; db.BAS_RIGHT_LEVEL.Add(model); foreach (BAS_RIGHT_LEVEL_DETAIL item in detailList)//新增到详细表 { item.LEVELID = model.PKID; item.PKID = new SEQUENCES_BL().Seq_base_get(); db.BAS_RIGHT_LEVEL_DETAIL.Add(item); } return db.SaveChanges().GetResult(); } } catch (Exception ex) { LogHelper.Error(ex.ToString()); errors.Add(ex.Message); return false; } } #endregion #region 修改 /// /// 数据的修改 /// /// /// public bool Update(ref ValidationErrors errors, BAS_RIGHT_LEVEL model, List detailList) { try { using (crmContext db = new crmContext()) { var tempentry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.RIGHTID == model.RIGHTID && m.ROLECODE == model.ROLECODE && m.PKID != model.PKID); if (tempentry != null) { errors.Add(string.Format("角色[{0}]编码为[{1}]已有权限“{2}”设置", model.RNAME, model.ROLECODE, model.RIGHTID)); return false; } BAS_RIGHT_LEVEL entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.PKID == model.PKID); if (entry == null) { errors.Add(string.Format("参数不正确!")); return false; } var roleentry = db.BAS_ROLE.FirstOrDefault(m => m.CODE == model.ROLECODE); if (roleentry == null) { errors.Add(string.Format("角色不存在!")); return false; } entry.RNAME = model.RNAME; entry.REMARKS = model.REMARKS; entry.RIGHTID = model.RIGHTID; entry.STATUS = model.STATUS; db.BAS_RIGHT_LEVEL_DETAIL.RemoveRange(db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == model.PKID));//将之前的全部删除 foreach (BAS_RIGHT_LEVEL_DETAIL item in detailList)//新增到详细表 { item.LEVELID = model.PKID; item.PKID = new SEQUENCES_BL().Seq_base_get(); db.BAS_RIGHT_LEVEL_DETAIL.Add(item); } db.SaveChanges(); return true; } } catch (Exception ex) { LogHelper.Error(ex.ToString()); errors.Add(ex.Message); return false; } } #endregion #region 删除 /// /// 删除 /// /// /// public bool Delete(ref ValidationErrors errors, decimal id) { try { using (crmContext db = new crmContext()) { BAS_RIGHT_LEVEL entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.PKID == id); if (entry == null) { errors.Add("数据已经被删除!"); return false; } db.BAS_RIGHT_LEVEL_DETAIL.RemoveRange(db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == id));//将之前的全部删除 db.BAS_RIGHT_LEVEL.Remove(entry); return db.SaveChanges().GetResult(); } } catch (Exception ex) { LogHelper.Error(ex.ToString()); errors.Add(ex.Message); return false; } } #endregion #region 获取单条信息 /// /// 获取实体 /// /// /// public BAS_RIGHT_LEVEL GetModel(decimal id) { using (crmContext db = new crmContext()) { BAS_RIGHT_LEVEL entry = db.BAS_RIGHT_LEVEL.FirstOrDefault(m => m.PKID == id); return entry; } } /// /// 获取实体 /// /// /// public List GetDetailModel(decimal id) { using (crmContext db = new crmContext()) { List entry = db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == id).ToList(); return entry; } } #endregion #region 按照条件查找信息 /// /// 按照条件查找信息 /// /// /// /// /// /// /// /// public List GetList(string rightcode, string rolecode) { using (crmContext db = new crmContext()) { IQueryable queryData = db.BAS_RIGHT_LEVEL.AsQueryable(); //条件 if (!string.IsNullOrWhiteSpace(rightcode)) queryData = queryData.Where(a => a.RIGHTID.Contains(rightcode)); if (!string.IsNullOrWhiteSpace(rolecode)) queryData = queryData.Where(a => a.ROLECODE == rolecode); var aa = (from a in queryData select new Bas_Right_Level_Map { PKID = a.PKID, ROLECODE = a.ROLECODE, CTIME = a.CTIME, REMARKS = a.REMARKS, RIGHTID = a.RIGHTID, RNAME = a.RNAME, STATUS = a.STATUS }).OrderByDescending(m => m.CTIME).ToList(); foreach (Bas_Right_Level_Map item in aa) { item.Detail = db.BAS_RIGHT_LEVEL_DETAIL.Where(m => m.LEVELID == item.PKID).Select(m => new Bas_Right_Level_Detail_Map() { PKID = m.PKID, LEVELID = m.LEVELID, CID = m.CID, TYPEID = m.TYPEID }).ToList(); foreach (Bas_Right_Level_Detail_Map map in item.Detail) { if (map.TYPEID == 1)//组 { var entry = db.BAS_INNERGROUP.FirstOrDefault(m => m.GID == map.CID); if (entry != null) { map.groupName = entry.GNAME; var w = db.BAS_SALESDEPARTMENT.FirstOrDefault(m => m.SALEDEPTID == entry.SALEDEPTID); if (w != null) map.deptName = w.DEPTNAME; } } else if (map.TYPEID == 2)//营业部 { var w = db.BAS_SALESDEPARTMENT.FirstOrDefault(m => m.SALEDEPTID == map.CID); if (w != null) map.deptName = w.DEPTNAME; map.deptName = w.DEPTNAME; } else if (map.TYPEID == 3)//等于公司的暂未开放 { } } } return aa; } } #endregion } }