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_ROLE_BL : DbContextRepository { #region 新增 /// /// 新增 /// /// /// /// public bool Create(ref ValidationErrors errors, BAS_ROLE model) { try { using (zxdContext db = new zxdContext()) { BAS_ROLE entry = db.BAS_ROLE.FirstOrDefault(m => m.CODE == model.CODE); if (entry != null) { errors.Add("编码" + model.CODE + "已被占用"); return false; } int maxsort = 1; BAS_ROLE sortrole = db.BAS_ROLE.OrderByDescending(m => m.SORTID).FirstOrDefault(); if (sortrole != null) { maxsort = sortrole.SORTID + 1; } model.CTIME = DateTime.Now; model.SORTID = maxsort; //model.ROLEID = new Sequences_BL().Seq_base_get(); db.BAS_ROLE.Add(model); return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion #region 删除 /// /// 删除 /// /// /// /// public bool Delete(ref ValidationErrors errors, int id) { try { using (zxdContext db = new zxdContext()) { BAS_ROLE entry = db.BAS_ROLE.FirstOrDefault(m => m.ROLEID == id); if (entry == null) { errors.Add("数据已删除!"); return false; } db.BAS_ROLE.Remove(entry); return db.SaveChanges().GetResult(); } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion #region 修改数据 /// /// 修改数据 /// /// /// /// public bool Update(ref ValidationErrors errors, BAS_ROLE model) { try { using (zxdContext db = new zxdContext()) { BAS_ROLE entry2 = db.BAS_ROLE.FirstOrDefault(m => m.CODE == model.CODE && m.ROLEID != model.ROLEID); if (entry2 != null) { errors.Add("编码" + model.CODE + "已被占用"); return false; } BAS_ROLE entry = db.BAS_ROLE.FirstOrDefault(m => m.ROLEID == model.ROLEID); entry.RNAME = model.RNAME; entry.SORTID = model.SORTID; entry.UPDATEUSER = model.UPDATEUSER; entry.UTIME = DateTime.Now; entry.CODE = model.CODE; db.SaveChanges(); //db.bas_role.Attach(model); //db.Entry(model).State = EntityState.Modified; return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion #region 获取单个实体 /// /// 获取单个实体 /// /// /// public BAS_ROLE GetModel(decimal id) { using (var db = new zxdContext()) { return db.BAS_ROLE.SingleOrDefault(m => m.ROLEID == id); } } #endregion #region 获取列表 /// /// 获取列表 /// /// public List GetList() { using (var db = new zxdContext()) { return db.BAS_ROLE.OrderBy(m => m.SORTID).ToList(); } } #endregion #region 批量修改顺序 /// /// 批量修改顺序 /// /// 角色ID /// 排序号 /// public bool Sort(ref ValidationErrors errors, string roleIdStr, string sortIdStr) { try { using (var db = new zxdContext()) { string[] roleIds = roleIdStr.Split(','); string[] sortIds = sortIdStr.Split(','); for (int i = 0; i < roleIds.Length; i++) { int roleid = Convert.ToInt32(roleIds[i]); int sortid = Convert.ToInt32(sortIds[i]); var model = db.BAS_ROLE.FirstOrDefault(m => m.ROLEID == roleid); if (model != null) model.SORTID = sortid; } db.SaveChanges(); return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion #region 修改顺序 /// /// 批量修改顺序 /// /// 角色ID /// 排序号 /// public bool Sort(ref ValidationErrors errors, int roleid1, int roleid2) { try { using (zxdContext db = new zxdContext()) { BAS_ROLE entry1 = db.BAS_ROLE.FirstOrDefault(m => m.ROLEID == roleid1); BAS_ROLE entry2 = db.BAS_ROLE.FirstOrDefault(m => m.ROLEID == roleid2); if (entry1 == null || entry2 == null) return false; int sort = entry1.SORTID; entry1.SORTID = entry2.SORTID; entry2.SORTID = sort; db.SaveChanges(); return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } #endregion #region 获取角色树形 /// /// 获取角色树形 /// /// public object GetRoleTree() { using (var db = new zxdContext()) { return (from model in db.BAS_ROLE.OrderBy(m => m.SORTID) select new { id = model.ROLEID, text = model.RNAME, iconCls = "icon-man" }).ToList(); } } #endregion public List GetRoleComList(decimal roleid) { using (zxdContext db = new zxdContext()) { int roleidin = Convert.ToInt32(roleid); return db.Bas_Role_Com.Where(m => m.roleid == roleidin).ToList(); } } public List GetRoleComLists(int[] roleid) { using (zxdContext db = new zxdContext()) { return db.Bas_Role_Com.Where(m => roleid.Contains(m.roleid)).ToList(); } } public bool RoleComSave(ref ValidationErrors errors, int roleid, string comcode) { try { using (zxdContext db = new zxdContext()) { List newcomcodelist = new List(); foreach (var item in comcode.Split('|')) { if (!string.IsNullOrEmpty(item)) { newcomcodelist.Add(item); } } foreach (var item in db.Bas_Role_Com.Where(m => m.roleid == roleid && !newcomcodelist.Contains(m.companycode)))//删除没选多余的数据 { db.Bas_Role_Com.Remove(item); db.SaveChanges(); } foreach (var item in newcomcodelist) { var entry = db.Bas_Role_Com.FirstOrDefault(m => m.companycode == item && m.roleid == roleid); if (entry == null) { db.Bas_Role_Com.Add(new Bas_Role_Com() { roleid = roleid, companycode = item, ctime = DateTime.Now }); db.SaveChanges(); } } return true; } } catch (Exception ex) { errors.Add(ex.Message); return false; } } } }